R@   9Kl4fs_Sup   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~R@   9Kl4fs_Sup   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NickArthurlib DComp_Wel DL4FS DBFLibrary DiHLibrary1 DzTMaster_WelD\NetBoot DgݻReadme Cmx Utils DArthurlib DComp_Wel DL4FS DBFLibrary DiHLibrary1 DzTMaster_WelD\NetBoot DgݻReadme Cmx Utils D0284,128-0112_19_Fri NickNickSetFree @SetStationC5Users @ Ҵ(SetFree @SetStationC5Users @ Ҵ(Arthurlib Arthurlib Nickv0 @   P `A P A!a  0HSyntax: *SetFree SetFree 2.01 (23 Mar 1988)0M0New station number: s0 90a:~1  !a P :` V:pa2a J@P@2?P `/a4@Failed to update configuration memoryEscapeSyntax: *SetStation ()Bad station numberSetStation 2.02 (08 Apr 1992)";*8'5$+?@- 2&@-@-@-@-@- 0M@ - 1D a` Stn User Id. aPP a` apP ,  8 "Catall won't work in this filing system":dR@ P 4,23,1,1;0;0;0; Z *FX 200 d *FX 229 n" X% &100,NAME% 11 : Y%=X%256 x cdrive$="":tL@ cdrive$=read_drive  dz@ get_drive vdu_opt ROOT$="$" : RECON("",ROOT$) reset 3,15 ) B%=999 23,1,0;0;0;0;:back_to_menu  : 0:::=17cdrive$<>""CLI("dir :"+cdrive$)  dR@ :  RECON( PATH$,DIR$ ) " DPTR% ,: 6 @."***************************************" J PATH(PATH$,DIR$) T."***************************************" ^CLI("DIR "+PATH$) hCLI("."+DIR$) rH%=openin(DIR$) | #H%=5  #H%=0 #H%:  DPTR%=5  : #H%=DPTR%+3  #H%<128 TfB : #H%=DPTR%  CH(H%)=( #H% &7F ) Z$NAME%=CH(H%)+CH(H%)+CH(H%)+CH(H%)+CH(H%)+CH(H%)+CH(H%)+CH(H%)+CH(H%)+CH(H%) #H% (RECON( PATH(PATH$,DIR$) , $NAME% ) 0 PATH(A$,B$) A$<>"" = A$+"."+B$ = B$ CLI("DIR "+PATH$) H%=openin(DIR$) : &DPTR%=DPTR%+26 0#H%=DPTR% : #H%=0 D#H% N X: b*ݤgetfs:X%=&70:Y%=0:A%=0:=&FFDA &FF l: vCLI(OS$):$X%=OS$:&FFF7: : ݤread_drive 1A%=6:X%!1=NAME%:&FFD1:NAME%?2=13:=$(NAME%+1) : get_drive  12,10,10  "Enter drive number "drive$ drive$=-1 dZB @ cdrive$<>"" drive$=cdrive$ '"No current drive"':t|B K "0145ABEFabef",drive$) drive$=1 '"Invalid drive number"':t|B + cdrive$=drive$ CLI("dir :"+drive$) cdrive$=""cdrive$=drive$  :  reset 8 cdrive$=drive$ cdrive$="" CLI("dir :"+cdrive$)   *: 4 openin(file$) > $X%=file$ H A%=&40 R=(osfind%)&FF \: f vdu_opt p z%"Screen or Printer (S/P)",reply$ reply="SsPp",reply$)  reply 2 reply<3 "Press shift to scroll": 14 2  : back_to_menu %'"Press SPACE to return to menu"  <> &20 dJC   *FX200,1 f*DIR &.ADFSUTILS p "MENU" *TV255 1  *FX 200 7:I:c$="":Tr@ (@=80:c$=L$ 2 DNB <''" CopyFiles V2.54 (BB)"' F6A:G$=6((134)+"Source filing system"+(135)+":") P U$=7(G$) Z M$=8(G$) d+_$=9(G$):B(G$,M$):j$=G$:C(G$):*OPT 1 nU$=""G$="NET "U$=2 xU$=""tL@ u%=:U$<>2@("fs "+U$) &u%=:o%=:M$=""0:M$=A(L$):tj@ #G$="NET "@("sdisc "+M$):tj@ @("dir :"+M$) o%=:_$=""dH@ 'v%=:G$="NET "_$,"$")=0@("dir") @("dir "+_$) v%=:S%= CH$=6((134)+"Destination filing system"+(135)+":"):G$=H$g%= V$=7(H$) _%=:O$=8(H$) 'Y$=9(H$):B(H$,O$):_%b0%=-1:DrA j$=H$:C(H$):*OPT 1 V$=""H$="NET "V$=2 g%H$="NET "U$<>V$h0%=0 V$=""TlA "w%=-1:V$<>2@("fs "+V$) ,&w%=0:h%=:O$=""0:O$=A(L$):DJA 6#H$="NET "@("sdisc "+O$):DJA @@("dir :"+O$) Jh%=0:Y$=""DhA T(p%=-1:H$="NET "Y$,"$")=0@("dir") ^@("dir "+Y$) hp%=0 rJ |7:26,30,132,157,141,131:" Copying files from"(135)G$(131)"to"(135)H$" ";:132,157,141,131:" Copying files from"(135)G$(131)"to"(135)H$" ";:132,157,131:" "d$" ";:i0%=@:f%=0(G$):f%=i0%tZA f%=8_%1() r0%=3(f%)  x%1() g%4(G$,U$,M$,_$) *0:e$=L$:p$=f$:f%=0(H$):_%f%=81() r0%=3(f%):_%D g%4(H$,V$,O$,Y$) 0:e$=""k$=""k$="Source"  L$=""l$=""l$="Destination" e$=""L$=""T\B %m%=21:g$="Drive ":G$="NET "m%=26 H$="NET "THB g%g$="":m%=21m%=18 U132,157,131:k$;:31,m%,:l$:132,157,131:g$;e$;:31,m%,:g$;L$:m%=18=611 0132,157,131:"Dir ";p$;:31,m%,:"Dir ";f$ &d1%=3(i0%):28,1,24,39,7,12:j0%= & G="S"K 0 G="M"L : G="L"M D N *FX 200 X,`%=0:q%=r%:s%=i%:a%2:s0%=a%:a%=0:#s0% bd%5:t0%=d%:d%=0:#t0% l=17Tr@ v8y%:6(j$+" not present ")::y%=:S%DF@dR@ o%=&A9L$="":o%=0:t`@ h%=&A9L$="":h%=0:D@A 8N::129,157,131:$(X%+1);" "(156)':u%u%=:DP@ o%o%=:DZ@ v%v%=:Dd@ w%w%=:d\@ h%h%=:df@ p%p%=:dp@ z%z%=:E 9129,157,131:"Copy aborted "(156)':j0%TfBDF@ c$<>""B%=999O  }I:j%=9:z%=:X%128,Q%30,I$(j%),J$(j%),e%(j%),_0%(j%),`0%(j%),b%(j%),c0%(j%):Y%=X%256:i%=(-P-&C00):r%i%:@%=0:A:Q: A:S%=:a%=0:d%=0:u%=:o%=:v%=:w%=0:h%=:p%=0:M$="":O$="":_%=:b0%=0:x%=:g%=0:I$="":h0%=-1:k0%=0:s%=i%:q%=r%:`%=0:j0%=:  =N:Z%=!&FD:I%=0:I%=I%+1:X%?I%=Z%?I%:Z%?I%=0:X%?I%=13: 8C(W$):y%=:W$<>"ADFS"@<>8@("FADFS"):W$="adfs"  8(W$<>"ADFS")(W$<>"DISC")(W$<>"NET ")@(W$):y%=: *k%=0(W$):3(k%)y%=I 4 >ݤ8(Q$):Q$="ADFS"DfC HY(134);"Enter ADFS drive number";(135);:""N$:"0145ABEFabef",N$)(N$=1)F:DHC R;S%M$=""G$="NET "(a0%(((N$)4)=0((M$)4)=0))=N$ \ tDC fQ$="DISC"tlC pP(134);"Enter DFS drive number";(135);:""N$:"0123",N$)(N$=1)F:DpC z9S%M$=""G$="NET "(a0%(((M$)4)=0)G$="ADFS")=N$ ((M$)1)=((N$)1)tbC -g%l%=B("Two disc copy ? (Y/N)")l%="Y" l%="Y"_%=-1k0%=-1 =N$ Q$="NET "="" ;(134);"Enter file server disc name";(135);:""N$:=N$ ݤ7(Q$):Q$<>"NET "="" 8(134);"Enter file server number";(135);:""q$:=q$ 'ݤB(r$):(134);r$;(135);:*FX15,1 1""m$:l%=m$&5F:(l%="Y"l%="N")m$=1:=l% F:N$=-1d|C KQ$="ADFS"(134);"Use 0,1,4,5,A,B,E or F":(134);"Use 0,1,2 or 3": &:6("Invalid drive number "):: 1ݤ9(Q$):Q$<>"ADFS"Q$<>"DISC"Q$<>"NET "="" 3(134);"Enter ";:S%"source";"destination"; #" directory";(135);:""s$:=s$ $&B(X$,L$):X$<>"ADFS"X$<>"DISC" .X$="DISC"X$="DFS" 8#(X$="ADFS")a0%(((L$)4)=0) B(_%k0%)(S%) LD(134)+"Insert "+X$+" disc into drive"+(135)+L$:X$="DFS"D`D V,(134)+"Press RETURN when ready":=13 ` j0ݤ@:X%,Y%,A%:X%=&70:Y%=0:A%=0:=(&FFDA)&FF t0ݤ2:A%=&13:?X%=0:&FFF1:=(X%?2)+"."+(X%?1) ~ݤ3(n%):X%,Y%,A%:@-n%= *A%=143:X%=18:Y%=n%:&FFF4:@-n%== )6(t$):(129)(157)(131)t$(156): cQ:X%,Y%,A%:A%=&93:X%=&40:Y%=&5A:&FFF4:A%=&92:u0%=(&FFF4&FF0000)&10000:Y%-u0%a0%=a0%=  1ݤ0(u$):n$,n%:tzD::n$,n%:n$=u$n%=0:=n% K TAPE,1,TAPE3,2,"ROM ",3,DISC,4,"NET ",5,TELETEXT,6,IEEE,7,ADFS,8,"",0 60:k%=@:(k%>=0k%<=3)(k%>=6k%<8)L$="":f$="": KR:k%=5d0%=Q%?1:e0%=2:l0%=Q%?(2+d0%)d0%=Q%?2:e0%=3:Q%?2=&D:L$=$(Q%+1) L?(Q%+e0%+d0%)=&D:f$=$(Q%+e0%):k%=5S:v0%=Q%?0:?(Q%+1+v0%)=&D:L$=$(Q%+1)  R:A%=6:X%!1=Q%:&FFD1: S:A%=5:X%!1=Q%:&FFD1: x3(R$,Pw0%,Px0%,Py0%,Pz0%,f0%):!X%=X%+20:$(X%+20)=R$:X%!2=Pw0%:X%!6=Px0%:X%!10=Py0%:X%!14=Pz0%:A%=f0%:Z%=(&FFDD):  7(R$):3(R$,0,0,0,0,5): G8(_1%,`1%,a1%,f0%):?X%=_1%:X%!1=`1%:X%!5=a1%:A%=f0%:Z%=(&FFD1): %@(v$):z%=:$X%=v$:&FFF7:z%=: (2:0(G$)<>@DFE 2_%x%1() < DZE F _%1() P @(G$) Zg%4(G$,U$,M$,_$) d n$4(w$,x$,a$,b$):w$="NET "tjE xh0%@("fs "+x$) a$<>""@("sdisc "+a$) b$,"$")=0@("dir") b$<>""@("dir "+b$)  0:L$<>a$_%@("dir :"+a$) @("dir "+b$): 5:0(H$)<>@d\E _%x%1()  dpE  _%1()  @(H$) D:g%4(H$,V$,O$,Y$)  D:b0% =h%=:@("dir :"+O$):h%=:p%=-1:@("dir "+Y$):p%=0:b0%=0: H1(m0%):m0%o$="source":n0%=130:o0%=132o$="dest. ":n0%=129:o0%=135 "b1%=:*fx15,1 ,an0%,157,o0%:"Insert "+o$+" disc and press SPACE";:=32:13:e1%=038:32::13:<>b1%11 6 x%=m0%: @ ݤ4(Ph$,c1%)::Ph$;:*fx15,1 J""S$:S$=""c1%T T(S$)=" "DrF ^28,0,24,39,7,14,13:(S$,2,1))=-1"Enter * command"'"Press RETURN only to exit":"*"S$:@(S$):S$=-1:S$=" ":D|F@(S$)::E:D|F h *fx -1 r(S$)<>" ":=S$ | DNB  D|A ?G:7(I$):Z%256=0129,157,131:I$;" not found "(156)': C`0%=X%!2:_0%=X%!6:e%=X%!10:b%=X%!14:G$<>"ADFS"G$<>"NET "dVF G$="NET "txF .0:(l0%(b%16))(l0%=0(b%1))dVFdBF b%1dVF 36(I$+" not copied No read access "):(I$)<8  G$="DISC"b%=b%3 H$="DISC"b%=b%8 `%=j%s%i%THG "Reading"(135)I$(131)(156)':3(I$,q%,0,0,0,&FF):I$(`%)=I$:J$(`%)=J$:`0%(`%)=`0%:_0%(`%)=_0%:e%(`%)=e%:b%(`%)=b%:c0%(`%)=q%:q%=q%+e%:s%=s%-e%:`%=`%+1: A"Copying"(135)I$(131)"as"(135)J$" "(156)':_%a%=C(I$) +t%=0e%-1i%:t%+i%>e%g0%=e%-t%g0%=i% 2:_%a%=C(I$):#a%=t% & 8(a%,r%,g0%,4):_%#a%:a%=0 05:t%DbG :D (J$,)=DXG Da%2:a%:a%=0 N Xd%=(J$):DlG b_%d%=E(J$):#d%=t% l 8(d%,r%,g0%,2):_%#d%:d%=0 v:_%#d% &d%=0:3(J$,0,0,0,b%,4):2:_%#a%  a%=0: 9:`%=0 k5:c%=0`%-1:132,157,131:"Writing"(135)I$(c%)(131)"as"(135)J$(c%)" "(156)':D(J$(c%),)=trG Q3(J$(c%),`0%(c%),_0%(c%),c0%(c%),c0%(c%)+e%(c%),0):3(J$(c%),0,0,0,b%(c%),4) c%:q%=r%:s%=i%:`%=0: 'ݤC(R$):$X%=R$:A%=&40:=(&FFCE)&FF 'ݤE(R$):$X%=R$:A%=&C0:=(&FFCE)&FF ݤD(R$,H):7(R$):Z%256= X%!148dnG  HH$<>"DISC"(X%!142)=0= "DISC"X%!14=X%!143 3(R$,0,0,0,X%!14&F7,4):=  ݤ6(Ph$) ;Ph$;:K%=&DF:D\H::J%,`$:K%=J%J%=-1:J%<>K%T~H  )`$:J%=8126,12,10,10,10,10,10:ddB * J%=79" Filing system ? "`$ 4=`$ >Y'(134)"Filing systems":D\H::J%,`$:J%=-1:(134)"(ESC) - Back to start":TVH H&(134)" "(J%)" - "`$::TVH RUE:129,157,131:"Press SPACE to continue "(156);:=32:12,28,1,24,39,7,15: \6 65,ADFS,68,DISC,78,"NET ",79,Other.,81,QUIT,-1,X fJ pM134:"Copying mode"+(135)+":";:G=&5F:G="S"d$=" Single file mode ": z$G="M"d$="Multiple file mode": $G="L"d$="List of files mode": '(134)"Copying modes":134:" S - Single file mode":134:" M - Multiple file mode with Y/N":134:" prompt for each file":134:" L - List mode to copy all files":134:" in a list":DpH }K::I$=4((134)+"Source filename"+(135)+":",):I$<>"":J$=4((134)+"Destination filename"+(135)+":",):J$=""J$=I$ J$=5(J$):2:G:9:: lH::i$=4((134)+"Source list spec."+(135)+":",-1):i$<>"":i$,".")" Files must be in the CSD.": p0%=0:2::F:9: 7(I$):Z%256<>1 1(I$,i$)  G J$=I$:J$=5(J$):G:  ݤF:y$=I$ 7X%!9=p0%:8(0,Q%,1,8):I%=1 ?Q%:Q%?I%<&21Q%?I%=13 M:Q%?(?Q%+1)=13:I$=$(Q%+1):p0%=X%!9:H$="DISC"g%M$=O$y$=I$X%!5=0drH  =(X%!5=0) <ݤ1(K$,T$):I%:K$<>""T$="*"=1(K$,T$,2))=(T$="")  T$=""= $4(K$&5F)=(T$&5F)T$="#"=1(K$,2),T$,2)) .T$<>"*"= 8 =1(K$,T$,2))1(K$,2),T$) BݤG:q0%= L`A%=(4((134)+"Copy"+(135)+I$+(134)+"(Y/N)"+(135)+":",0))&5F:A%="Y"A%="N":=A%="N" VL:q0%=:H: `M:q0%=:H: j DNB t D|A ~PT:22,7,14::I%=17:::" (Press SHIFT to continue)":DjI tRI:K$:K$: *"To return to the main menu,ESCAPE." &"To quit from there, press'Q'." "" *"In single file mode, the source and" )"dest. files may be anywhere in the" ,"filing system tree structure; you may" -"quote a fullpathnamefor both. If you" ,"just pressRETURNfor the destination" *"name, the source name will be used," )"truncated to 7 chars if DFS is the" "destination." "" *"In the multiple modes, a number of" ,"files are copied from/to yourcurrent" )"drive and directory in the source/" (,"destination filing systems. A list of" 2-"files can be specified using the * and" <-"# wildcard characters - # will match a" F*"single arbitrary character , * will" P*"match multiple arbitrary characters" Z."i.e. if BA* is the list spec. all files" d,"in the source directory starting with" n,"BA will be copied. The name of" x,"the source file found is used for the" ." (Press SHIFT to continue)" /" destination filename, truncated if " "DFS is the destination." "" ."Star commands may be entered at any non" ."single key prompt, (not the main menu)," '"by typing a leadingspace. e.g." ""Source filename: DIR FRED" #"to selectFREDas yourCSD." ,"Multiple star commands may be entered" -"by typing space RETURN - star commands" +"can be entered at the * prompt until" "RETURN is typed by itself" 'ݤ5(K$):K$=":"=K$,3)+5(K$,4)) H$="DISC"=K$ &(K$,2))=".":=K$,2)+5(K$,3)) " =K$,7) ,7ݤA(Z$):f%=1Z$:Z$,f%,1)=" "f%=Z$:Z$=Z$,f%-1) 6 :=Z$ @(O:"Press SPACE to return to menu" J<>&20DJK T *FADFS ^ *FX 200,1 h&("dir :"+c$+".ADFSUTILS"):"MENU" _%=0:j%=0:O$="":7:DZ@ R128:19,0,6;0;19,1,4;0;:X%=&80:Y%=0:A%=0:m%=((&FFDA)&FF):m%<>8*FX143,18,8 o%=&FFDD:e0%=&FFD1:s0%=&FFF1:e1%=&FFF4:t0%=&FFF7:u0%=&FFCE:M$="$":I$(10),J$(10),k0%(10),l0%(10),m0%(10),n0%(10),f0%(10),k%&100,`%20,e%20:a%&100,c%&100,f%&100,t%&100,p%&100,d%&100,q%&100,o0%12:Tr@ (8A%=6:X%=`%:Y%=`%256:`%!1=d%:e0%:d%?2=&D:O$=$(d%+1) 27:DZ@ h0%v%`0%<4'"Do you want disc change prompts (Y/N) ";:b%=0 x9b%(`0%<4v%)'"Put source disc into drive "+G$:3 G`0%=h0%b%(h0%<4v%)'"Put destination disc into drive "+H$:3 9'"Source root ? "+M$;:""$f%: ?f%="*"@($f%):tL@ $f%=":"+G$+"."+M$+$f% >'"Destination root ? "+M$;:""$c%: ?c%="*"@($c%):t`@ g$c%=":"+H$+"."+M$+$c%:!`%=c%:0(`%):A%=5:m%=(o%)&FF:m%=2'"No such destination directory":t`@ G$<>H$b%dH@ :_%=($c%):#_%=&4CC:I%=012:o0%?I%=#_%:I%:#_%:_%=0 b%2 1:15:*OPT 1,0 *CAT n"Begin at which entry",N$::N$=@(N$):A:8:'"Copy complete. "':z%;z%;" read protected files ignored"' O$<>""B%=999B  8:a0%,b0%:a0%=0 @1:`%!1=k%:`%!5=1:`%!9=a0%:0(`%):A%=8:e0%:`%!55():DJA #C:$a%=$(k%+1):@($a%)2(p0%1)=0"Ignoring read protected file "+$f%+"."+$a%:z%=z%+1:D@A ,b0%=15():D@A 6b0%=25():4:8:D @a0%=a0%+1:TNA J TBݤ4:N$="":$p%=$f%+"."+$a%:$t%=$c%+"."+$a%:G$<>H$b%y%=:DrA ^7y%=:_%=($p%):#_%=&4CC:I%=012:#_%<>o0%?I%y%= hAI%:#_%:_%=0:y%"Not copying destination directory "+$p%:= rl%=0tPA |Oq0%=0l%-1:@($p%,(I$(q0%))))=I$(q0%)"Not copying directory "+$p%:y%=   y%= )1:2:!`%=t%:0(`%):A%=5:m%=(o%)&FF Dm%=0''39,"*")'"Creating "+$t%'39,"*")':@("Cdir "+$a%):txA `m%=2'"Can't create directory "+$t%+" , file of this name exists":1($a%,)=m%=0:tdA $f%=$p%:$c%=$t%:n%=:= /D:1:9(f%):@("dir ^"):9(c%):$a%=$y0%: 1:_0%=1d~A b%=dtA b%@("DISMOUNT") B'"Please put source disc into drive "+G$:3:b%@("MOUNT"+G$) n%=:_0%=1 n%@("DIR "+$f%):n%=  2:_0%=0DDB b%=TzB &b%@("DISMOUNT") 0G'"Please put destination disc into drive "+H$:3:b%@("MOUNT"+H$) :n%=:_0%=0 Dn%@("DIR "+$c%):n%= N X3:*fx15,1 b*"Press RETURN when ready";:=13:: lsݤ2(K$):c0%=:(K$)<>-1v%'"Drives can be numbered 0, 1, 4 or 5":=c0%'"Drives can be numbered 0 or 1":=c0% vK$,1)="*"@(K$) (K$)=1"Qq0145",K$)c0%= =c0% .C:T%=10::(k%?T%)<>&20k%?(T%+1)=&D:T%=1 T%=T%-1:T%=0: F9(d0%):I%=($d0%):I%=I%-1:d0%?I%=".":d0%?I%=&D:y0%=d0%+I%+1: @A:'"Please input sub-directories"'"not to be copied":l%=0 ="A"i0%<="Z"d%?r0%=i0%  :=$d%  5(z0%)  z0%6: h%=96:dxB  i%>w%6:i%>w%E: F:  E:2:1($a%,) *k"Copying "+$f%+"."+$a%+" as "+$c%+"."+$a%:r%=0:j0%=0::i%>r%=r%+1:i%=i%-g%:j0%=1:i%<0:b%1:#j%:j%=0:2:#_%:_%=0 H9$k%=$c%+"."+$a%:?`%=k%:`%?1=k%&100:0(`%):A%=1:o%: R!4(L$,s%,_1%,`1%):s%>212 \j0%s%>2j%=3(L$)_%=L$ f&j0%=0b%=s%>2j%=3(L$)_%=L$ ps%>2 ?e%=j%?e%=_% zNe%!1=u%:e%!5=_1%:e%!9=`1%:0(e%):A%=s%:e0%:b%=s%>2#j%:j%=0#_%:_%=0  F:1:h%=h%+1:J$(h%)=$a%:n0%(h%)=w0%:m0%(h%)=x0%:l0%(h%)=i%:f0%(h%)=p0%:k0%(h%)=x%:"Reading "+$f%+"."+$a%:@("LOAD "+$a%+" "+~(x%)):x%=x%+i%:w%=w%-i%: 6:h%=-1 "2:I%=0h%:1(J$(I%),)d@C "Writing "+$c%+"."+J$(I%):@("SAVE "+J$(I%)+" "+~(k0%(I%))+"+"+~(l0%(I%))+" "+~(m0%(I%))+" "+~(n0%(I%))):f0%(I%)&B=3d@C 3$k%=J$(I%):!e%=k%:e%!&E=f0%(I%):0(e%):A%=4:o% I%:x%=u%:w%=g%:h%=-1: ݤ1($q%,H):HdrC JA%=5:0(e%):!e%=q%:A%=(o%)&FF:a1%=(e%?1410):(A%=0)(A%=1a1%=2)= mA%=2;"Can't write file ";$q%;" , directory of this name exists"'"PRESS SPACE BAR TO CONTINUE":-99:= *"Destination ";$q%;" write protected"  "OVERWRITE (Y/N) ?";:0= &"ARE YOU CERTAIN (Y/N) ?";:0= *@("ACCESS "+$q%):@("DELETE "+$q%):= ݤ0:*FX15,1 &Q$=:G="*NnYy",Q$):G>1:Q$:=G>3 $ 0(b1%):X%=b1%:Y%=X%&100: .@($d%):0(d%):t0%: 85ݤ3(R$):$d%=L$:A%=&40:X%=d%:Y%=d%256:=(u0%)&FF B!7:::_%:c1%=_%:_%=0:#c1% Lj%:d1%=j%:j%=0:#d1% V=17=&C6dp@ ` j(B:"Press SPACE to return to menu" t<>&20DtD ~  *FX200,1 &("dir :"+O$+".ADFSUTILS"):"MENU" ExAll - Examine the whole tree from $ downwards # Copyright Acorn Computer 1986 ( Version 1.14 (BB), 1/8/86 2 <osfind%=&FFCE F=getfs<>8"Exall won't work in this filing system":dR@ P 4,23,1,1;0;0;0; Z *FX 200 d *FX 229 n! X% &100, NAME% 11:Y%=X%256 x cdrive$="": tL@ cdrive$=read_drive dp@ get_drive vdu_opt ROOT$="$" : RECON("",ROOT$) reset 3,15 + B%=999 23,1,0;0;0;0;:back_to_menu  0:::=17cdrive$<>""CLI("dir :"+cdrive$) dR@ :  RECON( PATH$,DIR$ )  DPTR% ": , 6."***************************************" @ PATH(PATH$,DIR$) J."***************************************" TCLI("DIR "+PATH$) ^CLI("EX "+DIR$) hH%=openin(DIR$) r #H%=5 | #H%=0 #H%:  DPTR%=5  : #H%=DPTR%+3  #H%<128 T\B : #H%=DPTR%  CH(H%)=( #H% &7F ) Z$NAME%=CH(H%)+CH(H%)+CH(H%)+CH(H%)+CH(H%)+CH(H%)+CH(H%)+CH(H%)+CH(H%)+CH(H%) #H% (RECON( PATH(PATH$,DIR$) , $NAME% ) 0 PATH(A$,B$) A$<>"" = A$+"."+B$ = B$ CLI("DIR "+PATH$) H%=openin(DIR$) : DPTR%=DPTR%+26 &#H%=DPTR% 0 #H%=0 :#H% D N: X*ݤgetfs:X%=&70:Y%=0:A%=0:=&FFDA &FF b: lCLI(OS$):$X%=OS$:&FFF7: v: ݤread_drive 1A%=6:X%!1=NAME%:&FFD1:NAME%?2=13:=$(NAME%+1) : get_drive  12,10,10  "Enter drive number "drive$ drive$=-1 dPB @ cdrive$<>"" drive$=cdrive$ '"No current drive"':trB K "0145ABEFabef",drive$) drive$=1 '"Invalid drive number"':trB + cdrive$=drive$ CLI("dir :"+drive$)  :  reset 8 cdrive$=drive$ cdrive$="" CLI("dir :"+cdrive$)   :  ݤopenin(file$) * $X%=file$ 4 A%=&40 >=(osfind%)&FF H: R vdu_opt \ f& "Screen or Printer (S/P)",reply$ preply="SsPp",reply$) z reply 2 reply<3 "Press shift to scroll": 14 2  : back_to_menu %'"Press SPACE to return to menu"  <> &20 tvC   *FX 200,1 *DIR &.ADFSUTILS  "MENU" , *SHADOW *LIB &.LIB* `B%=999:G=:0:23,16|:A:"DIR &.ADF*":o0%=54:m%=15*4:s%=256:t%=208:d0%=3*256:u%=224:*FX15,1  *FX4,3 ` *FX22 `0%256:0(0):TDi Td%=0:f%=0:p%=0:q%=0:v%=0:a%=320:b%=400:h%=320:i%=256:p0%=1280:q0%=1024-32:e0%=16:a0%=16:f0%=4:g%=32:c%=16:w%=5:H$(w%,6),j%(w%):n%(w%) ^YH$(0,0)="Archive":j%(0)=16:n%(0)=2:H$(0,1)="Archive":H$(0,2)="GetBack":H$(0,3)="Help" hIH$(1,0)="ExALL":j%(1)=176:n%(1)=1:H$(2,0)="DirCopy":j%(2)=320:n%(2)=1 H$(3,0)="CopyFiles":j%(3)=544-48:n%(3)=1:H$(4,0)="Welcome":j%(4)=1096:n%(4)=1:H$(5,0)="S.D.Backup":j%(5)=496+13*16:n%(5)=1:e%=5:r0%(e%),s0%(e%),t0%(e%):u0%(e%),v0%(e%),w0%(e%):x0%(e%),y0%(e%),i0%(e%):z0%(e%),_1%(e%):`1%=-1:k%=0e%:i0%(k%)=: 0,1:3(0,950,1279,1023):32,0:3(4,954,1275,1019):k%=0w%:4(H$(k%,0),j%(k%),960):k%:B:a1%=2*c%:b1%=2*g%:o%=(7):x%=(8) l:*POINTER !4 *FX229,1 !:y%=(0):y%>-1:*FX229 #(5:*POINTER 0 $Ta_%=w%+1::_%=_%-1:g0%=x%>950o%>=j%(_%)o%<=j%(_%)+48+16*(H$(_%,0)):g0%_%=0:y%=276:dXg &g0%7(_%,0) ' ) \D )h("DIR &.ADFS*"):*pointer 2 *0HI%=-1:I%=I%+1:`0%?I%=I%?(1+!&FD):`0%?I%=0:`0%?I%=13:0($`0%)Dl` * G:Ll + *FX23 ,$:"AT LINE ";: ,+ݤ0(G$):h%=(2+G$)*c%:h%<10*c%h%=10*c% - v%1 .a%,b%:0,h%,i%:23,27,1,4,0;0;0;:0,1:@(a%,b%,h%,i%):0,0:@(a%+4,b%+4,h%-8,i%-8):"SCHOOSE 8":&ED,a%+c%,b%+g%2:5:0,1:a%+c%,b%+i%-1*g%:"Error";:a%+c%,b%+i%-2*g%:G$;:0(0):<>0(((0)7)<>0):*SCHOOSE 4 2d&ED,a%,b%:0,1:=(<>17) 5 &7(_%,`%):"FX23":"FX22":\D 6'_%+1TTw,Dxw,d\w,D@x,tdx,THy 7 "CATALL" 7x "EXALL" 7"DIRCOPY" 8@"COPYFILES" 86:"FX22": 9"SDBACKUP" 9)6:笤1("leave the disc utilities") :"DIR &.WELCOME":"MENU": r%y%>-1:*POINTER 0 C+r%>0r%<=l%2(H$(_%,r%),d%+8,f%-r%*m%) D\1r%=`%:`%>0`%<=l%2(H$(_%,`%),d%+8,f%-`%*m%) E#y%>-1`%>l%:`%>0`%<=l%@|G F07(_%,`%):v%8:2(H$(_%,`%),d%+8,f%-`%*m%) G|/`%>l%:1:o%=e0%*(o%e0%):x%=a0%*(x%a0%): J81:*SCHOOSE 4 Kd0,0:&ED,d%,f%+q%:v%=: L8:d%,f%:0,p%,q%:23,27,1,4,0;0;0;:0,1:@(d%,f%,p%,q%):0,0:@(d%+4,f%-4,p%-8,q%+8):k%=1l%:4(H$(_%,k%),d%+8,f%-k%*m%)::v%=: Qݤ@:d%>o%o%>d%+p%:=l%+1 Rl=((f%-x%-12)/m%+1) S4!0(X%):4,23,1,X%,0,0;0;0;: Tt4(I$,z%,_0%):0,1:z%,_0%:&61,32+c%*I$,g%+16:0,0:0,-3,-1:&65,z%+4,_0%+4:0,1:5:z%+16,_0%+36:I$:0(0): W42(I$,z%,_0%):z%+4,_0%+4:&62,24+16*I$,32+8: X03(b0%,c0%,j0%,k0%):b0%,c0%:&65,j0%,k0%: Z0@(b0%,c0%,l0%,m0%):b0%,c0%:&61,l0%,m0%: \5:o%=(7):x%=(8): ^$A:*setpal ^ `B:0,1:@(s%,t%,d0%,u%):0,0:@(s%+4,t%+4,d0%-8,u%-8):5:0,1:s%+c%,t%+u%-g%*1:"ADFS utility programs ";:s%+c%,t%+u%-g%*3:"Move the pointer around with the arrow keys";:s%+c%,t%+u%-g%*5:"Press the RETURN key to select menu items";: eFݤ1(G$)"Fx15,1":=13=2(10,"to "+G$+"?","Do you really want",,7) f,ݤ2(L%,G$,J$,E%,n0%):h0%=:L% SDBACKUP  128  *SETPAL ( *fx200 2 *fx229 88||p8:||D<x|xt| 8Hpxt0Dp@ x8x (Please turn off your second processorr * No shadow screenuL/BasObj   LSRLOAD &.LI*.BASIC4 8000 7 Q I L'``BASIC(C)1984 Acorn ' d%  A II : d# ʎxXL-97 97 :+ *-*+** 9*79*֘e**+`d=>=+=e==> ȱ=*`` -H ' h8E-7 9 d=d>d?d@-*+,G A9&:&;&<&9&:&;&<&=&>&?&@8=*H>+H?,@- @?h>h=hh`Division by zerod5d/-. ެ-&d4,d3+d2*8*22+2*3&,2+3*4d.d0d/d1` .I 0 4&3&2*10`10-2345ť021324354d58/100/5&4&3&2&10`0,14F1f2f3f4hɠgəi342312d1 L0 p1DF1f2f3f4f=f>f?f@*ɠ)əi?@>?=>4=342312d1LŦ0.844332211`00dIL u4I S01E..II ȂL4 321`fjJE)EjjjjE  `;.d/<0=1>2?3@4A5`180?=>d=)HF=f>f?f@fA:9I%<0)8845342312d1) F1f2f3f4f5:.E;0LG1=2>3?4@ 5AL&;.8A55@44?33>22=11L5A54@43?32>21=1LANDABSACSADVALASCASNATNAUTOBGETBPUTCOLOURCALLCHAINCHR$CLEARCLOSECLGCLSCOSCOUNTCOLORDATA DEGDEFDELETEDIVDIMDRAWENDPROCENDENVELOPEELSEEVALERLERROREOFEORERREXPEXTEDITFORFALSEFNGOTOGET$GETGOSUBGCOLHIMEMCINPUTIFINKEY$INKEYINTINSTR(LISTLINELOADLOMEMCLOCALLEFT$(LENLETLOGLNMID$(MODEMODMOVENEXTNEWNOTOLDONOFFOROPENINOPENOUTOPENUPOSCLIPRINTPAGECPTRCPIPLOTPOINT(PROC POSRETURNREPEATREPORTREADREM RUNRADRESTORERIGHT$(RNDRENUMBERSTEPSAVESGNSINSQRSPCSTR$STRING$(SOUNDSTOPTANTHENTOTAB(TRACETIMECTRUEUNTILUSRVDUVALVPOSWIDTHPAGEPTRTIMELOMEMHIMEMMissing ߪɪD)/쭳èת%ة5;ߩŪ?«6Fϩȩs ۫I/isŮtGϫ ݳ}U4y Ȳ>痮4%ٶAJ_[ }XMUFK89x!cs AAClrÒbB4r5 %%9AAAAJJLLLPPRSSS%AAAA > 0L2II% NRR )*00NNN>XʈHh(@`8x:Zz0Pp!AaF&f朜$L :(L I] (Jxi?8 l7 968 ? : 8銨 . 7ȱ N : 7Ȁ ȱ : : L ޛL \Z C ' + uN d=:h d\`.  0*  &=&>E=L>!Li)ɀɂɄ ȱ )Aֈ) H@79(A8<=:;(6")$9:@A<=`)< o*@+A0()Out of range0訄*L^0 ߌ ̌ o+ByteAc (9 o ) Ɍ ) )Yˀ, ׌ )Index m  Ɍ ׌ Y ̌L ό+66 )A m Ɍ ׌݀ȱ 46) ό_8% o+d)Z ׌Še))z6<: ߌ o ߌБ)L> 7 ( oL^ Ɍ Ɍ o ), Ɍ ׌ )L= &>0 &>0e==e>=*0 he==Hh8` 댥798: 97 @9=)? @9?=)JJ=JJIT9`{_[A:0`.`7798` 7` 7 ' & AG" " `: d;d<,* ;;d<. ,< 7  ; ϲ7 AXV9:9ȱ90177. ȱ9ȱ909:8Șe99:7ªȱ9=J7 $=P;i@ 댢=JJ;d 7@ , d    뺀  d > t 뺰z   0 +ȱ * K ,(L L *[ɢ=` :в ϐ |M ư    T, 4! & R'7 'ɤ /L*H+H,H R +Li No Type mismatchNo room 漥,ɀx*6R,-6iH*r*Eq*E-8*eih*-*,*6**-*,,6` + **` 2 ?3@4`jE;*`L60-H,H+H*H L0-I-8h**h+*h,*hI-*` Q Lл6677 ȱ6 ἠ(`    '` { ** @ { Y** & ` & 9** @ L?<`>: ʜ*+,-@`= > ɜ ɜِ׀ ɜ΀ͪ= ɜ𿰼 ɜString too long Q fڲe6ݪH6ʈ Ҽh6 ǟ+-f`07 ğ.0Ke**e++ȱe,,ȱe--i@L ǟ'0 '' 0% ğ058**++ȱ,,ȱ- ǟ'0 ' Ǭ  ݖ LʟL0-,ڥ+ i 0-,ж+ iЮZ '9 ƽ hE-7 d?d@F:f9e*e+?e,?@e-@*&+&,&-9:ׄ=>7= ( ެ' L; & */ #` ݖ ' ݖ  8 &9&:&;&<$79 & 6H h^` ݖ ږ0ɇB AI , JK AI q  A I ⩩q إ۩t?8*&+!+*??7 7 7? 0 ` Ö*H)?hJJJJ??? ii0 Т`-d. Т0ɁK 6H7  8Md6dH$00 з70LТLС إɄ1ɠ xH5' M87eH0P8  8d7 108 x थ'A h0Ʉf1f2f3f4f501ɠ8A dHM871H0 8)dHȘ#70 Т. Т0H ТM lM. Т8760.Ȅ6H'E ТH - Т8H 7 H0 Тe`1JJJJ ΢1H41H2H3H5 &4&3&2&1 &4&3&2&1e55e44he33he22he15&4&3&2*1h`8 i H ΢h 0ڦ66` `d1d2d3d4d5dGdH.):/0߅5ȱ: /.5 e5 e.5ȱ.GDGE5:8/41GHצGH ye55432м1 eHHHG- $0d/d. H0  6H xH 8`2-)1Υ5*4+3,@8` ţI8`ȱ-+ȱ:"/Iȱ:/ ȅBI eI eB`I``12345.`d.d0d/`.;0<1=2>3?4@5A` F=f>f?f@fA`0i0/ ( +5eA54e@43e?32e>21e=1f1f2f3f4f50/`800/ ( G ( + + + Gd=1>2?3@4A5* Gd>1?2@3A4* G2*1e554 321`dAJ@J?J>J;J< >?@ =`vlJK0J.E1)E1J2ȑJ3ȑJ4ȑJ`lJKd5d/J4J3J2J.J0 234 1`d;dd?d@dA`LiLJ`.JK`lJK` :{  v { ; v `:IH  `10LLr 1 L;E..82 ?3@4@4@?3?>2>18&;@&?&>*Ŧ;<>?@8jjj)5C4D3E2F10 * ʬ 2 h5ɀ4 Ӥ Ϧ*4/d0d1d.d/d2d3d4d5`Too big1 0e<&/0/.E;.ڢ9t9Adf?f@fAFuB4uA43u@32u?21u>10F0510L ږ Log range-ve root v;=Ȅ<01ɵڄ0 { Qo a{ h8 ՁL ԩ ` ږ 00JiA0( F1f2f3f4f5 pdCdDdEdF@=B81@1UBG1B ڢ6G)5F54E43D32C21B1 UAAFBUBBG5&4&3&2&1JП S10 `GL0@+ L G󩿅K  L LA @ ږ.d. # )1 .L ږ [d. ը.`0Ɂ `0s6 v<=; ɠ aL :(II #LʬJ`  L ږ0ɘj  थ.;< 3 ԩ ÖI+,( q $ ԩ q ;) ԩ  9 t avKJ `Accuracy lostExp range ږ8 FB ږ= ږ0ɇ1.L Ω a G I *+L d.d/d50Y 1LT -0%,+*  Ϧ Ö タ' ƽ@`(  *+,-@` *I* *` *+,h-؀ԩ LH J*h J @H 6 +h L 0` 6<66  QHHHȄ78 d ; hhh'`L 66HHHdd Վ-+ Վ ᢀ Վ ᢐ ڬ' 6=!. u(=>?@ Ȃ Ȃ Ɩ@` 66L LL J *+,-@`  60-,+*ߥ-0ѩ & *H+ 漆-h,* .0 ;Б, Q ;Ѓ*) ,L Ҽ**ʆ-e7e88-!6i+ ἠ6 7*L Ἡ*+78L 60$-01d.` 1.I.` L08**++,,--@` Վ" ,ʆ6`ȱ ""L -"+ ՎɎư5L? .&Q(B L ᢐ`() @AkNo such variable)Bad Hex ;)` ȱ0#: 7   &*&+&,&-׊@` * !ȱPЌ L 66*+d,d-@` ߲ ȱ$ * @` &  ;E,D Ҽ( *66`6**6* LL ;, Q *H*), Ҽh6ň,68,****6^ Վ~Z 6h7 2; 6L & 漤6**6*6`6`Lh h No such / d  0ȱ  e Ȅ e <=<79< Š E   LrBad call'e Ƚ'H H H He78  uL* * Hd (M HHH hhhh ?  j?h h h he'`HHH R hhh,H+H*H )-H Վ(# ; "'- & ) hhLMLh h Arguments h*h+h,0-م'7 ƽ' A 8 -к Ҽ LťMHL,7 ƽ  "(07 L&,0S*-*,***+@`*Ld5d/*4*3*2*.*0 234 1`*6*8*767`+*I 6` *Ll  dd 8d7 ( 78 0  78`( ~ 7d    d ϻL `:" at line ";:: o*H+H *=+> o *H *D h77 o *#LL ;zh9h8h7Z9"' Ö*79+7,ȑ7-ȑ7`'0 07.E1)E17ȥ27ȥ37ȥ47`EDIT 12,2 d;d<  & ۫F+(  &  1 ƽ  ȱ Oж o *L  ̀= >  $0 +ȱ **1+2 $LdLdM $;d;$<d< 7"ELLL ;< 񀇅MåM 8 ; < dL " ELL" ȀLɍ * ;<L 7Ȁ &8=Li&-*+,8&!Can't match No *+v*}*7*}*8ȱ*}*9ȱ*}*78!78"79#7$7]]$&' ƛL 8& 8L DZiJK *7+8 i&i!J 0L" variable#Too many s$No ۰ C ( Վɸ&Ϙi&7(8)9*T &*!+",#-$  ՎɈ  &*+,- ϛ& & 'L ; ݖ&i!JK  إ ՎɈ ; ݖ &iJK  * %  %0%Too many s&No %% L *  K => L ɇ d  L Ʌ o vڥ+,-X*50R L:HɋD"E+++),(,,զ,*hH * ƛL# * Lܶh ɋ: ( range' syntax)No such line Վ  L L)ȱ : `  o+ ̀`LLi L : ɋ * =>L L C ( & ' ei ud XT K 0ȱȱ .e*Out of +No -#,Too many sȄ` / $ץ*+,-$LL2    Վ#а *`$  $L d789 :;Ȣ7 L} d` ̀M=7>87e7787 870 ߺ ߺ8L87`(< ϻ 7 8d;d   ; < ;; ;ȩ ;Ȅ?9: 78 space97:8e9:=>+=ȥ*=ȥ?=8e==>ȱ;= ` ϻ`d$d&d%d`JiKi`8 0.E1)E1ȥ2ȥ3ȥ4`-0ԥ8 -,+*`z*H+H,HZ`6 66`9ɀ%8797:97L 7 797ȱ7ȱ797Ș+6 8-,+*e`7܅ ` L7ɀWV89Zȱ87 Ș8e88980 z`HJJJJ wh) ii0H# hl l $0 LHEh`% 0 * `*+,-` Ad=7 d 0  e` Ͼ Bad program Ld786 `L / %L 69: ;<` A?@CDGHdAEF+=>B7 $ 6 H >Z R z*h L > * >H z* h7h8 l7ڢ* .* +,-` dd Ȅ`ʬAJ.owzaIڢ"n{5e.^[ت-TX1r P)||R6|6@*zsaqU-{w+S|Lʷ~}D~Mam?~\#~v}>, AҀt߽ Ymc8,}ԱyhOYu,9{;l1ь}*RogerSI0MSS @/L1No memory found@S0SiH)N1hJJ) W } BBC BASIC Si r }K bytes free !ʆ% ʎ% SAM!nX1,ȹ1,L=(C) Acornsoft 1986, V1.12ANDABSACSADVALASCASNATNAUTOBGETBPUTCOLOURCALLCHAINCHR$CLEARCLOSECLGCLSCOSCOUNTDATA DEGDEFDELETEDIVDIMDRAWENDPROCENDENVELOPEELSEEVALERLERROREOFEORERREXPEXTFORFALSEFNGOTOGET$GETGOSUBGCOLHIMEMCINPUTIFINKEY$INKEYINTINSTR(LISTLINELOADLOMEMCLOCALLEFT$(LENLETLOGLNMID$(MODEMODMOVENEXTNEWNOTOLDONOFFOROPENINOPENOUTOPENUPOSCLIPRINTPAGECPTRCPIPLOTPOINT(PROC POSRETURNREPEATREPORTREADREM RUNRADRESTORERIGHT$(RNDRENUMBERSTEPSAVESGNSINSQRSPCSTR$STRING$(SOUNDSTOPTANTHENTOTAB(TRACETIMECTRUEUNTILUSRVDUVALVPOSWIDTHPAGEPTRTIMELOMEMHIMEMƕ5L =ԽZS(.uHrL7Z(>eea.f y.Y?rHbAh~R> x\v}OO̅w'DdFf̎TӅOp(L4Xd=||ghhhfadeaa|bgdhhdc|ejheeeg`dd||deddheb`_gedddmhiiiiijeEC|p==D|U|GGGGn|B|G|BB>>EH=HnrstHVu>GHHqtHHAGv>w}vsy=HGwn|K89x!cs AClr4r5 %%9AAAAJJLLLPPRSSS > 0L2II% )*00NNN>XʈHh(@`8x0Pp!AaF&f L *Ly>* C=] U 7 *JLt7 iAB:0L6: o9 p;8:9 wA /pZUeH<=<=hZb8\+$;HZUeФ`bWrap"X :,@-AV.B:V/*)Out of range,. -MA)L:LA80̘0) C=# : :-Byte6h C=(7 : C=) C=, : C=Y, C=X C=)Index : C=, : C=X Y :L: :-L#9/+- C=A : C=, : C=XL9 :.21 C=#L@9 :L93 $ C=( :LA8 : : : C=)L99]?I)H7/ C=#hL@9 :h9 C=,L9 C=)9 :L9L9 :h9 C=, C=)9 :-LG9L9K :,*LA8cBank ?Q G.-MA)-0- ` ?Q GL: : :+i+` ~BWDSLhUH :L;H :+ x{hLA8L?*H ?Qh* :He9;e:9  ;& ; ;AG" ;" `:=>,*=A`. ;3> A;49 ; ;L`<=>L< ;9 ; ;L}L J=>JHȱ9 ; ;L=hJ>JL <  ` ~ ` 7=,Missing , U ;~:99 {/ U {* U U ;~" ȑȄ Gy rnYW> wrnYʆ*> ay 9:= $W0 < [N YxL= C=ưL>L>L=L6 ɤ ?QLUNo ~=*[3 U ~  V ~VɋW U U ~: W!e Si/00TS L> ϐ494:l9  K"L$> U I. J X K& y PU) $?Lp>X/ y PU) nLp>LhUType mismatch z.ɀL @ s8r./8iH sV seVE s(iE/. sV8Veirh /. / . 8 8) s. s0ɿ//0.8`/Ue.SU ?8`H/LNo roomWH/W |   hW`;ɀEj ~$ ~8; ~(< ~Ve;S @S ;~TS .LhzWH KQ [h) 0 , 0٢l 0̥8 Ľ h Lm> wLk> C=: ɋ8 C=# LuA  pf C=: ɋ~,; 'BHH KQhh  V88  p8 p8LV=,,H vg G h HL!B G 7=)ڥ,  w G, /p w `  'Ɋɉ8` C= 'B"8` Missing " p  "Ȅ "Э U U w Lp> ?Q G y 7=,( iK0ȥ,ȥ-ȥ.ȥXLB U z CLp>LOge@d:`9 ~.. *C. .`.%-/00-d` Jl,LhU-,ݭd:`9 ~= ~> ~  ~99:9 J}d:`99 .` [N y C=,Є [N U,;-< z w U F;,<-L= g [N y g C=, [N-d,` LU=>:9` CW; z { D ~07 T ~ T8e==>i>  1E spaceSilly D ~0< .; .,e;;e<)< 1Eإ ~0p ~ɍ ~0[ ~e  N D ~0> ~-$ ~, ~? ~@ 9: ; Т 1E=i=>0\ }Failed at ~- ~, N w ~e99:` C,H z y N w z ; Yx GyhHe,,-L=LF KKIX/ y G F/.6,e-e̥,-../@) n :LF Bad C=e 9:A J($% A ~(LrE; 3Iв I JAHH g y :-)./Г Fh, ȥ- ȘH F C=,)LEhhAB F e,,-:9e,-eC89eWHW9: *::hW C=,Lk>LE space, -./`A zFBfA e,e-,&-AB,-`LE G,-.  Lp> G,- Vy G-Lp> U Gy [N ɇ : U,#-$"Lp> U U G,0 Lp> O= KQLG f0 ` DU)L\L? f0LZ   j ULp> LHC K& l.0 y g) n C=,Lk>Lm> LU No Not :,H G U LwHH : ULwHH : Ur wh HLp>H ?QLH :,H O= KQ G y G U h z9 : H- Lp>- C=: ɋ : H C=,;Lk>,l:W-0ɿT9S/0`` ~,S|8}4:W0ɿT9S/0`` ~,S?> <P=` ~LI0S>0<<;<><<<=LsIȘe<, <|=>0<ȱ<><<ȩ>ȑ>`0ɿee;vLJ/<0>; ~0ȑ>0ɿee;(T?>J/ЪДߩ 8e  h:h9H:H ,N/ ~A ~B,e;,-e<- F ~8/ y vg Gh:h9; z> ,N;e,,&;&<&=&>&?&@&A&B8?,H@-HA.B/ BAh@h?hh`) z |y Z Z y ?\LP |y mR) G y H[)=)=0)=?2@3A4 B5C6`jE=*`L?80 y mR0/I/ T\8,,]--^.._I/,-.` !z mRй98 ~;8<< ~;8 hz9(`   Q ")` Q G T\,,@ Q G T\Y,,0 G y Q` G y Q G T\9,,@ mR?<`>; P,-./@` = > P Pְؐ P̪ = P𽰺 PString too long !z >T`9 ~e8٪H8ʈ Lzh89 S+-]`0- S$0A T\e,,]e--^e.._e//@L? |y S)0 Z y ])Щ) z |y ZLR0% S06 T\8,,]--^.._/LR |y S)0 Z y ]LR) z |y Z y ]LR Z z |y ZLJS Z |y >T) G y (_)LSL?0ߥ/.֨E-0 ;T)0/.ЬХE-0/H Sf; x{ zhE/9 SfABFT*/ !&` G |y >T) G y _) O:LS O&;&<&=&>$9;LS y fHW!eSi/00TSLkT Ѫh^` G |y G2ɇH X] y ?\L cХ [MNO ?\L c [ y ?\ ` c Kc ` (_LAT [ k_Si:.0ɿ' ~_ ~^ ~] ~\Lnz/00TS_S^S]S\``    =(MistakeSyntax errorEscape 7==` KQLULU ~ : ɋмe  $0` U ~:W1 ~0)"H ~H ~h g IVh8e  `L=L? ?Q \ ,-./Ly> [N u ULt ~ ɋ L^>,#-$[ p N] pLp \,H)AhJJJJAAA ii0 6X`-0 6X2ɁN YKLV9  :Q8K$00 Z Yд90L6XLoW k_Ʉ3ɠ GZKLV7) [Q:9eK0R:  :9 X_32: GZ ` H[)D ]2Ʉf3f4f5f6f723ɠ:F X_KQ::93K0 :+KȘ#90 6X. 6X0K 6XQ3JJJJ 4X3)3 YQ. 6X:980.Ȅ8K*E 6XK - 6X8K "X9 K0 6XL6X`8 i H 4Xh 0=8=8`7 Y`34567JK.8:/0ۅ7ȥW#UeSi/00TSULX.JDJE5:8/43JдKJK Ye776Н5Й4Е3Б 7YeKKKJ/ Y&210 ZK0  YK GZK ._8`4/)3̥7,6-5.@8` CYI8` -+ :#/L :/ ȅEL eL eE`L``7eD76eC65eB54eA43e@3`H63H4H5H7 &6&5&4&3 &6&5&4&3e77e66he55he44he37&6&5&4*3h`345670 `021`2i21 Z 2?3@4A5B6C7D` ZF@fAfBfCfD`8221 9Z Z 9Z =ABC= @`MN/00N0 \C \B \A \= \Ld[qvlMNO$O0%2Mȥ0)03)0M4ȑM5ȑM6ȑM`MN/00N0Ġ2 .\ȥ0)03)0 .\4 .\5 .\6HUeMSML `$O0/M6M5M4M0M27104560 3`MN/00N0 \6 \5 \4 \0 \L[\UeMSNL~ \3/4.5-6,` ZLX_2 %] Y2\2ɠTə&i2BCAB@A6@5645343F3f4f5f6f@fAfBfC2мL>_=>?@ABCD`0866554433`20LLY \6L ]23E00LL]L >]LZ6 543` >] ]L>] ]L`f H[ [=0>1?2@3A4B5C6D7` `f H[ ]L._ Y̠82?w7%H)8JJJCDBCAB@A@h)NF@fAfBfCfD>8?2%H)8JJJ675645343h)F3f4f5f6f7?20E=I3@4A5B6C 7DLX_*8D77C66B55A44@33=0LZLZ87D76C65B54A43@3LZ` Y H[LX_2e?1212D20E=0 F@fAfBfCfDH&G&F&E rY` ^ Z7ɀ ZLN_Too big6 67101234567` X_3Ȅ2` [ k_: Y Z ?\7`LO G bLH ` [L kb ` ]hL kb ` _` Y H[ʥ0E=082?18i21 3@4A 5B6C6C65B54A43@38&H&G&F&E6&5&4&3к3@4A 5B6C6C65B54A43@38&76&5&4&37H6G5F4E3L+_-ve root G Y*0 [2Ji@2L ` [lM _qM ]2L`{ qvlMNO` G Y Log range %]=@Ȅ?23ɵ舊H2 ]{ [Ha la ` (_ (_ ] [h8 ZCMaNO (_ ` ]`1rz8 y|*?4zc7?PQ [PJPPMQN ?\ ` _PiPMQN ]J` aLa G YF0 aLa [ ~b Y ` _La &c ?\` G Y F0 a0`2Ɂ w_ b c ] c ]L`f2s [ %]?@= ]'b la c` Yg6Wx߀ʚnށ lR}bW/mc8, G bLLkb G bL) wbL`fFL b [ (_ [ k_ ]L` [ (_c laLc2ɘ_ [ &c H[0=? ] _ \6L54382730 >] Z [ c (_ ` ] [ ` ?\ c (_ `L]L<\Accuracy lost*/McNO`4owzaIڢ{5e.^[ت G2ɇ30 X_`Exp range X] c [McN ?\L c ` (_`c la` +7EUUW|-TX [S !c  ʊIH w_hH [ k_h 8H (_Lc` G, Lg G,I,@` .d,` Lg `C G9cMNO (_` G> a2` G C,-.h/ة@` fQ88 9:= < !zHHHWHWȄ KQ hzhWhhh)`L? f8HHHWHW 7=-+ 7= KXLe 7= KX qf)Ld f70 \( @ABC ] \@` f8Lg hLgL? } ,-./@` Y0 f0/.-,ߥ/0ѩLg G y O= vg G,H- z/h., 00 KQЏ, !z KQЁ,),LV= !z vg G Lz,,ʆ/e9e: ~8/"8i- hz8 ~,Lg hz,-9:L? f0$/03 Y 0 Y0I0` g08,,--..//@` 7="  ,ʆ8`  " "LOBW!eSi/00TSLf -Lnf"+ 7=Ɏư6L>? .&Y(J K Lm KX`*) @ALgNo such variableMissing )Bad HEX KQ)` re 0#: 7   &,&-&.&/֊@` PА,-./@`-.,/@`L? f8,-./@` ,-./@`,- ./@` à,, @` vg G/0).-,MF Z |y h y ^ Z \ F@` x{@` ( h,-./@` h01723 +_`fHj JJJJEh` G,-L Lg 8` KQb,a !z vg G Lz,88` KQ@,? !z vg G Lz88,,8,` h8`L?LV= KQ, !z G,H,) , vg G Lzh8.88.,,,,8` 7=~H fh9 V` V`L? G y O= vg z8,,8,8`8`L-Rhh No such /  ~0ܠ ~  ~e Ȅ C=e >? bV ~V; b ; U I J ȥ  JL\kBad call)I *{MSȽS)H H HHW[He9: J; HLRj a~Ƚ a~ s sWH C=(V HHH y>hhhh A z ,@AhWhh h h ~ ~e)`HHH Ka hhhh.H-H,HXHH l C=,)5[WH 7=(' KQ y)/ yhH 7=,) hhPQPhWhh Arguments zhXh,h-h.0%/Ӆ)9 x{) y ?\Lul zX< nLl/ЮX/ Lz '?PиWQHLnk-`.0 X/9 x{ m y(09 h`-Ly# s8 s: s98 ~`WH/W oI 8UhWU`.0Q\X-0ɿ#-/0,/,.,,,-@` s/ s. s s,-@`X,Lg sLgX-0ɿ;-/0,6,5,4,0,27104560 3` s6 s5 s4 s0 sLm G,Li :9W* ; 9: ; 0 ; ;9:`0,ȱ, m", rnY YW ay ~ *Ly>:" at line ";:: :,H-HH Gh U,?-@ : ,HH Gh U,F h99 Lp> : U,%Lp>L? KQ z;W) \<:0ɿ$:/0,9;-ȑ9.ȑ9/ȑ9`, .;- .. ./L.)0 Z0)0<:0ɿ):/029ȥ3)09ȥ49ȥ59ȥ69`2 .ȥ3)0 .ȥ4 .ȥ5 .ȥ6L.9ɀD:2;<ȱ:9 Ș8e::;:0 p<`HJJJJ oh) ii0 Lw o H%  wh l%! 0 p` ?Q U G,!L=ȱ O=> g [N y,-( C=, z y  C=, [N,3-4 U {W z EO? S w U ~- ~,Ȅ ,3-4L= NP $p= $p> $p ~ "EPP" p$Pɍ N  NLp===>>> oЪ No ]K (>LhU(,,-,X,.,8(!Can't Match ,,,-,X,(8( C=,LLFq-H vm(iM-NO ],9h:X< \o()iM-NO P,0Lk>HJJJJ rh) i0L" variable#Too many s$No K۰٥X/-H y U n(ϥ9-h-<-;- 7=ɸZ G(, -- -. -/ - g 7=Ɉ G (,---.-/- U( --i(Ly> KQ G(i M-NO [ k_ 7=Ɉ KQ G (iM-NO [Lts t U' '0%Too many s&No U'' Lp> t UW" IV?@ Ly> UrnYLp> C=ɇ U YLO>' syntax C=Ʌ ?Q GȄ يH-./D,@ ~ 3:/ɋ+, th ULt ~ : Ls h ~ɋ ( range L&V [N ?Q G -)- EO`)No such lineL?LhU Lm> | P C=,PH KޥX/ hP yP )()о 8  $?L.u)0  ,0 l <\ nL.uhhLm> C=#Ɇ fPFPQ AB ABQP(fP,; PHQH KX/hQhP WHW$PpQ$P? p w8PfP$Pp f 7=, ȄQhW( y d nLu) '?Lu?@ C= : ɋ t { U?@Lp> C=,Lk> KX/ v yWHW nhWLv v yWHW f)hW $?eiL{vWHW  7=,MI 7=,>  0   e*Out of +No ȄhW` ?Q U G&,-./&Lp>L&t,Too many s& U &Ly> p9:; <=Ȣ9 LvU ` EOS@c?9?@:@e?S@i H~TSe99:U .x U:U: .x0 &x &xLwU {`U:Ue9S:i H~TSHUeSi H~ThS`= w> ==ȄAA;< {9:U  { Gy spaceUe;SL? ?Q |LU !|;<=>` { ,|ABEFIJCGH?1@D9 J}Lp> {L= {L7y |H PU Gh, Lp>8**H },h @` |H O= U Gh, Lp> } Lg@H f |h LgL? | U, Lp>   7=#4 G,`h9h: ;l9 U w, oLp>-Missing #]L?=@ !~;9< ;~:-- ~--Iȹ.9.9-<Ŭ-LE𝩀 !~DH8GC֨CG--C9D ;~:9.9.-D ~L}.-------L9: -`Not Found/00`/00`S ;~T`UHeSi/00ThSU`UeSi/00TSU`W!Ue9S:i/00TSU`9`W!Ue Si/00TSU` `Ue=S>L~W!UeSi/00TSU``$W#HUe9S:i/00ThSU`9`HUe=S>LUe>S?L~W%Ue,S-i/00TSUUU`,`$W#HUe,S-i/00ThSU`,`HUeSi/00ThSU`HackedaboutbySam&PMFatac   F  ;L Y m  H  H H 8 L " h  h h  L m  ~ L  \ m  ~  ` y } \ F L L  Ӡ   L`.  ȱ  `  ` `HJJJJ h)` i0LDir Directory Total &Size &   ݠ  Q     )i 1   i18: Ȫ L JJJJ JJ )H 芮 )ʎ hHʊ h Jm m m m 88 1 L 8 i  0 0  123t hLs tLn dLr dL `K ^ ^ [ ` $,169=AGPW_SunMonTuesWednesThursFriSaturJanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecemberToday is day the of 19LDFS2.42(C)1985 Acornl 8Disc ! 8Bad  ᘩ¢hh 䃱 豮0( ,0 uLhhH 䃲0 hl À. H ɥH  h L H Àh Ȁ) ii0` ۀr` 怱` RL R򥻅  I.: b I. .name I).٢ I )  (` @•` 냹)  )  (L  ­`JJ )`)`JJJJJ` `¥͍© ¥­t­u©¥ ¥¥¥)8尰e` 0 HNot found R  a* ] $Ld   B `L% <ŝX _©X H @hdIi Â̠ ᤶ8` 냽  ` ` /Q)_)` /)_)(` K`H)_A[8h`,0 tH`…  ­ v v vh) À Lͧb L­ LO 냘H كh ǃ JJH)hJJH)ȑh` ܃``HZH HH  ʈhhzh`HZ 􃺝L  i`) .`80 `  ;  `8` 8$d ; ee 祹(`(` ] OȄ  ( ) FM Drive À Option  H À  (h Ӆ  ) Dir. : Lib. : ͧM)_) ULͧ 0` ` U#8 `ˆ  g ؤ gŪ ͧ ͧ  Ȅ tLCoffLOADRUNEXEC y y ù)e…8H)ªh`ACCESS2BACKUPCOMPACT7COPYS$DESTROYJDIRDRIVE ENABLEFORMFREELIBMAPRENAMETITLEVERIFY WIPE+DISCDISKDFS HhH 0(ʈȽ0Q)_.Ȱ /hHH``L  0 t է 6 ) ͧ `   = L)  0 t ͧ ݧLͧ 6 0 )  Deleted `  `  b X(PL½*(j`)` ! m „Ȣ $ ; =L N m d Ɂ ` KN L KA .command p"­…̭ ͇ p mª` D 9 : ©E©.©:¥ 0©.¥̍¢L ݇¨e¥i­v-w t¥u t©Ll򅺥` P¥̝` 냥HH °Ñhh`…  ͇* ͇ I: b I. .dir I`  R  I L)``  퀢 # L) N) = I)_L .attribute 냊 .option`H R Oh āM)0ML) #full  HH8zx… yu­xthh`©ìV L ㅘİ ř =H  )h` 8Cat fullv) E)E Mt)Mt E)E…``u¥ ut`w¥ wv`…̭L͇  I:80  ͇` .drive  퀘H $ Kh H h  8Exists řL)X :  錠i +() H)¥)Ι @$ +h`|`` e d )ɠf1 U0 **)I 8f 0)ͥ)¥͠ )]^$J°d, )P)© @`LŎL F\ $0: ȱ; `G H `H()/)ƥh@ jT ϥύ**(h@+= E F ƦC h@+h@+: ; E F H h$   `  `H()+&)h@  ƦƧ wƥ$ h@2+;?IةMԥU̥]пϩа楩Ъ{ЦТУ&М**`Z))`$)`%&56@Pp?___ @ <  NNZZNN  #) 0†DŽȠ Ǚ )?:K=g5Lԑ0)#)0㑄 ͋Hih` ͒ '¼ © ͒ ¼JLW¥Ý©LW`)8 JJ)` xi U0°(i浥***¢*0#ȄH) & & & ȑh) Š  U07%/ ʆ    涥ƹͨ,Pe嵰  Ʒ`i`  `iؠ,( ` {¥͍©©ΓΔ ͍`$ HEscape`d [ u®¼ P_ ы0T j HExecute only+ M°*)] [ΞЏ #read onlyH # Ofault h k O at : s O ,J k O/ k Oɠ½0`H sh Ȁ` `` 냩w L ©w i ˜ %H FI-¹)`4 -&¹Ý Ý  ā])0] ) h` ) Õň w"¬`)̹L͇ 냭  #changed) L $ $(P`tƾƿvw©@ N(p ; b  (0 ] 8Too many open 8Open½Ƚ¨ iÙí™ ¹ i iù i (P.0 Ù ù Ùù Ùù åÙØ ` HL©H,E)Y)Ʋ88 hк` җH˜  h`HH hh` * җJ' %LŚ җ••`` % m¨ÕÕÕ` % ¹+ZÝz ŚZʎzL'õõ  `H˜) 8j,h8`h`HLјH Áh` ɥ  ɥ ǢL Ϙ`HH % hh` Ϙ 8Channel 8EOF  % ) ©8`0 ) 8 ǙÅÅH¦芙iùi h` åÙé9Ù`)@0¬© b(Å ©  ¬` 0L@ 8Read only L %H )i f 8H)h4 8Can't extendi ])0]h é ) IÅÅhLV`H )Œ 웰x ٛp ½8ý)é ٛ¹͹̀ ͢ m™ ā])0]Ý Z )z(ht 웰b  I y@ 8Åê/ āÅ b y Z z '(LT`͠¹¹`ͣ͢͡͠`Zz`ZÙzo yê )y؊L0  L8LǙdÅtudÅ`Å` i` % )( ҚZʝm}iz8 M Қ|8$HHhL|8H ϝL ÙH½͝Š 원hHdĕȕʝt @ ā Z}uGz oZ|LuHtHLz  hĥ ϝ(LTZe T `‘z( 8`` IÅÅZ .z:,­p Ȁ Ȁ|L QйZ z`­c-d ΁ ¢a  P`@    ZÙz`,Z z`Z z` 웰ZÝz`yÅù )yÅ`H  DFS 2.42  1 ͧƷhL } I q HSyntax: 1 }L 0 }L7  膿 Y )) }轜) }轜` 냦湝`ƸL }`fsp>afsp>L)source> old fsp> ))title>drive> (40)(80)0/80)...)L.!BOOT E.!BOOT < p`p&G (! OHNHJ i`y֡ ޡgnvyW 5` 냄z 02aо ˭x Acorn 1770 DFS  җH Х ɥåȹåȥ쌂Œ†ͩ ˆ å ӱ3hH/Ա0W °È褐H? h. $ Œ ¢ŒŒŒ Uh  8-­ ` L ܐ Zd ɥʊ1( *z< 0` 냢~L 냱 LԞ * ԩ` ` җ0}ǦǤL R 0`ȭȭ)ȩ` Ա`ʰ` "``%` CSID KSIDZ  Ա0 ) z&` H „¢ Ӏh H H` HH` җ}Œ~¨ # (`¹&¹/JJ T `ˆ .((lL F0 ` M : : F : T`‘(` R @©мi( /Ḛ))  a aưi­`` R @ a a  aLa _ 0 a _N _ 0 a _;Ha…b…h` 냢``]ee`}…~…`,0 &L5,L5 &L5,0©`*©# Y ` 6 $ Y ޤ P Y P Y ޤP Y N  ` 냠ȱ ȱ ])  냠 ȱ ȱjjj])]` 냠) ])]` c#" 8Locked ; b!LƖ chh` ……` © 8` өȑ`H h` 냩 냩~ L!$'*-ŢߗD P ((6U5ƾΟM ] Compacting : À ͧ x ʩȩɤ (8H) Àh  free sectors ` =ʹ y Ĺ (iŹƹ)eąȥeŅLș)ə ! ) BLn,[ ݧhhLͧ  b  bZd x Copying from : À  to : À ͧh` $ $0`Ū Insert $0 source destination  disc and hit a key 5H h`  :  Go (Y/N) ? )_YN (`LyLE  DžɅȅƅ j… Oĭ) u… O)ŐĐ !LO   j ͇ $H BŝP¹G åiiĥiŭN…ƭM)ǩ ! j ͇ h `  u…ͥH w h $ ; )HH hh`E´E`ddsĨ¥„ƅåDž­…… j …$ ҨȅåɅ­… u eȅȐɥeƅƐ8İťЇ`tu`…ɍ  X° # (PL K$0 Verify Format  which drive ? @ ? 8073 ͧL) b$ͩ, x R `LyLy$0 Verifying [ Formatting͎  drive À  track $0 Lͧ©©  ,$ w (­)©©_ u Ν ?L ? $ h­͟Ј$ 4LͧŽʎŽ­©©c©*¢Œ`` m`… i ‘ȩȊȩ Ʋ`8 i ` 8) 8尰eHh`8f ] $0 Address : Length )Ņ­8©)( Ѭ 8廥弐8廅)(弅ڄ$0  eeк$.8 Free 8忪 Used ` : H h)eyy` Files Sectors  &&& *  ߠ ,, ,i0   Bytes `hhHH 䃱0 Lhhl H h ȀL ­H h` 냩@© ɥL­ ­ x   ȩȥ(`Ɂ `Lx  (`*SRLOAD $.Library.DFSimage 8000 7 *INSERT 7 * *| *** Now press CTRL-BREAK *** |* *| *** to initialise DFS *** |*    drive disc name i0 `Display Discs. 1.04 0      hh 橱lH/8婰e h`*EXEC $.Library.DISC   E H 򥩅 5vޝ IHJIhJGGLکB 0+R 0% L 0`  F Disc name Drive Bytes free  & FBytes used 毩 `⍍ F    F  ` F HH  ghhL/Show Free Space. 1.05 #(۠L `0 & gLrhh 殱l) 0L  (....0 (* ((   , `   ` PPPPPPPP xp(  @ PP`h @ @@@ @  @ p @  @pȈp ` pp @ p0Pp0@p @@@ppppx` @ @@ @  @p pppppxxp px`بȨppph𠐈xp pP PP PP  @p@@@@@p@ pp P0H@@@pxx8@@@8xx0Hx@0( p 0HH80@@pHHHH ` pP @@P``PH` pP0HHHH0HHH0pHHp@@ppX`@@@ppp p xP PP PHHH80 @   @((((((((~| F0HP Rz@@ @@@ T88T` @  @||0||8@|<| $D|8@|||||~x0  @   |||8DBB|BB||BBBBB||>pƪ¢8DD88DD:||||D(DD((DD( @< <@ xx(DP8$@b F$(jz@@  T88T ` @  @p0  @   Bx "~B|""|DD|>`BDH @@@BfBb$BH0|BB$BH4|BB |<|~~B>>B BB||<~BBBBB~<< @@0 0`(>$@TFBB@ BBBB"B"@@"BD@fb$B$BBBBBDB @("@@@PP( 8J(@BB ""@"@@@BH@BBBB@(D D 8\<484x0l88X2X<|DDBDD|  (8 @~|B@8(@bBLDL RDDdLd@DDBHH $ j 8   BDDH( @@|D  Ȕ8 00 PF T ` @@ 0DDDHH0D @@@Ą d  d$PHh@ @@z x|xx|@xp xx8|`04x x H xxxxhx pPpph H `@ p0 p F js auHvuhvssLqL. F jt avHwvhwttLqLex L L L# L' `, 8 D Y , L ,`, 8 D , `Mc! `"` /8did 8/ i: , `a` ROTINOM TENOCEkcolc oN *R*K*D*=*6** L3!vQ i HH hhLS!b)e%d!oJJJJ 0:i ) 0:i Ѓ@"L ,HH) (ơ 槥@"e,0ʩhh, @L4 L8 ____ 000 :  򥩅 I    ZH H hh.0<:8 Lj / ".0e:a) eeLL`Syntax : *Notify | # Bad number  : 9H4:; = KL<== h?@;< 8 :i &:*=ʈ:  KIL:L88 9d  /8帰e欝:`ߩ i D( $) * * + , - d. п`l6 `8 0<<< ~~<< 0<<<|f`cf<|<|<~ffcff~|>```80 01f~~w>~~f>c>>6<><`<8pl6?flf8ff`0fffffffl``ff l`wffffffffcff``<6`0``0kfff<ffffff`P<<0>|88f6|<|>l>|ffcff~F<6kcc~6ff>;3f0|ff3c`>fc6kp~6>80 <~~~ l|<>`j~|`f||n~ p`k~f|f|<ffk<`B|ffff|fflffffv`0ffk`6>?x6ko6<00f~l33F~ 0m0 ~0v~f0f0~ nff`f``ff x`knf`jlff<0` 0>f`f~0ffxkffff`<0ffkf~~f`|ff8~>~~~>>?`~ffffffff<0800vfvs3`c003clccgc600>6>666ffkf3f`ffx63`c6ff3kkkf~p6~ff`f0f ff0f `fffl``ffll`cff`lfffflkff|>`0f<<>0ffff`ff<f```fflf`ffffff>< B~pfnf~Ucc3`c3f3cfcccc60cc6~6ffsn3f0`fflc3`c6|f3>>f~06; 0<~~< <<0<8 0~>|<><0f<f6f~ 0ffg<~<<~><<<>>?<<<><<<<>>f<B@<c~`~w>6x<>c>c~6;>0<>< fc>>>6`< 66<`00<p`<``<! I 鍥 LȊ Y 9 Ľ 򢸠 v   0  9̠ٱG Y3HȱHhhh HHHhh v YПȱۤ ȱ L(Ý  L `l `󈩓`© © ~$ Escape2 0`@.0) ee`ȱ ȱ A Ȱ0 ,Make sure the SOURCE disc is write protected, ,then insert it in the drive and press a key. %+xX, ((( (0(`@( L(@(( ( (0 ( (((((((((@((((Hr ( h( (`s( , Disc error () ),(0- , at :(JJJJJ )/ () )( )( ) , Re-try (Y/N) ? )YL(L+ %+)NY H h`HJJJJ )h) ii0L(i@(((`(8@(((((`(i@((i((` ( 9, ) ( 9, ) ( 9, ) ( 9, )` (` (` ) m, ( ) m, ( ) m, ( ) m, (` * * =* * A* E* )`(((` * * r* r*`((((((( ( (2 ,Please insert SOURCE disc and press a key %+` ,Please insert DESTINATION disc and press a key  $L,`Ȣ  H0I I% , Not enough sideways RAM L+h0 * ((  *L+ *L+T(ɀM * ,Backup completed. ,Please remove the disc and then press break.L, ,Invalid disc size ! L+H00櫥h0`H00櫥h0`hh歱 L,lFADFS , Escape pressed ! L+   򥩅    L ʩ i  +Ϡ ZɅ+ Not supported : Disc space accountingɠ I L`#Set User Free Space. 1.05  X dH.../h 0:%g aGABad hexToo big)_80 `Syntax : *SetFree _ i D( ( ) d) ) $* * * п` PP @p p0pp@ppppxpxppxpp 0@ @` PPxP `0@ ؈ @PH(@@ PP@@   P @ Ȉ P@@@p8x0 0p`P P00ppXppH @ Pp `@p  px  p P @ @HpHH ` HHH` PH(@@ @ @@  P @@@x@x HH ` HHH@p H P @@  P @@@@ 8H P HHpp@ PP8@ P h@ ppppp@p` @ ppxp`ph p P ppx8x0 HpPHpH0@@px P @@0 @0T Z HPh 8 Q[[\\ P"Z9 Q  [  \ L NO 0 O 0L8 Ȱi ` `:L3: O%=O%+diff% u3[ OPT assert("diff% >= 0","Middle over#Good morning ! It's Good afternoon ! It's Good evening ! It's ,L  )   Stn User Id.ᆮ i  LΡ0ϥ #轢$Ƚ$ Ĭ &"ȩ $hh 橱l $)1L# ƮƮ$ g .  # g  %   L 権d t tH/8帰e0 ,  h`    F 3 `Show Users. 1.11  3! I 颶 L8 y {# } {$%U,0Pp,L0) ٪ 0Mode ?0 f8\1PQ(JftI  d   3R4S  ~$ EscapePPP@((  L2 08` (`00M5ȱI I-8I A/ (Ȫ@.0) ee`ppp0p`````pppp````````pppp````````pppp````````p```````` pppppp```````` ppppp`pppppp``````A   ````````pppppppp𐐐 p0  ````````pppppppp    p00 AAA ``````   ````````ppppppp`0p 00  A ````````   0 pppp` `  A  0p 0ppppp   ``     pppppppp   A p``AAA 00    @ 0 0pp `````   A`A  pp    `AAAA      p````````   ppp    AA@0@A pp0```````` @ `   ``  ````0pppppp0𐐐````````  p0p````````pppppppp 0pp𐐐````````````````pppppppp𐐐````````uu``````pppppppp𐐐````qq                                     uu                                      uu                                                                                               Nick!BOOT },!BOOT },MCOMPACT MCOMPACT NickBp ^ݝ_ݩ ^ݢ6 Y +LEXEC !Boot I AM COMPACTa TenLong000.TnLong000 SDISC^NickMENU +.MENU +.NETUTILS NETUTILS NickP , *SHADOW dB%=999:G=:0:23,16|:A:"DIR &.NETUTILS":o0%=54:m%=15*4:s%=256:t%=208:d0%=3*256:u%=224:*FX15,1  *FX4,3 ` *FX22 `0%256:0(0): : : Td%=0:f%=0:p%=0:q%=0:v%=0:a%=320:b%=400:h%=320:i%=256:p0%=1280:q0%=1024-32:e0%=16:a0%=16:f0%=4:g%=32:c%=16:w%=3:H$(w%,6),j%(w%):n%(w%) ^KH$(0,0)="Archive ":j%(0)=16:n%(0)=2:H$(0,1)="Archive":H$(0,2)="GetBack" hmH$(1,0)="Management ":j%(1)=176+32:n%(1)=3:H$(1,1)="NetMgr ":H$(1,2)="SetTime ":H$(1,3)="SetStation" rkH$(2,0)="Copying ":j%(2)=320+4*32:n%(2)=3:H$(2,1)="CopyFiles":H$(2,2)="LogCopy ":H$(2,3)="L2to3 " H$(3,0)="Welcome":j%(3)=1096:n%(3)=1:e%=5:r0%(e%),s0%(e%),t0%(e%):u0%(e%),v0%(e%),w0%(e%):x0%(e%),y0%(e%),i0%(e%):z0%(e%),_1%(e%):`1%=-1:k%=0e%:i0%(k%)=: 0,1:3(0,950,1279,1023):32,0:3(4,954,1275,1019):k%=0w%:4(H$(k%,0),j%(k%),960):k%:B:a1%=2*c%:b1%=2*g%:o%=(7):x%=(8) l:*POINTER !4 *FX229,1 !:y%=(0):y%>-1:*FX229 #(5:*POINTER 0 $Ta_%=w%+1::_%=_%-1:g0%=x%>950o%>=j%(_%)o%<=j%(_%)+48+16*(H$(_%,0)):g0%_%=0:y%=276:dXg &g0%7(_%,0) ' ) \D )h"("DIR &.NETUTILS"):*pointer 2 *0HI%=-1:I%=I%+1:`0%?I%=I%?(1+!&FD):`0%?I%=0:`0%?I%=13:0($`0%)Dl` * G:Ll + *FX23 ,$:"AT LINE ";: ,+ݤ0(G$):h%=(2+G$)*c%:h%<10*c%h%=10*c% - v%1 .a%,b%:0,h%,i%:23,27,1,4,0;0;0;:0,1:@(a%,b%,h%,i%):0,0:@(a%+4,b%+4,h%-8,i%-8):"SCHOOSE 8":&ED,a%+c%,b%+g%2:5:0,1:a%+c%,b%+i%-1*g%:"Error";:a%+c%,b%+i%-2*g%:G$;:0(0):<>0(((0)7)<>0):*SCHOOSE 4 2d&ED,a%,b%:0,1:=(<>17) 5 $7(_%,`%): `%=0: n%(_%)>1D: 5*"FX23":"FX22":TDi 54 C:("DIR $.UTILS") 6_%+1TTw,Dxw,d\w,tdx 7`% T^w,Thw,Trw 7 "ARCHIVE" 7( "GETBACK" 72 "HELP1" 7x`% tBw,tLw,tQw,tVw 7 "NETMGR" 7 "SETTIME" 7 "SETSTATION" 7 "HELP2" 7`% dfw,dpw,dzw,TDx 7 "COPYFILES" 7 "LOGCOPY" 7 "L2TO3" 8 "HELP3" 86:"FX22": 9(6:笤1("leave the net utilities") :"DIR &.WELCOME":"MENU": r%y%>-1:*POINTER 0 C+r%>0r%<=l%2(H$(_%,r%),d%+8,f%-r%*m%) D\1r%=`%:`%>0`%<=l%2(H$(_%,`%),d%+8,f%-`%*m%) E#y%>-1`%>l%:`%>0`%<=l%@|G F07(_%,`%):v%8:2(H$(_%,`%),d%+8,f%-`%*m%) G|/`%>l%:1:o%=e0%*(o%e0%):x%=a0%*(x%a0%): J81:*SCHOOSE 4 Kd0,0:&ED,d%,f%+q%:v%=: L8:d%,f%:0,p%,q%:23,27,1,4,0;0;0;:0,1:@(d%,f%,p%,q%):0,0:@(d%+4,f%-4,p%-8,q%+8):k%=1l%:4(H$(_%,k%),d%+8,f%-k%*m%)::v%=: Qݤ@:d%>o%o%>d%+p%:=l%+1 Rl=((f%-x%-12)/m%+1) S4!0(X%):4,23,1,X%,0,0;0;0;: Tt4(I$,z%,_0%):0,1:z%,_0%:&61,32+c%*I$,g%+16:0,0:0,-3,-1:&65,z%+4,_0%+4:0,1:5:z%+16,_0%+36:I$:0(0): W42(I$,z%,_0%):z%+4,_0%+4:&62,24+16*I$,32+8: X03(b0%,c0%,j0%,k0%):b0%,c0%:&65,j0%,k0%: Z0@(b0%,c0%,l0%,m0%):b0%,c0%:&61,l0%,m0%: \5:o%=(7):x%=(8): ^$A:*setpal ^ `UB:0,1:@(s%,t%,d0%,u%):0,0:@(s%+4,t%+4,d0%-8,u%-8):5:0,1:s%+c%,t%+u%-g%*1 `|"NET utility programs ";:s%+c%,t%+u%-g%*3:"Move the pointer around with the arrow keys";:s%+c%,t%+u%-g%*5:"Press the RETURN key to select menu items";: eFݤ1(G$)"Fx15,1":=13=2(10,"to "+G$+"?","Do you really want",,7) f,ݤ2(L%,G$,J$,E%,n0%):h0%=:L%G$(0,4)="Patterns":G$(0,5)="Shapes ":G$(1,0)="Tutorials":f%(1)=208:G$(1,1)="ADFS ":l%(1)=4:G$(1,2)="Keyboard ":G$(1,3)="Screens ":G$(1,4)="Text ":G$(2,0)="Applications":f%(2)=416:G$(2,1)="Desk Top ":l%(2)=5:G$(2,2)="TimPaint " G$(2,3)="Logo ":G$(2,4)="VIEW ":G$(2,5)="ABC ":G$(3,0)="Games":f%(3)=672:G$(3,1)="Adventure":l%(3)=2:G$(3,2)="Arcade ":l%(4)=5:f%(4)=820:G$(4,0)="Utilities":G$(4,1)="Characters ":G$(4,2)="Envelopes " 8G$(4,3)="Control Panel ":G$(4,4)="Pattern Editor":G$(4,5)="Disc Utilities":G$(5,0)="Colour":f%(5)=1032:G$(5,1)="Text Colour":l%(5)=2:G$(5,2)="Background ":c%=4:p0%(c%),q0%(c%),r0%(c%):s0%(c%),t0%(c%),u0%(c%):v0%(c%),w0%(c%),h0%(c%) حx0%(c%),y0%(c%):z0%=-1:g%=0c%:h0%(g%)=::0,1:3(0,950,1279,1023):32,0:3(4,954,1275,1019):g%=0v%:4(G$(g%,0),f%(g%),960):g%:A:_1%=2*a%:`1%=2*e%:m%=(7):w%=(8)  :*FX22  *POINTER $:a0%=(0):a0%>-1:5:*POINTER 0  *FX23 _`%=v%+1::`%=`%-1:g0%=w%>950m%>=f%(`%)m%<=f%(`%)+48+16*(G$(`%,0)):g0%`%=0:g0%6(`%,0) @ ^ L^ h *FX4,3 r*pointer 2 |DI%=-1:I%=I%+1:z%?I%=I%?(1+!&FD):z%?I%=0:z%?I%=13:0($z%)tLE  G|L  :: +ݤ0(I$):s%=(2+I$)*a%:s%<10*a%s%=10*a%  `0%7 j%,k%:0,s%,u%:23,27,1,4,0;0;0;:0,1:@(j%,k%,s%,u%):0,0:@(j%+4,k%+4,s%-8,u%-8):"SCHOOSE 8":&ED,j%+a%,k%+e%2-8:5:0,1:j%+a%,k%+u%-1*e%:"Error";:j%+a%,k%+u%-2*e%:I$;:0(0):=13(((0)7)<>0):*SCHOOSE 4 l&ED,j%,k%:0,1:=(<>17) 6(`%,_%):_%=0B: '`%+1dZG,TVH,DHH,d^H,DBI,D~I <("DIR &.WELCOME.GRAPHICS"):_%ddG,dnG,dxG,TBH,TLH  "CASTLE"  "CLOWN"  "CLOUD" "PATTERNS"  "SHAPES" 4("DIR &.WELCOME.TUTOR"):_%T`H,TjH,TtH,T~H  "ADFSTITLE" *"KEYBOARD" 4"SCREENS" > "TEXT" H:("DIR &.WELCOME.APPLIC"):_%tbH,tlH,tvH,d@H,dJH ("DIR &.WIM*"):"P.WLOAD" "TINSTRUC" 8("DIR LOGOtron"):"FX4":"FX200":"FX229":("LOGO") "WORDTXT" 5("DIR &.ABC"):"FX4":("FX15,1"):"EXEC !boot": *("DIR &.WELCOME.GAMES"):_%TdI,TnI $"("DIR ADVENTURE"):"INSTRUCT" .("DIR ARCADE"):"AQUA" B=("DIR &.WELCOME.UTILITIES"):_%DLI,DVI,D`I,DjI,DtI L"CHARDES" V "Estruc" ` "BANEL" j "Pstruc" t ("DIR &.ADFSUTILS"):"MENU" ~_%tHI,tRI,tpI,tzI 8(1):t\I 8(0) 2: "DIGITAL 0":"MOUSE": "MOUSE 0":"DIGITAL": B:_0%,f0%,b%,d%,q%,r%,h%,t%,_%,g%:_0%=i%:f0%=1:b%=f%(`%):d%=948:h%=l%(`%):q%=48+16*(G$(`%,1)):r%=-h%*i%-8:_%=@:9:::*FX22 Z *POINTER d1:a0%=(0):5:_%=@:_%<>t%a0%>-1:*POINTER 0 *FX23 +t%>0t%<=h%1(G$(`%,t%),b%+8,d%-t%*i%) 1t%=_%:_%>0_%<=h%1(G$(`%,_%),b%+8,d%-_%*i%) $a0%>-1_%>h%:_%>0_%<=h%TNK 16(`%,_%):`0%9:1(G$(`%,_%),b%+8,d%-_%*i%) /_%>h%:7:m%=e0%*(m%e0%):w%=_0%*(w%_0%): T7:*SCHOOSE 4 r0,0:&ED,b%,d%+r%:`0%=: 9:b%,d%:0,q%,r%:23,27,1,4,0;0;0;:0,1:@(b%,d%,q%,r%):0,0:@(b%+4,d%-4,q%-8,r%+8):g%=1h%:4(G$(`%,g%),b%+8,d%-g%*i%)::`0%=: ݤ@:b%>m%m%>b%+q%:=h%+1 &=((d%-w%-12)/i%+1) :!0(X%):4,23,1,X%,0,0;0;0;: bp4(H$,x%,y%):0,1:x%,y%:&61,32+a%*H$,e%+16:0,0:0,-3,-1:&65,x%+4,y%+4:0,1:5:x%+16,y%+36:H$:0(0): 21(H$,x%,y%):x%+4,y%+4:&62,24+16*H$,32+8: 03(b0%,c0%,i0%,j0%):b0%,c0%:&65,i0%,j0%: 0@(b0%,c0%,k0%,l0%):b0%,c0%:&61,k0%,l0%: *5:m%=(7):w%=(8): R2:*setpal f z48(Y%):A%=163:X%=243:Y%=((Y%1)*8)&40:&FFF4: AY%:0,1:@(n%,o%,d0%,p%):0,0:@(n%+4,o%+4,d0%-8,p%-8):5:0,1:Y%=1:n%+a%,o%+p%-e%*Y%:" Welcome to the Master Compact!";:Y%=Y%+2:n%+a%,o%+p%-e%*Y%:"Move the pointer using the arrow keys, or joystick/mouse when connected."; Y%=Y%+2:n%+a%,o%+p%-e%*Y%:"Select menu items by pressing the RETURN key, or joystick/mouse button.";:Y%=Y%+2:n%+a%,o%+p%-e%*Y%:" Please refer to the Welcome Guide for further information.";:Y%=Y%+2: The quick brown fox jumps over the lazy dog " All software on this disc is # Copyright (c) Acorn Computers  Limited 1986 ( 2 quick load < *FX15,1 F *fx200,1 P *SHADOW Z 1 d "LOADER" NickARCHIVE #j53COPYFILES # &4Getback +)5LOGCOPY +M$6NetMgr +G7SETSTATION+8ARCHIVE #j53COPYFILES # &4Getback +)5LOGCOPY +M$6NetMgr +G7SETSTATION+8UTILS UTILS Nick  FILE ARCHLHB A FS-Archiver Version 1.16LH. Copyright Acorn Computers 1985  initialize c fs(net%):X%=&70:Y%=0:A%=0:R%=osargs% &FF: R%<>net% "Net filing system not present"'': ( spaces%=5 2J title$="File server directory archiver":12'''title$'ĩtitle$,"*")'' < :" at ";: FD "Archives currently selected directory"'"and sub-directories"' Z preservecontext dq '"Select filing System for archive"40)"(A=Adfs, D=Disc)"'" :";:dfile$=:"AaDd",dfile$):f%="Aa",dfile$) n7 f% dfile%=adfs%:"Adfs" dfile%=disc%:"Disc" x\ :" at ": :fs(dfile%):restore_disc:#0:fs(net%):#0:X%=homecontext(csd%):   '"Pathname of"; 1 command("directory to archive.",) 0  $top%=$var%+"." 4 unpriv($var%) '"Insufficient access":0  , $path%=$var%:length%=$path%:sortdates C $path%<>"":new%=open(path%,&40):csd%=newcontext(new%,csd%)  off%=offset @ $string%="DFS drive": dfile%=adfs% $string%="A"+$string%  " command($string%,) 0 ( dfile%=disc% "0123",$var%) 0 dfile%=adfs% "0145AaBbEeFf",$var%) ; "AaBbEeFf",$var%) T%=($var% &5F)-&11:$var%=T%  d_drive%=($var%) "P fs(dfile%): dfile%=adfs% oscli("DIR :"+$var%) oscli("Dr. :"+$var%) ,Y X%=&70:Y%=0:A%=0:R%=osargs% &FF: R%<>dfile% "Filing sytem not present": Dd@ 6> compact '"Please use a compacted ADFS disc.": d\@ @@ command("Name of archive file ",) D@A $init%=$var% T* h%=graber(init%): h% :sin%=0:d\@ Y =0 ^5 fs(net%):'"Beginning archive ..."':q%=archive h& '"Directory "$path%" archived."' r= fs(dfile%):X%=w_buffer(wbuff%):restore_disc:fs(net%) | X%=homecontext(csd%)  q% "Errors detected"'  A%=229:X%=0:Y%=0:osbyte%  :  archive " nodata%,complete%,index%,c%  complete%=:index%=0 ' readname(index%) error(0):= # nodata%=cb%!5: nodata% TpB I off%= $name%=lcase($name%): $name%>=$offname% off%= TfB  type%=examine(name%,cb1%) I days%=cb1%?&F:months%=(cb1%?&10 &10):years%=1981+(cb1%?&10 &10)  name C type%<>directory header(path%,name%) nodata%=0: TfB + type%=file copydata(name%): TfB # down_a_dir(name%):c%=archive  up_a_dir  c% complete%= & index%=index%+1 0 nodata% dLA :=complete% D: Ndown_a_dir(name%) X new% b spaces%=spaces%+3 l6 $path% path%?length%=".":length%=length%+1 v i%=0   path%?length%=name%?i%  i%=i%+1:length%=length%+1 ' name%?(i%-1)=&D:length%=length%-1 6 new%=open(name%,&40):csd%=newcontext(new%,csd%)  : up_a_dir  spaces%=spaces%-3  oldlength%=$path% : :length%=length%-1:(length%?path%=".") length%=0  path%?length%=&0D = newlength%=0: length% blength%=length%+1 blength%=0   & name%?newlength%=path%?blength% 2 newlength%=newlength%+1:blength%=blength%+1   blength%=oldlength% * name%?newlength%=&0D 4\ csd%=homecontext(csd%): $path%="" new%=open(path%,&40):csd%=newcontext(new%,csd%) > H: Rݤreadname(index%) \ i%,q% f cb%!1=name% p" cb%!5=1: read one file only z cb%!9=index%  X%=cb%:Y%=X% &100  A%=8 ( q%=call(osgbpb%): read filenames  cb%!5 d^C  i%=1  0 (i%?name%=" ") (i%=11) i%?name%=&D  i%=i%+1  i%=12:$name%=$(name%+1) =q% : preservecontext r ?buffer%=6:X%=buffer%:Y%=X% &100:A%=&13: osword%:urd%=buffer%?1:csd%=buffer%?2:lib%=buffer%?3:source%=csd%  .: 8ݤnewcontext(new%,csd%) B< ?buffer%=7:buffer%?1=urd%:buffer%?2=new%:buffer%?3=lib% L- X%=buffer%:Y%=X% &100:A%=&13: osword% V4 csd%<>source% csd%<>lib% csd%<>urd% #csd% ` csd%=new% j =csd% t: ~ݤhomecontext(csd%) ? ?buffer%=7:buffer%?1=urd%:buffer%?2=source%:buffer%?3=lib% - X%=buffer%:Y%=X% &100:A%=&13: osword% ( csd%<>source%:#csd%:csd%=source%  =csd% : ݤexamine(n%,block%)  !block%=n% 4 X%=block%:Y%=X% &100:A%=5:r%=(osfile%) &FF =r% :  ݤopen(n%,a%)  X%=n%:Y%=X% &100  A%=a% ($ call(osfind%) error(0):= 2 =?tempa <: Fclose(h%) P, Y%=h%:A%=0: call(osfind%) error(0) Z d: n name x spaces%); S r%=directory spaces%-5)"Dir. "$name%:days%=std%:months%=stm%:years%=sty% : r%<>file range_dates spaces%)$name%;:size  :  size  A%=5:X%=cb%:Y%=X% &100  !cb%=name%  q%=call(osfile%)  @%=&A0A Y <25 30)~((cb%!&A)+&1000000),6); (+6)-(+6)5)~((cb%!&A)+&1000000),6) L " "+(days%+100),2)+":"+(months%+100),2)+":"+(years%-1900)  : ݤunpriv($string%) - !buffer%=&04003000:$(buffer%+7)=$string% - X%=buffer%:Y%=X% &100:A%=&14: osword% "=(buffer%?&F="P") ,: 6ݤdfs_size(d_drive%) J dfile%<>adfs% X%=buffer%:Y%=X% &100:A%=&71: osword%:size_left%=!buffer%: size_left%>&10000 size_left%=size_left%-&10000:=size_left% "Not enough room on ADFS disc.":=0 T# r_sector(d_drive%,1,1):=0 ^ dfs_start%=?(buffer%+&F):dfs_start%=(?(buffer%+&E) &3)*&100+dfs_start%:dfs_start%=dfs_start%*&100: dfs_start%=0 dfs_start%=&200 h} dfs_length%=?(buffer%+&C):dfs_length%=?(buffer%+&D)*&100+dfs_length%:dfs_length%=(?(buffer%+&E) &30)*&1000+dfs_length% r/ d_sz%=buffer%?7:d_sz%=buffer%?6*&100+d_sz% | size_left%=d_sz%*&100-(dfs_length%+dfs_start%):size_left%=(size_left% &100*&100): size_left%<&480 "Not enough room on DFS disc.":=0 size_left%=size_left%-&480 ) sin%=(dfs_length%+dfs_start%) &100  ?(buffer%+&C)sin%=sin%+1 =size_left% : sortdates  error%=  0 '"Start date (dd/mm/yy)"'" :";:""start$ : start$=-1 std$="01":stm$="01":sty$="81": THG 5 std$=start$,start$,"/")-1): std$>2 T\G / start$=start$,start$,"/")+1,(start$)) 5 stm$=start$,start$,"/")-1): stm$>2 T\G ? sty$=start$,start$,"/")+1,(start$)): sty$>2 T\G - std%=(std$):stm%=(stm$):sty%=(sty$) A std%<1 std%>31 stm%<1 stm%>12 sty%<81 error%=  error%= & sty%=sty%+1900 0 error%= : D, '"End date (dd/mm/yy)"'" :";:""end$ N8 end$=-1 edd$="31":edm$="12":edy$="96": t@G X1 edd$=end$,end$,"/")-1): edd$>2 tTG b' end$=end$,end$,"/")+1,(end$)) l1 edm$=end$,end$,"/")-1): edm$>2 tTG v9 edy$=end$,end$,"/")+1,(end$)): edy$>2 tTG - edd%=(edd$):edm%=(edm$):edy%=(edy$) A edd%<1 edd%>31 edm%<1 edm%>12 edy%<81 error%=  error%=  edy%=edy%+1900  edy% sta tempa:\ return A H= .restore lda copy:sta brkvec:lda copy+1:sta brkvec+1:rts R \ \. .brkcode ldy#0:lda (&FD),Y:sta error_flag f ldx sp:txs:iny p9 .loop lda (&FD),Y:beq exit:sta errmsg,Y:iny:bne loop z+ .exit lda #13:sta errmsg,Y:jmp restore  .indirect jmp (go)  ]   : initialize e osfind%=&FFCE:osgbpb%=&FFD1:osargs%=&FFDA:osfile%=&FFDD:osword%=&FFF1:osbyte%=&FFF4:oscli%=&FFF7  file=1:directory=2  sin%=0  @%=3:15  brkvec=&202:oldbrk=!brkvec  sp=&70:go=&71:copy=&73 @ tempa=copy+2:tempx=tempa+1:tempy=tempx+1:error_flag=tempy+1 D net%=5:adfs%=8:disc%=4:seq%=1:size_left%=0:to_write%=0:fsize%=0 $ size%=&1000 . cb% 30,cb1% 30,name%50,errmsg 30,path% &100,space% &100,var% &100,top% &30,string% &100,n% &100,init% 50,offname% &80,buffer% 256 8/ Z%-1:size%=-Z%-&B00:size%=size% &FF00 B wbuff% size% G C%=cb% L2 days%=0:months%=0:years%=0:split%=:source%=0 V initmc j t: ~oscli($string%)  X%=string%:Y%=X% &100 call(oscli%) error(0)  : ݤcall(addr) ( ?go=addr:go?1=(addr &FF00) &100 trap =?error_flag<>0 error(trap%) ' ?error_flag=trap% $(errmsg+1)  : ݤerror  ?error_flag=0 = # ?error_flag>&A8 =?error_flag 8 ?cb%=10:X%=cb%:Y%=X% &100:A%=&13: osword%:=cb%?1 (: 2ݤcommand(string$,atype%) < fflag%,A$:fflag%= F$ $var%="":'string$'" :";:""A$ P( A$,1)=" " A$=A$,A$-1): DPJ Z" A$=" " A$=A$,2): DZJ d $var%=A$ n< $var%,1)="*" oscli($var%):preservecontext: DFJ x/ $var% fflag%= atype% fflag%= } fs(currentfs%) =fflag% : ݤheader(path%,name%) lb%  range_dates = i% F $path%+$name%>=200 "String too long - Unable to copy.":= , lb%=$name%: $path%:lb%=lb%+1+$path% ) size_left%<(lb%+19) split_it() @ $path%:i%=0 $path%-1:bput(path%?i%)::bput(".") ' i%=0 $name%:bput(name%?i%):  bput(type%):bput(seq%) i%=2 18:bput(cb1%?i%): # size_left%=size_left%-(lb%+19) = :  fs(f%) " f%=4 $string%="Disc" , f%=5 $string%="Net" 6 f%=8 $string%="Adfs" ; currentfs%=f% @' X%=string%:Y%=string%&100:oscli% J T: : copydata(name%) % range_dates "dates exit":  from%=open(name%,&40) ( from% "Unble to copy "$name%:  fsize%=cb1%!10 $ header(path%,name%) TRL  M size_left%-2=tamount%:getput(tamount%,from%):1: X tamount%=tamount%-(size%-bp%):getput(size%-bp%,from%): w_buffer(wbuff%):: "Unable to ensure buffer, archive aborted":CAUSE HERE ]& tamount%<0:"overflow error ": b tamount%=0 g l v getput(amount%,nethandle%) < cb%?0=nethandle%:cb%!1=wbuff%+bp%:cb%!5=amount%:cb%!9=0 & bp%+amount%>size%:"abborting": " bp%+amount%<0:"abborting": ' X%=cb%:Y%=X% &100:A%=4: osgbpb%  bp%=bp%+amount%  PUT TO DISC " size_left%=size_left%-amount%  fsize%=fsize%-amount%  : split_it(split1%) 2 split1% bput(type%):bput(seq%):split%= = w_buffer(wbuff%):"Unable to ensure buffer":CAUSE  fs(dfile%)  restore_disc  seq%=seq%+1 4 $string%="DFS": dfile%=adfs% $string%="ADFS"  2 command("New "+$string%+" drive",) 0 ( dfile%=disc% "0123",$var%) 0 dfile%=adfs% "0145AaBbEeFf",$var%) *; "AaBbEeFf",$var%) T%=($var% &5F)-&11:$var%=T% 4Y dfile%=disc% ''"Please insert disc and press RETURN";::resp$=:resp$=&0D:'' > d_drive%=($var%) HB dfile%=adfs% oscli("DIR :"+$var%) oscli("Dr. "+$var%) R" r%=graber(init%): r% TBM W fs(net%) p z: ݤrange_dates ( (years%edy%) = F years%=sty% (months%edm% (months%=edm% days%>edd%)) =  = : $: . ݤoffset 8 off% Boscli(".") LD command("First object to archive",) DLN $offname%=$var% V4 $offname%="" $offname%="." off%= off%= `( off% $offname%=lcase($offname%) j =off% t: ~ݤlcase($string%)  chr%,X% X%=0 ($string%)-1 chr%=string%?X% [ (chr%<"A") (chr%>"z") ((chr%>"Z")(chr%<"a")) string%?X%=(chr% &5F):  =$string% :  ݤcompact  compact%:compact%=  dfile%=disc% =compact% fs(adfs%) 8?cb%=0:cb%!1=buffer%:cb%!5=&1000008:cb%?9=1:cb%?&A=0 (X%=cb%:Y%=X% &100:A%=&72: osword%  buffer%?&FE=3 compact%=  =compact%  r_sector(D%,S%,N%)  =sector(&53) ( w_sector(D%,S%,N%) 2 =sector(&4B) < sector(W%) FC ?C%=D%:C%!1=buffer%:C%?5=3:C%?7=S%10:C%?8=S% 10:C%?9=&20+N% P C%?6=W% Z^ A%=&7F:X%=C%:Y%=X% &100:osword%: C%?10 "Disc error ";~C%?10" Writing "N%" at "S%:=0 d = n x graber(n%) }< examine(init%,cb1%) '$init%+" already exists.":=0 * grab%=(dfs_size(d_drive%)) &FFFF00  grab%=0:=0 h%=open(n%,&80) ( dfile%=adfs%:adfshandle%=h%:dpO  h%<>0:#h%:=0 # r_sector(d_drive%,1,1):=0 . new_sin%=buffer%?&F+(buffer%?&E 3)*&100 E sin%<>new_sin%: "Please use a blank or compacted DFS disc":=0 : E%=buffer%?&E:E%=(E% &CF) ((grab% &1000) &30)  buffer%?&E=E%  buffer%?&D=(grab% &100)  buffer%?&C=(grab% &FF) # w_sector(d_drive%,1,1):=0  saved_size%=0  bp%=0:fsin%=sin%  =size_left%   restore_disc  fs(dfile%) # dfile%=adfs%:#adfshandle%: " sin%=0: ," r_sector(d_drive%,1,1): 6. new_sin%=buffer%?&F+(buffer%?&E 3)*&100 @ new_sin%<>sin%: J@ E%=buffer%?&E:E%=(E% &CF) ((saved_size% &1000) &30) T buffer%?&E=E% ^$ buffer%?&D=(saved_size% &100) h# buffer%?&C=(saved_size% &FF) r# w_sector(d_drive%,1,1):=0 |   bput(TA%) H size%-bp%<>0 : w_buffer(wbuff%) "Unable to ensure buffer": wbuff%?bp%=TA%:bp%=bp%+1:   w_buffer(buffer%) ; fs(dfile%): dfile%=adfs%:adwrite(buffer%,bp%):dCP " Q%=((bp%-1) 256)+1:F%=fsin%   T%=10-(F% 10) c T%>Q% 1: w_sector(d_drive%,F%,T%):Q%=Q%-T%:F%=F%+T%:buffer%=buffer%+&100*T%:0::1:=0 . Q%=0: w_sector(d_drive%,F%,Q%):=0  fsin%=F%+Q%  saved_size%=saved_size%+bp%  fs(net%)  bp%=0  =   adwrite(from%,amount%) 7 ?cb%=adfshandle%:cb%!1=from%:cb%!5=amount%:cb%!9=0  X%=cb%:Y%=X%256:A%=2  osgbpb%  *TV255 1  7:J 2 tXC < S%=-1:''" CopyFiles V2.30"' P3G$=6((134)+"Source filing system"+(135)+":") Z U$=7(G$) d K$=8(G$) n+Z$=9(G$):9(G$,K$):i$=G$:A(G$):*OPT 1 U$=""G$="NET "U$=2 U$=""tt@ n%=-1:U$<>2@("fs "+U$) 'n%=0:j%=-1:K$=""0:K$=A(J$):d\@ #G$="NET "@("sdisc "+K$):l\ 0 J$<>K$@("dir :"+K$) j%=0:Z$=""TNA (o%=-1:G$="NET "Z$,"$")=0@("dir") @("dir "+Z$) No%=0:S%=0:H$=6((134)+"Destination filing system"+(135)+":"):G$=H$a%=-1 6 V$=7(H$) @ O$=8(H$) J&X$=9(H$):9(H$,O$):_%w%=-1:TRB hi$=H$:A(H$):*OPT 1 rV$=""H$="NET "V$=2 |a%H$="NET "U$<>V$a0%=0 V$=""tdA p%=-1:V$<>2@("fs "+V$) 'p%=0:b%=-1:O$=""0:O$=A(J$):dLA #H$="NET "@("sdisc "+O$):lL 0 J$<>O$@("dir :"+O$) b%=0:X$=""THB (k%=-1:H$="NET "X$,"$")=0@("dir") @("dir "+X$) k%=0 K 7:26,30,132,157,141,131:" Copying files from"(135)G$(131)"to"(135)H$" ";:132,157,141,131:" Copying files from"(135)G$(131)"to"(135)H$" ";:132,157,131:" "c$" ";:x%=@:`%=0(G$):`%=x%t@B l#`%=8_%2(-1,"source",130,132) vf0%=3(`%) a%5(G$,U$,K$,Z$) A0:d$=J$:n$=e$:`%=0(H$):`%=8_%x%<>82(0,"dest. ",129,135) f0%=3(`%):_%B a%5(H$,V$,O$,X$) 0:d$=""j$=""j$="Source"  J$=""k$=""k$="Destination" d$=""J$=""T~C %g%=21:f$="Drive ":G$="NET "g%=26 H$="NET "TVC  a%f$="":g%=21g%=18 Q132,157,131:j$;:31,g%,:k$:132,157,131:f$;d$;:31,g%,:f$;J$:g%=1811 40132,157,131:"Dir ";n$;:31,g%,:"Dir ";e$ >t0%=3(x%) H28,1,24,39,7,12 \ G="S"L f G="M"M p G="L"N  c%1:#c%:c%=0 d%3:#d%:d%=0 =17Tr@ -q%:6(i$+" not present ")::q%=0:DP@ j%=&A9J$="":j%=0:dW@ b%=&A9J$="":b%=0:dGA 8O::129,157,131:$(X%+1);" "(156)':n%n%=0:DZ@ j%j%=0:Dd@ o%o%=0:Dn@ p%p%=0:TvA b%b%=0:D@A k%k%=0:DJA $r%r%=0:C:DHC ./129,157,131:"Copy aborted "(156)':D\C BV%+&C00=Q L ~J:r%=0:X%128:Y%=X%256:h%=(-P-&B00)&FFFFFF00:B%h%:@%=0:c%=0:d%=0:n%=0:j%=0:o%=0:p%=0:b%=0:k%=0:K$="":O$="":_%=0:w%=0:y%=-1:a%=0:M$="":a0%=-1:z%=0:b0%=0:R: =O:Z%=!&FD:I%=0:I%=I%+1:X%?I%=Z%?I%:Z%?I%=0:X%?I%=13: 2FA(_$):q%=-1:(_$<>"ADFS")(_$<>"DISC")(_$<>"NET ")@(_$):q%=0: Pe%=0(_$):3(e%)q%=0H d xݤ8(Q$):Q$="ADFS"tjE Y(134);"Enter ADFS drive number";(135);:""N$:"0145ABEFabef",N$)(N$=1)D:tLE :S%K$=""G$="NET "(s%(((N$)4)=0((K$)4)=0))=N$  dHE Q$="DISC"dpE P(134);"Enter DFS drive number";(135);:""N$:"0123",N$)(N$=1)D:ttE 8S%K$=""G$="NET "(s%(((K$)4)=0)G$="ADFS")=N$ ((K$)1)=((N$)1)dfE 0a%f%=B("Single disc copy ? (Y/N)")f%="N" f%="N"_%=-1b0%=-1 =N$ Q$="NET "="" ;(134);"Enter file server disc name";(135);:""N$:=N$ ݤ7(Q$):Q$<>"NET "="" ,8(134);"Enter file server number";(135);:""o$:=o$ JMݤB(p$):(134);p$;(135);:""l$:f%=l$&5F:(f%="Y"f%="N")l$=1:=f% rD:N$=-1tPF KQ$="ADFS"(134);"Use 0,1,4,5,A,B,E or F":(134);"Use 0,1,2 or 3": &:6("Invalid drive number "):: 1ݤ9(Q$):Q$<>"ADFS"Q$<>"DISC"Q$<>"NET "="" 3(134);"Enter ";:S%"source";"destination"; #" directory";(135);:""q$:=q$ &9(W$,J$):W$<>"ADFS"W$<>"DISC" W$="DISC"W$="DFS" "(W$="ADFS")s%(((J$)4)=0) (_%b0%)(S%) D(134)+"Insert "+W$+" disc into drive"+(135)+J$:W$="DFS"TzG 0,(134)+"Press RETURN when ready":=13 : N0ݤ@:X%,Y%,A%:X%=&70:Y%=0:A%=0:=(&FFDA)&FF 1ݤ2:A%=&13:X%?0=0:&FFF1:=(X%?2)+"."+(X%?1)  ݤ3(i%):X%,Y%,A%:@-i%=-1 +A%=143:X%=18:Y%=i%:&FFF4:@-i%=0=-1 )6(r$):(129)(157)(131)r$(156): bR:X%,Y%,A%:A%=&93:X%=&40:Y%=&5A:&FFF4:A%=&92:g0%=(&FFF4&FF0000)&10000:Y%-g0%s%=0s%=-1 4 H0ݤ0(s$):m$,i%:tDH:m$,i%:m$=s$i%=0:=i% K TAPE,1,TAPE3,2,"ROM ",3,DISC,4,"NET ",5,TELETEXT,6,IEEE,7,ADFS,8,"",0 60:e%=@:(e%>=0e%<=3)(e%>=6e%<8)J$="":e$="": @DJK 6&_%y%2(-1,"source",130,132):11 @ D^K J"_%2(-1,"source",130,132):11 T @(G$) ^a%5(G$,U$,K$,Z$) h |$5(u$,v$,a$,b$):u$="NET "dBK a0%@("fs "+v$) a$<>""@("sdisc "+a$) b$,"$")=0@("dir") b$<>""@("dir "+b$) :0:J$<>a$@("dir :"+a$) @("dir "+b$): 3:0(H$)<>@THL $_%y%2(0,"dest. ",129,135):11 T\L !_%2(0,"dest. ",129,135):11  @(H$) B:a%5(H$,V$,O$,X$) 0 B:w% =b%=-1:@("dir :"+O$):b%=0:k%=-1:@("dir "+X$):k%=0:w%=0: &2(m0%,w$,n0%,o0%):y%=m0%:*fx15,1 Xn0%,157,o0%:"Insert "+w$+" disc and press SPACE";:=32:13:u0%=038:32::13: ݤ4(Pg$,p0%)::Pg$;:*fx15,1 ""S$:S$=""p0%X (S$)=" "dhM ʏ28,0,24,39,7,14,13:(S$,2,1))=-1"Enter * command"'"Press RETURN only to exit":"*"S$:@(S$):S$=-1:S$=" ":TFN@(S$)::C:\F *fx -1 (S$)<>" ":=S$  |X  T\B $NG:132,157,131:"Copying"(135)M$(131)"as"(135)L$" "(156)':G="S"1 BD7(M$):Z%256=0129,157,131:"Source file not found "(156)': VDq0%=X%!2:r0%=X%!6:m%=X%!10:s0%=X%!14:G$<>"ADFS"G$<>"NET "t\N ~s0%1|\ 16(L$+" not copied No read access "):L$<7   Y:z%3  z%=0:v% W(L$,q0%,r0%): Y:m%>h%TrO U(M$):3:H:v% V(L$,m%): 2z%=-1:c%=(M$):3:H:v% P{d%=(L$):I%=1m%h%:1:E(c%,h%):3:F(d%,h%)::1:E(c%,m%-h%*(I%-1)):3:F(d%,m%-h%*(I%-1)):#d%:d%=0:1:#c%:c%=0: H:7(L$):v%=0:Z%256 X%!148 ">f%=B("file locked - overwrite ? (Y/N)")::f%="N"v%=-1: 64(L$,0,0,0,X%!14&F7,4): J ݤ6(Pg$) T;Pg$;:K%=&DF:DbQ::J%,`$:K%=J%J%=-1:J%<>K%dBP *`$:J%=81:26,12,10,10,10,10,10:DBD !J%=79:" Filing system ? "`$ =`$ Y'(134)"Filing systems":Lb::J%,`$:J%=-1:(134)"(ESC) - Back to start":DTP &(134)" "(J%)" - "`$:0:LT UC:129,157,131:"Press SPACE to continue "(156);:=32:12,28,1,24,39,7,15: b6 65,ADFS,68,DISC,78,"NET ",79,Other.,81,QUIT,-1,X vK M134:"Copying mode"+(135)+":";:G=&5F:G="S"c$=" Single file mode ": $G="M"c$="Multiple file mode": $G="L"c$="List of files mode": '(134)"Copying modes":134:" S - Single file mode":134:" M - Multiple file mode with Y/N":134:" prompt for each file":134:" L - List mode to copy all files":134:" in a list":t@Q ~L::M$=4((134)+"Source filename"+(135)+":",-1):M$<>"":L$=4((134)+"Destination filename"+(135)+":",0):L$=""L$=M$ >L$=5(L$):G:0: plI::h$=4((134)+"Source list spec."+(135)+":",-1):h$<>"":h$,".")" Files must be in the CSD.":0 d0%=0:1::C:0 7(M$):Z%256<>10 1(M$,h$)0  D0 L$=M$:L$=5(L$):G:1:0 $ ݤC:x$=M$ 8:X%!9=d0%:8(0,B%,1,8):I%=?B%1-1:B%?I%<&21:B%?I%=13 VQ:I%=?B%+1:B%?I%=13:M$=$(B%+1):d0%=X%!9:H$="DISC"a%K$=O$x$=M$X%!5=0TxS ~ =(X%!5=0) <ݤ1(I$,T$):I%:I$<>""T$="*"=1(I$,T$,2))=(T$="")  T$=""=0 4(I$&5F)=(T$&5F)T$="#"=1(I$,2),T$,2)) T$<>"*"=0  =1(I$,T$,2))1(I$,2),T$) ݤD:e0%=0 `A%=(4((134)+"Copy"+(135)+M$+(134)+"(Y/N)"+(135)+":",0))&5F:A%="Y"A%="N":=A%="N" M:e0%=0:I: PN:e0%=-1:I:  |X  \\ PX:22,7,14::I%=17:::" (Press SHIFT to continue)":tBT d\T:I$:I$:0 *"To return to the main menu,ESCAPE." &"To quit from there, press'Q'." "" *"In single file mode, the source and" )"dest. files may be anywhere in the" ,"filing system tree structure; you may" -"quote a fullpathnamefor both. If you" ","just pressRETURNfor the destination" ,*"name, the source name will be used," 6)"truncated to 7 chars if DFS is the" @"destination." J"" T*"In the multiple modes, a number of" ^,"files are copied from/to yourcurrent" h)"drive and directory in the source/" r,"destination filing systems. A list of" |-"files can be specified using the * and" -"# wildcard characters - # will match a" *"single arbitrary character , * will" *"match multiple arbitrary characters" ."i.e. if BA* is the list spec. all files" ,"in the source directory starting with" ,"BA will be copied. The name of" ,"the source file found is used for the" ." (Press SHIFT to continue)" /" destination filename, truncated if " "DFS is the destination." "" ."Star commands may be entered at any non" ."single key prompt, (not the main menu)," '"by typing a leadingspace. e.g." ""Source filename: DIR FRED" #"to selectFREDas yourCSD." &,"Multiple star commands may be entered" 0-"by typing space RETURN - star commands" :+"can be entered at the * prompt until" D "RETURN is typed by itself" Nݤ5(I$):H$="DISC"=I$ bI$=":"=I$,3)+5(I$,4)) l&(I$,2))=".":=I$,2)+5(I$,3)) v =I$,7) 7ݤA(Y$):`%=1Y$:Y$,`%,1)=" "Y$=Y$,`%-1):`%=Y$  :=Y$ (Q:"Press SPACE to return to menu" <>&20t|V  =V%::  FILE GETLHA  maintain%= P FS-Retriever Ver. 1.06 LH/af - Copyright Acorn Computers plc 1985 and 1987 initialize  initmc oscli("OPT 1") (B : :fs(dfile%):#0:fs(net%):#0: =17 :" at ";: 2S$title%="File Server Archiver Retrieval Utility":12'''$title%'ĩ$title%,"*")' <: Ftab%=6:tab1%=2 P.'tab1%)"C"tab%)"Catalogue Archive disc" ZFtab1%)"B"tab%)"Retrieve both files and"'" sub-directories" d*tab1%)"F"tab%)"Retrieve files only" ntab1%)"Q"tab%)"Quit" x%'"Your choice"'" :";:t$=: t$; $t$="*" ""t$:oscli(t$):0:' +command%=("CBFQ*cbfq",t$))5:command% * command%=4 ''" ** Finished **"': $ command%=2 command%=3 df@ ffs(net%):X%=&70:A%=0:Y%=0:R%= osargs% &FF: R%<>net% '"Net filing system must be present": C command%=2 ''"Retrieving both files and"'"sub-directories" - command%=3 ''"Retrieving files only" H X%=command("Pathname of directory to retrieve from"):$opath%=$var% G X%=command("Pathname of directory to retrieve to"):$topath%=$var% Z fs(net%): $topath%<>"": examine(topath%)<>directory:" directory not found":dC@ 4 :"Object specifier"'" :"$oname%: $oname%<10  $oname%=0:$oname%="*" : w:''"Select filing system used for archive (A=Adfs, D=Disc)"'" :";:dfile%=:(dfile%);:f%="ADad",dfile%): f% 8 f% 2 dfile%=adfs%:"dfs" dfile%=disc%:"isc"  B $prompt%="ADFS drive": dfile%=disc% $prompt%=$prompt%,2)  command($prompt%) 6 $ok%="0123": dfile%=adfs% $ok%="0145aAbBeEfF" " $ok%,$var%) ,< "AaBbEeFf",$var%) T%=($var% &5F)-&11:$var%=(T%) 6Nfs(dfile%): dfile%=disc% oscli("Dr. :"+$var%) oscli("Dir :"+$var%) @YX%=&70:A%=0:Y%=0:R%= osargs% &FF: R%<>dfile% "Filing system must be present": J&command("Name of archive file") T#h%=open($var%,&40): h% DJA ^3':$sfile%=$var%:r%=examine(var%):mlen%=cb%!&A hstart%=0:Retrieve r DF@: END |: Retrieve  X%   command%<>1: fs(dfile%) @ X%=0::path%?X%=#h%:X%=X%+1:(path%?(X%-1)=&0D) X%>&100 5 X%>&100:"File fault, retreive aborted":CAUSE $ Y%=X%:flag%=:mlen%=mlen%-(X%)  X%=tail(path%)  s%=0  & name%?s%=path%?(X%+s%):s%=s%+1 \ s%=Y%-X%-1:path%?X%=&0D:name%?s%=&0D: $name%,".")=1 $name%=$name%,( $name%-1))  stype%=#h%:seq%=#h% ) stype%=1 stype%=2 not$:DXB &< X%=2 18:cb1%?X%=#h%::slen%=cb1%!&A:mlen%=mlen%-19 0O start% seq%<>1 "This is not the first disc in the sequence":#h%: : name(name%,stype%,cb1%) Dl stype%=directory sortdirectory(path%,name%,command%,cb1%) copydata(path%,name%,slen%,command%) N mlen%=0 Xfs(dfile%):#h% b l: v.sortdirectory(path%,name%,command%,cb1%) ! command%=1 command%=3  fs(net%) > $path%<>"":$buffer%=$path%+"."+$name%::$buffer%=$name% )tail%=eq(buffer%,opath%): tail%=0:  $tail%="":  $opath%<>0:tail%=tail%+1 " $topath%:$tail%="."+$tail%  $buffer3%=$topath%+$tail%  $buffer3%::  r%=examine(buffer3%) = r%=0 '"Creating "+$buffer3%':oscli("CDIR "+$buffer3%)  r%=0 oscli("Access "+$buffer3%):cb2%!0=&13004000:cb2%!4=&05000000:cb2%?&8=cb1%?&F:cb2%?9=cb1%?&10:$(cb2%+&A)=$buffer3%:X%=cb2%:Y%=X% &100:A%=&14: osword%:oscli("Access "+$buffer3%+" L")  r%=file :::  '$buffer3%;  $path%=tails(buffer3%) O command("exists as a file - Please rename the file as "+$path%) d}B  oscli("ACC. "+$buffer3%+" wr"):oscli("REN. "+$buffer3%+" "+$path%+$var%):?cb%=var%:cb%?1=var% &100:X%=cb%:Y%=X% &100:A%=4: osfile%   * 4: >ݤexamine(n%) H !cb%=n% RX%=cb% 256:Y%=cb% 256 \A%=5 fR%=(osfile%) &FF k acc%=cb%?&E p=R% z: ݤopen($n%,a%) X%=n% 256:Y%=n% 256  A%=a% # call(osfind%) error(0):=  =?tempa : close(h%) +Y%=h%:A%=0: call(osfind%) error(0)  : name(name%,stype%,block%) > $path%="" $buffer%=$name% $buffer%=$path%+"."+$name% H stype%=directory "Dir. "$buffer%" "; "File "$buffer%" "; "size(block%,block%?&E,stype%)  : $size(A%,E%,stype%) .@%=&A0A:pos%=80 8$attstr%=access(E%,stype%) B$dat%=dates(A%) LQ$load1%=display(A%!2,8):$exec1%=display(A%!6,8):$length1%=display(A%!&A,8) V] pos%)+$load1%;pos%+10)+$exec1%;pos%+20)+$length1%;pos%+30)+$attstr%;pos%+40)+$dat% ` j: t initmc ~ pass%=0 2 2  P%=space% [ OPT pass% '.trap sta tempa:stx tempx:sty tempy /lda brkvec:sta copy:lda brkvec+1:sta copy+1 $tsx:stx sp:lda #0:sta error_flag #lda# (brkcode &FF):sta brkvec %lda# (brkcode /&100):sta brkvec+1 .lda tempa:ldx tempx:ldy tempy:jsr indirect sta tempa:\ return A <.restore lda copy:sta brkvec:lda copy+1:sta brkvec+1:rts \ -.brkcode ldy#0:lda (&FD),Y:sta error_flag ldx sp:txs:iny  8.loop lda (&FD),Y:beq exit:sta errmsg,Y:iny:bne loop *.exit lda #13:sta errmsg,Y:jmp restore .indirect jmp (go) (] 2 < F: Pinitialize Zdosfind%=&FFCE:osgbpb%=&FFD1:osargs%=&FFDA:osfile%=&FFDD:osword%=&FFF1:osbyte%=&FFF4:oscli%=&FFF7 \ cb% 30,cb1% 30,cb2% &130,name% 50,name1% 50,errmsg (30),path%&100,topath%&100,space% &100,var% &100,n% &100,buffer% &200,buffer2% &100,buffer3% &100 ` title% &40,opath% &80,oname% &10,ok% &20,sfile% &30,prompt% &80,attstr% &100,load1% &20,exec1% &20,length1% &20,dat% &20,string% &100 dfile=1:directory=2 n @%=3:15 xbrkvec=&202:oldbrk=!brkvec sp=&70:copy=&71 Gtempa=copy+2:tempx=tempa+1:tempy=tempx+1:go=tempy+1:error_flag=go+2 Kadfs%=8:disc%=4:net%=5:seq%=1:seq1%=0:size_left%=0:to_write%=0:fsize%=0 / ZZ% -1:size%=-ZZ%-&1300: buffer1% size% fs(net%):dfile%=0 ¬$="This is not an archive file"  : oscli($buffer2%) X%=buffer2%:Y%=X% &100  call(oscli%) error(0) " ,: 6ݤcall(addr) @'?go=addr:go?1=(addr &FF00) &100 J trap T=?error_flag<>0 ^error(trap%) h& ?error_flag=trap% $(errmsg+1) r |: ݤcommand($string%) $var%="":'$string%'" :";  ""$var% 3 $var%,1)=" " $var%=$var%,$var%-1): tdF ) $var%=&20 $var%=$var%,2): tnF ( $var%="*" oscli($var%): tPF =($var%<>0) : +fs(f%):A%=&8F:X%=&12:Y%=f%:osbyte%: : *copydata(path%,name%,slen%,command%)  T%,tail%,match%:match%= &> $path%<>"":$buffer%=$path%+"."+$name%::$buffer%=$name% 0 command%=1 DNG 5 fs(net%) :? tail%=eq(buffer%,opath%): tail%:match%=eq(name%,oname%) < match% :DNG =' $opath%=0:T%=tail%::T%=tail%+1 >. command%=3 $T%<>$name%:match%=:DNG E? $topath%<>0:$buffer3%=$topath%+"."+$T%::$buffer3%=$T% I'"Copying "$buffer%," as "$buffer3% N bV command%=1 match%=0 ftype%=0:copyit%=0 copyit%=1:ftype%=examine(buffer3%) vI ftype%=0 ftype%=file:copynothing(buffer3%,copyit%,command%):1: ' ftype%=directory renamesave:0  : ,copynothing(buffer3%,copyit%,command%)  copyit%=0 to%=0: dZG  ftype%=0:dFG D (acc% &88) ( maintain%):" Locked":copyit%=0:to%=0:dZG 5 (acc% &88):oscli("ACCESS "+$buffer3%+" WR")  to%=open($buffer3%,&80) 2 to% "Unable to copy "+$buffer3%:copyit%=0  G MLEN AND SLEN CHANGE BY AMOUNT SO ALL CONDITIONALS ARE CONSTANT ߐ mlen%<>slen% : size%slen% : size%: H4getput(amount%,dfshandle%,adfshandle%,copyit%) R command%<>1:fs(dfile%) \7 copyit% :#dfshandle%=#dfshandle%+amount%:tXH f8?cb%=dfshandle%:cb%!1=buffer1%:cb%!5=amount%:cb%!9=0 p&X%=cb%:Y%=X% &100:A%=4: osgbpb% z fs(net%) 9?cb%=adfshandle%:cb%!1=buffer1%:cb%!5=amount%:cb%!9=0 &X%=cb%:Y%=X% &100:A%=2: osgbpb% +mlen%=mlen%-amount%:slen%=slen%-amount%  : split_it sperror%:sperror%= fs(dfile%)  stype1%=#h%:seq1%=#h%:#h% ? $path% $buffer1%=$path%+"."+$name% $buffer1%=$name%  ]:"Please insert next disc in sequence"'"and press RETURN":resp$=:resp$=&0D:start%=-1  M $prompt%="New DFS drive": dfile%=adfs% $prompt%="New ADFS drive"  command($prompt%) 4$ok%="0123": dfile%=adfs% $ok%="0145AaBbEeFf" $$ok%,$var%) .< "AaBbEeFf",$var%) T%=($var% &5F)-&11:$var%=(T%) 8Nfs(dfile%): dfile%=disc% oscli("Dr. :"+$var%) oscli("Dir :"+$var%) B:h%=open($sfile%,&40): h% $buffer%=$sfile% DtI L3r%=examine(buffer%):mlen%=cb%!&A:tempml%=mlen% V=X%=0::name1%?X%=#h%:X%=X%+1:name1%?(X%-1)=&0D X%>254 Z X%>254:not$:DtI [9mlen%=mlen%-X%: $name1%=$buffer1% slen%=0 DtI `3stype%=#h%: stype%=stype1% slen%=0 DtI j7seq%=#h%:mlen%=mlen%-2: seq%=seq1%+1 sperror%= tD sperror% '"That is not the next disc in the sequence"':#h% ~ sperror%= Nslen%=0 #h%=0:mlen%=tempml% X%=2 18:cb1%?X%=#h%::mlen%=mlen%-17  : renamesave $path%=tails(buffer3%) P'$buffer3%;:command("exists as a directory - save this file as "+$path%) $buffer3%=$path%+$var%  # (ݤaccess(atts1%,x%) 2 sgg$:sgg$="" < x%=directory sgg$="D" F atts1% 8 sgg$=sgg$+"L" P atts1% 2 sgg$=sgg$+"W" Z atts1% 1 sgg$=sgg$+"R" dsgg$=sgg$+"/" n" atts1% &20 sgg$=sgg$+"W" x" atts1% &10 sgg$=sgg$+"R" =sgg$ : ݤdates(A%) L=(1000+(A%?15)),2)+":"+(1000+(A%?16) 16),2)+":"+(((A%?16) 16)+81) : ݤeq(A%,B%)  $B%="":=A%  ? (?A% &5F)=(?B% &5F) ?B%="#":A%=A%+1:B%=B%+1:d\J  ?B%="*": :1:= " A%=A%+1: ?A%="." ?A%=13 " B%=B%+1: ?B%="." ?B%=13  ?A%=13 ?B%=13  ?B%<>13:= ?A%=13 ?A%=".":=A%:=0  : ^: hݤdisplay(number%,width%) r hi%,lo% |@hi%=number% &FFFF0000:lo%=number% &FFFF:hi%=hi% &10000 <=~(hi%+&1000000),width%-4)+~(lo%+&10000),4),width%)  tail(N%)  L%:L%=$N%  L%=L%-1  N%?L%=&2E L%=0  =L%   tails(N%)  L%,T%,path$ 6 L%=tail(N%):T%=N%?L%:N%?L%=13:path$=$N%:N%?L%=T%  path$:path$=path$+"." & =path$ % ADFS/NET (&vv) Logical copier. 6 Version 1.01 Copyright Acorn Computers plc 1986  VARIABLES ~ :$temp%="File server logical copier":''$temp%'ĩ$temp%,"*")''"Copies files between the file server "'"and an ADFS disc" (% : =17 :" at ";: 2U ''"Select source filing system"'"(A=adfs, N=net) :";::resp$=: "NnAa",resp$) "":$root%="."+$root% @ $sfile%="ADFS" $root%=":"+(soudrive%)+"."+$dlr%+$root%  select($dfile%) ; $dfile%="ADFS" destdrive%=seldrive("Destination")  % '"Destination directory "; \ $dfile%="ADFS" " : "+$dlr%; " - Return for"'"Currently Selected Directory"  "" $dest%  stars($dest%) A $dfile%="ADFS" $dest%=":"+(destdrive%)+"."+$dlr%+$dest% M $dest%="" :X%=info(cb%,$dest%): X%<>2 '$dest%+" not found": t~@ . $dfile%="NET":priv%=priv(temp%,$dest%) ; $dfile%="NET": priv%:"Insufficient access":t~@  ':csd%=readcsd f select($sfile%):soudrive%=: $root%="" $sfile%="NET" DIR($root%) oscli("DIR "+$root%)  $path%=$root% "m "Overwrite locked files (Y/N)"'" :";::resp$=:"YyNn",resp$):over%="Nn",resp$): over% "N" "Y" , HATE 6 15:*OPT 1 0 @ offset%=OFFSET J copy(0,offset%) T '"Copy complete."' ^ h: rcopy(ffset%,offset%) | ffset%  :SOURCEFILE 4 readname(files%,ffset%) empty_store:: R offset%= $files%=UCASE($files%): $files%=$offname% offset%= dLA  R%=info(cb%,$files%) L load%=cb%!2:exec%=cb%!6:length%=cb%!10:atts%=cb%?14:lock%=(cb%?14 8) I readable(atts%,R%) '"Insufficient access on "+$files%': dLA # R%=1 FIDS($files%):dLA @ R%=2 recursedown($files%) copy(0,):RECURSEBACK  ffset%=ffset%+1  0  : ݤrecursedown($name%)  empty_store:nomatch%= A $path%="" $newpath%=$name% $newpath%=$path%+"."+$name% A $dest%="" $newdest%=$name% $newdest%=$dest%+"."+$name% 6 $newpath%=UCASE($newpath%):$name%=UCASE($name%) ! check%=0 9 &l hate$(check%)=$newpath% hate$(check%)=$name% "Not copying "+hate$(check%)':check%=9:nomatch%= 0 : nomatch% tJB ? DESTFILE b R%=info(cb%,$newdest%) l R%=0 ''"*********************************":'"Creating "+$newdest%:'"*********************************"'':oscli("CDIR "+$newdest%) v: R%=1 '"Can't create "+$newdest%:nomatch%=:tJB x SOURCEFILE z; $sfile%="NET" DIR($name%) oscli("DIR "+$name%) | DESTFILE 6 level%=level%+1:$path%=$newpath%:$dest%=$newdest%  =nomatch% : RECURSEBACK  empty_store:SOURCEFILE  $path%=shorten($path%) O $sfile%="ADFS" oscli("dir ^") DIR("."): $path%<>"" DIR($path%)  $dest%=shorten($dest%)  level%=level%-1  : SOURCEFILE / soudrive% select($sfile%):soudrive%=   : DESTFILE  / soudrive% select($dfile%):soudrive%= * 4: >ݤshorten($temp%) HE ($temp%,1)<>".") $temp% $temp%=$temp%,$temp%-1): DHC J* $temp% $temp%=$temp%,$temp%-1) \ =$temp% f: pݤstars($temp%) z $temp%="" = . $temp%,"*")=1 oscli($temp%):= = : VARIABLES Vosbyte%=&FFF4:osfile%=&FFDD:osgbpb%=&FFD1:osword%=&FFF1:oscli%=&FFF7:osargs%=&FFDA  sfile% 10,dfile% 10,dlr% 3,root% &100,dest% &100,path% &100,offname% 15,name% 100,newpath% &100,newdest% &100,dir% &100,cli% &100,files% &100,cb% 30,cbt% 30,cbi% 30,temp% &100,soudrive% 3 >soudrive%=:level%=0:errflag%=0:slev%=-1:dhan%=0:$dlr%="$" Q hate$(10),store$(10),sposs%(10),slnth%(10),sexec%(10),sload%(10),satts%(10) ^ vartop% -1:buffsiz%=-vartop%-&1000: buffer% buffsiz%:stleft%=buffsiz%:buffpos%=buffer% Y DIM vartop% -1:buffsiz%=&100:DIM buffer% buffsiz%:stleft%=buffsiz%:buffpos%=buffer% Cselect("NET"): csfile=5 "Net filing system not present": Eselect("ADFS"): csfile=8 "ADFS filing system not present": PX%=cb%:Y%=X% &100:A%=&70: osword%: (cb%?1 &20) winnie%= winnie%=  :  HATE * ''"Sub-directories NOT to be copied" $ Z%=0 9 . " :"hate$(Z%) 8 stars(hate$(Z%)) TnD B, (hate$(Z%)="" hate$(Z%)=".") Z%=9 L V `: jݤUCASE($cli%) t chr% ~ CC%=0 ($cli%)-1  chr%=cli%?CC% ? (chr%<"A")(chr%>"z")((chr%>"Z")(chr%<"a")) tfD  cli%?CC%=(chr% &5F)   =$cli% :  ݤOFFSET 8 oscli("."):''"First object to copy"'" :"$offname% 9 offset%=: $offname%="" $offname%="." offset%= , offset% $offname%=UCASE($offname%)  =offset% : DIR($dir%)  Z $dir%="." WIO(csd%) oldhan%=dhan%:dhan%=open($dir%,&40):WIO(dhan%):#oldhan%  : (WIO(io%) 2 iobuff%-1 < select("NET") F9 iobuff%?0=6:X%=iobuff%:Y%=X% &100:A%=&13: osword% PG iobuff%?0=7:iobuff%?2=io%:X%=iobuff%:Y%=X% &100:A%=&13: osword% Z6 soudrive% select($sfile%) select($dfile%) d n: x ݤreadcsd  iobuff%-1  select("NET") 9 iobuff%?0=6:X%=iobuff%:Y%=X% &100:A%=&13: osword% 6 soudrive% select($sfile%) select($dfile%) =iobuff%?2 : FIDS($name%)  slev%=9 empty_store / length%>stleft% empty_store:BIGONE:  insert_file:  :  BIGONE : $dest%="" $temp%=$name% $temp%=$dest%+"."+$name%  dir_lock($temp%)=: _ $path% "Copying "+$path%+"."+$name%+" as "+$temp% "Copying "+$name%+" as "+$temp%  ':chunks%=0:otype%=0 " ,w length%3 A%=4: osfile% r |: &gbpb($temp%,TYPE%,LONG%,SETOFF%) ( TYPE%>2 SOURCEFILE DESTFILE I otype% TYPE%=3 HB%=open($temp%,&40) HA%=open($temp%,&80) & TYPE%>2 ?cbt%=HB% ?cbt%=HA%  cbt%!1=buffer%  cbt%!5=LONG%  cbt%!9=SETOFF% 5 X%=cbt% &100:Y%=cbt% &100:A%=TYPE%: osgbpb%  : insert_file  SOURCEFILE  slev%=slev%+1:store$(slev%)=$name%:sload%(slev%)=load%:sexec%(slev%)=exec%:slnth%(slev%)=length%:satts%(slev%)=atts%:sposs%(slev%)=buffpos% DC $path% "Reading "+$path%+"."+$name% "Reading "+$name% N- oscli( "LOAD "+$name%+" "+~(buffpos%)) X6 buffpos%=buffpos%+length%:stleft%=stleft%-length% b l: vempty_store  slev%=-1 TjH  DESTFILE:'  L $dest%="" $files%=store$(slev%) $files%=$dest%+"."+store$(slev%)  dir_lock($files%)=:TLH  "Writing "+$files% v oscli( "SAVE "+$files%+" "+~(sposs%(slev%))+"+"+~(slnth%(slev%))+" "+~(sexec%(slev%))+" "+~(sload%(slev%))) & satts%(slev%) &3B=3 TLH . ?cbt%=files% &100:cbt%?1=files% &100  cbt%!14=satts%(slev%) ) X%=cbt%:Y%=X% &100:A%=4: osfile%  C buffpos%=buffpos%-slnth%(slev%):stleft%=stleft%+slnth%(slev%)  slev%=slev%-1   slev%=-1:' * 4: >oscli($cli%) H X%,Y% R#X%=cli%:Y%=cli% &100: oscli% \ f: pݤopen($temp%,how%) z A%,X%,Y%  jcb%-1 /$jcb%=$temp%:X%=jcb%:Y%=jcb% &100:A%=how% =(&FFCE)&FF : select($cli%)  A%,X%,Y% ! $cli%="ADFS" Y%=8 Y%=5 A%=&8F:X%=&12: osbyte%: : ݤreadname(name%,offset%)  jcb%-1 ) jcb%!1=name%:jcb%!5=1:jcb%!9=offset% * X%=jcb%:Y%=jcb% &100:A%=8: osgbpb%  jcb%!5 TdI E I%=09:I%?name%=name%?(I%+1): name%?I%=" " name%?I%=13:I%=9  :name%?10=13 $=(jcb%!5=0) .: 8ݤinfo(cbi%,$temp%) = X%,Y%,A% L !cbi%=temp% V X%=cbi%:Y%=cbi% &100:A%=5 `=((osfile%) &FF) j: tݤseldrive($temp%) ~ ( '$temp%+" drive :";: "" $files% W $files%<>"" '"Drives are numbered ";: winnie% " 0,1,4 or 5" "0 or 1" winnie% ($files%="0" $files%="1" $files%="4" $files%="5") stars($files%) ($files%="0" $files%="1") stars($files%) X%=($files%)  ("Dir :"+X%) =X% : ݤcsfile (X%=&70:Y%=0:A%=0:X%=(osargs%) &FF =X% : ݤreadable(atts%,R%)  R%=2 =  $sfile%="NET" = " priv% (atts% &10) =  priv% (atts% 1) =  =   dir_lock($temp%) DESTFILE  R%=info(cbt%,$temp%)  R%=0:= > R%=2:$temp%'"Exists as a directory, unable to copy":=  lock%=(cbt%?&E) &8 6 R%=1: (lock%*over%) '"Not writing "+$temp%:= + lock%:oscli("access "+$temp%+" WR")  =  & priv(cb%,S$) 0 !cb%=&04003000:$(cb%+7)=S$ :% X%=cb%:Y%=X%256:A%=&14:osword% D =(cb%?&F="O") D NetManager Utility version 1.05 - (C) Acorn computers ltd 1988 > MODIFICATIONS 8/10/86 Copy between file servers on ADFS ; Copy aborted over locked files # Modifications August 1988 (6 Copy files or directories 24 Restore currect library <= Can now remove more than 6 users F5************************************************ P# Econet Utilities Z5************************************************ d n Contains five sections : x 1.Logical copy 2.Wiper  3.Tree print  4.Create user  5.Remove user  4***********************************************  2 (=17)(=254) dz@ :" at ";::   initialize initmc title  command%=menu  readcontext  spaces%=8 / command% DTA,tBE,tJG,T@J,t~J,TbA " ''" ** Finished **"'' , 66************************************************** @4 >>>>>>>>>>>>>>>> ICAL COPY <<<<<<<<<<<<<<<<<<< J6************************************************** T: ^* header("File server logical copy") h; '"Copies files or directories to a new directory."' r preserve_context |6 :restore_context: =17 dH@ : tPA - fsfrom%=fsno:fsto%=fsno:fsold%=fsno O renew_context:z%=command("Path name, source file/directory",path%+1,) > fsfrom%=(z% &FFFF):fromdir%=(z% &FF0000) &10000  type%=examine(path%+1,) 4 type%=file:"Copy file." "Copy directory." < fromdir% "Invalid directory/file name.":tPA $ fsfrom% fsfrom%=fsold%  length%=($(path%+1)) ] type%=directory: unpriv($(path%+1)) close(fromdir%):"Insufficient access":tPA 3 : =17 close(fromdir%):dH@ T renew_context:z%=command("Path name, destination directory",topath%+1,) : fsto%=(z% &FFFF):todir%=(z% &FF0000) &10000 ! tolength%=$(topath%+1) 0 fsto% fsto%=fsold%:swap_fs(fsto%) M todir% oscli("CDIR "+$(topath%+1)):todir%=open(topath%+1,&40)  todir% djA &` unpriv($(topath%+1)) close(fromdir%):close(todir%):"Insufficient access":djA 0 $init%=$(topath%+1) : *fx229,1 D :: :DlB N< swap_fs(fsfrom%): type%=directory:setcsd(fromdir%) X) type%=file:close(fromdir%):cfile bX type%=directory:copy:"Copied directory ";$(path%+1);" to ";$(topath%+1);" ."' lY swap_fs(fsto%):close(todir%):swap_fs(fsfrom%): fromdir%<>csd%:close(fromdir%) v( swap_fs(fsold%):restore_context  waitspace  *fx229  dH@ 6**************************************************  copy  swap_fs(fsto%) . $init%=$(path%+1) fsfrom%=fsto% Y swap_to(todir%): readname(0) error(0):swap_fs(fsfrom%):swap_to(fromdir%): + swap_fs(fsfrom%):swap_to(fromdir%)  index%,nodata%  index%=0   swap_fs(fsfrom%) ) readname(index%) error(0)   nodata%=cb%!5  nodata% T~C  # type%=examine(name%+1,) *D type%=file xfer type%=directory down:copy:up 4 index%=index%+1 >, (nodata%)(error=&C6)(error=&5C) H R6************************************************** \ xfer f copy data chunks p# acc%,nomore%,to,from,from1 z swap_fs(fsfrom%)  type%=examine(name%+1,)  acc%=cb1%!14:cb1%?14=3 ? write_info error(&C9): trap write-protected discs 7 from=open(name%+1,&40):from1=open(name%+1,&40) ' swap_fs(fsto%):swap_to(todir%) 5 to=open(name%+1,&80): to :complete%=:tHD p swap_fs(fsfrom%):swap_to(fromdir%): to=from close(from):from=from1:from1=0: close(from1):from1=0  from1=0   swap_fs(fsfrom%)  swap_to(fromdir%)  cb%!1=buffer% ( cb%!5=size% : data chunk size  ?cb%=from : handle ( X%=cb% 256:Y%=cb% 256:A%=4 & call(osgbpb%) error(0) $ nomore%=cb%!5 . swap_fs(fsto%) 8 swap_to(todir%) B6 cb%!5=size%-nomore%: no.ofbytes to transfer L cb%!1=buffer% V ?cb%=to:A%=2 `& call(osgbpb%) error(0) j+ (nomore%)(error=&C6)(error=&5C) t. cb1%!14=acc%: write_info error(0) ~ close(to)  swap_fs(fsfrom%)  swap_to(fromdir%) ) close(from): from1:close(from1) " write_info error(&C9)    cfile  pc%,type%  pc%=$(path%+1): pc%=pc%-1  pc%=0 ?(path%+pc%)="."  $(name%+1)=$(path%+1+pc%)  pc%:?(path%+pc%)=&0D 8 pc%:fromdir%=open((path%+1),&40)::fromdir%=csd%  ) swap_fs(fsfrom%):swap_to(fromdir%) $ type%=examine(name%+1,):xfer  ( 25************************************************* < write_info F" X%=cb1% 256:Y%=cb1% 256 P A%=1 Z =call(osfile%) d5************************************************* n5>>>>>>>>>>>>>>>>>> WIPER <<<<<<<<<<<<<<<<<<<<<<<< x5************************************************* : ! header("Directory Wiper") 7 "Wipes entire directory"'"and sub-directories"' 6 :restore_context: =17 dH@ : ttE * preserve_context:fsold%=fsno:z%=0 o close((z%&FF0000) &10000):renew_context:z%=command("Path name of directory for deletion",path%+1,) - length%=$(path%+1): length%=0 ttE , target_handle=(z% &FF0000) &10000 : target_handle "Invalid directory name."':ttE 4 fswipe%=z% &FFFF: fswipe% fswipe%=fsold% ; unpriv($(path%+1)) "Insufficient access":ttE  :dH@  *fx229,1 0 swap_fs(fswipe%):swap_to(target_handle)  q%=wipe  close(target_handle) " renew_context , q% delete(path%+1) 6- '"Directory ";$(path%+1);" deleted."' @! q% "Errors detected"' J swap_fs(fsold%) T restore_context ^ waitspace h *fx229 r dH@ |5*************************************************  wipe ! nodata%,complete%,index%,c% complete%=:index%=0   $(name%+1)="" + readname(index%) error(0)::= $ nodata%=cb%!5: nodata% THG  type%=examine(name%+1,) + type%=file delete(name%+1):THG $ down_a_dir:c%=wipe:up_a_dir 1 readname(index%) error(0):complete%= / c% delete(name%+1) index%=index%+1  c% complete%=  nodata% =complete% 5************************************************* &delete(t) 0 cb%!0=t : cb%!14=0 D X%=cb% 256:Y%=cb% 256 N( A%=4: call(osfile%) error(0) XD A%=6: call(osfile%) error(0):index%=index%+1:complete%= b l5************************************************* v5>>>>>>>>>>>>>>>>>>>> TREE <<<<<<<<<<<<<<<<<<<<<<< 5************************************************* :  header("Tree Printer") G "This program prints out"'"the tree structure of a directory"'' 6 :restore_context: =17 dH@ : t|G % preserve_context:fsold%=fsno K renew_context:z%=command("Path name of start directory",path%+1,)  length%=$(path%+1) 4 fstree%=z% &FFFF: fstree% fstree%=fsold%  swap_fs(fstree%)  length% t|G Q examine(path%+1,)<>directory $(path%+1);" is not a directory"':t|G  : dH@  *fx229,1  # swap_to(open(path%+1,&40)) ) print_on=getyn("Printer (Y/N): ")   * print_on 2 4/ "Tree Print of dir. <"+$(path%+1)+">"'' > z%=print($(path%+1)) H! readcontext:close(cb%?2) R restore_context \ print_on 12,3 f waitspace p *fx229 z dH@ 5************************************************* ݤprint(dir$)  nodata%,index%,store index%=0:size=0  & readname(index%) error(0)  nodata%=cb%!5  nodata% drH  store=store+size ] examine(name%+1,)=directory down_a_dir:store=store+print($(name%+1)):up_a_dir  index%=index%+1  nodata% : end of dir.  store=0 'spaces%-8)"Bytes in "dir$;: <25 29)~((store)+&10000000),7)' (+5)-(+5)4)~((store)+&10000000),7)'  =store 5************************************************* down_a_dir $ spaces%=spaces%+3 . path%?(length%+1)=&2E 8 length%=length%+1 B i%=0: L+ path%?(length%+i%+1)=name%?(i%+1) V i%=i%+1 ` name%?i%=&D j length%=length%+i%-1 t" switch(open(name%+1,&40)) ~ 5************************************************* up_a_dir  spaces%=spaces%-3  length%=length%-1  length%?(path%+1)=&2E  path%?(length%+1)=&0D " switch(open(path%+1,&40))  5************************************************* 5>>>>>>>>>>>>>>>> New User <<<<<<<<<<<<<<<<<<<<<<< 5************************************************* : C unpriv("$") '"Not a privileged user"':waitspace:dH@ ! header("Create New User")  : =17 dH@  *fx229 (@ "Name of new user":input(": ",path%+1):name$=$(path%+1) 2- name$,1)="*" oscli(name$): ThJ < *fx229,1 F0 oscli("NEWUSER "+name$): error T^J P dot%=name$,"."): dot%=0 $topath%="$."+name$,dot%+1):q%=open(topath%,&40): q% close(q%) oscli("CDIR "+$topath%) Z $topath%="$."+name$ dI q%=open(topath%,&40): q% close(q%) oscli("CDIR "+$topath%) n name$" is now a user."' x waitspace *fx229 dH@ 5************************************************* 5>>>>>>>>>>>>>>>> remove user <<<<<<<<<<<<<<<<<<<< 5************************************************* : C unpriv("$") '"Not a privileged user"':waitspace:dH@  header("Remove user")  : =17 dH@ *fx229 K "Name of user to be removed ":input(": ",path%+1):name$=$(path%+1)  name$="" dfJ , name$,1)="*" oscli(name$):dfJ  n$="":n1$=""  i%=1name$ ( n$=n$+((name$,i%,1)) &DF) "* n1$=n1$+((name$,i%,1)) &20) , i% 6 n$=n$+n1$ @ index%=0 J oscli("REMUSER "+name$) T error :dfJ ^ preserve_context h0 $(path%+1)="$."+name$:length%=$(path%+1) ro target_handle=open(path%+1,&40): target_handle "Removing files ...":fsold%=fsno:fswipe%=fsold%:dzE | restore_context  'name$ " removed" waitspace:dH@ 5************************************************* 5>>>>>>>>>>>>>> General procedures <<<<<<<<<<<<<<< 5************************************************* ݤreadname(index%) i%  cb%!1=name% $ cb%!5=1: read one file only  cb%!9=index% X%=cb% 256:Y%=cb% 256 A%=8 * q%=call(osgbpb%): read filenames  i%=1: . i%?name%=&20 i%=&B i%?name%=&D  i%=i%+1 & i%=12 0=q% :5************************************************* Dݤexamine(n%,print%) N $(n%)="" =0 X: !cb1%=n%: passed parameter giving string position b" X%=cb1% 256:Y%=cb1% 256 l A%=5 v q%=call(osfile%)  print% name  =?tempa 5************************************************* down  spaces%=spaces%+3 . path%?(length%+1)=&2E:length%=length%+1 topath%?(tolength%+1)=&2E  tolength%=tolength%+1 i%=0: + path%?(length%+i%+1)=name%?(i%+1) / topath%?(tolength%+i%+1)=name%?(i%+1)  i%=i%+1  (name%?i%=&0D)  length%=length%+i%-1  tolength%=tolength%+i%-1 ( swap_fs(fsto%) : change context  swap_to(todir%) * new=open(name%+1,&40) 43 new= oscli("CDIR "+$(name%+1)): TjM >' todir%<>dest% close(todir%) H swap_fs(fsfrom%) R swap_to(fromdir%) \ todir%=new f new=open(name%+1,&40) p- fromdir%<>source% close(fromdir%) z fromdir%=new  5************************************************* up  spaces%=spaces%-3  length%=length%-1  tolength%=tolength%-1 ' length%?(path%+1) <>&2E tlM  path%?(length%+1)=&0D topath%?(tolength%+1)=&0D  swap_fs(fsfrom%)  swap_to(source%)  new=open(path%+1,&40)  close(fromdir%)  swap_fs(fsto%)  fromdir%=new  swap_to(dest%) $ new=open(topath%+1,&40) . close(todir%) 8 todir%=new B swap_fs(fsfrom%) L swap_to(fromdir%) V `5************************************************* jݤopen(n%,a%) t X%=n% 256:Y%=n% 256 ~ A%=a% & call(osfind%) error(0):=  =?tempa 5************************************************* readcontext 9 reads urd,csd,lib into bytes 1,2,3 of control block  X%=cb% 256:Y%=cb% 256  cb%?0=6  A%=&13  osword%  5************************************************* setcsd(handle%)  X%=cb% 256:Y%=cb% 256   cb%?0=7  cb%?2=handle%  A%=&13 ( osword% 2 <5************************************************* Fclose(h%) P. Y%=h%:A%=0: call(osfind%) error(0) Z d5************************************************* nswitch(h%) x readcontext  close(cb%?2)  setcsd(h%)  5*************************************************  unpriv(dir$) + !buffer%=&04003000:$(buffer%+7)=dir$ ( X%=buffer% 256:Y%=buffer% 256  A%=&14: osword% =(buffer%?15="P") 5*************************************************  name  ?tempa=directory spaces%-5)"Dir. "$(name%+1) spaces%)$(name%+1);: <25 30)~((size)+&1000000),6) (+6)-(+6)5)~((size)+&1000000),6)  5*************************************************  ݤsize % A%=5:X%=cb% 256:Y%=cb% 256 " !cb%=(name%+1) , q%=call(osfile%) 6 @%=&A0A @ =cb%!10 J5************************************************* Tswap_to(dir%) ^ readcontext h setcsd(dir%) r |5*************************************************  renew_context q%=csd%:dLP restore_context  swap_fs(fs%) ! $(topath%+1)="$."+library$  q%=open(topath%+1,&40) 2 q% topath%?2=13:q%=open(topath%+1,&40) G X%=cb% &FF:Y%=cb% /&100:cb%?0=7:cb%?1=urd%:cb%?2=csd%:cb%?3=q%  A%=&13: osword%  5************************************************* preserve_context  read currelt lib title 4 cb%!1=buffer%:cb%!5=30: upt to 30 bytes read  ?cb%=0: assumed dont care $ X%=cb% 256:Y%=cb% 256:A%=7 &$ call(osgbpb%) error(0): 04 buffer%?(2+buffer%?1)=13:library$=$(buffer%+2) : readcontext DU urd%=cb%?1:csd%=cb%?2: ((cb%?3=urd%)(cb%?3=csd%)) close(cb%?3):cb%?3=urd% N0 cb%?0=7:X%=cb%:Y%=cb% 256:A%=&13:&FFF1 X source%=csd%:dest%=csd% b fs%=fsno l v5*************************************************  initmc ' code to redirect the break vector pass%=0 2 2  P%=space% [ OPT pass% '.trap sta tempa:stx tempx:sty tempy 2 lda brkvec:sta copy:lda brkvec +1:sta copy +1 $ tsx:stx sp:lda#0:sta error_flag % lda# (brkcode &FF): sta brkvec ( lda#(brkcode / &100): sta brkvec +1 / lda tempa:ldx tempx:ldy tempy:jsr indirect  sta tempa:\ return A >.restore lda copy:sta brkvec:lda copy +1:sta brkvec +1:rts \  -.brkcode ldy#0:lda (&FD),Y:sta error_flag ldx sp:txs:iny  9.loop lda (&FD),Y:beq exit: sta errmsg,Y:iny:bne loop **.exit lda#13: sta errmsg,Y:jmp restore 4.indirect jmp (go) >] H R \5************************************************* finitialize p: zosfind%=&FFCE osgbpb%=&FFD1 osfile%=&FFDD osword%=&FFF1 osbyte%=&FFF4 oscli% =&FFF7 : +file=1:directory=2: osfile type bytes  @%=3:15 brkvec=&202:oldbrk=!brkvec error_flag=&7F  sp=&80 copy=&82 : also &83 in use 7tempa=copy+2:tempx=tempa+1:tempy=tempx+1:go=tempy+1 size%=--&C00  cb% 30,cb1% 30  name% (50), errmsg (30) $ path% (256) . topath% (256) 8 space% (100) B1 buffer% (size%) : osgbpb data chunk size L init% (50) V: `A%=&8F:X%=&12:Y%=5:osbyte% j t5************************************************* ~ ݤfsno  A%=&13  cb%!0=0  X%=cb% 256  Y%=cb% 256  osword% =(cb%!1) &FFFF 5************************************************* oscli(s$)  $(buffer%)=s$  X%=buffer% 256  Y%=buffer% 256 " call(oscli%) error(0)   5*************************************************  menu  T$,result% ( title 2 4)"C to copy a directory"'4)"W to wipe a directory"'4)"T to print a directory tree"'4)"N to create a new user"'4)"R to remove a user"'4)"Q to quit" < F# '"Your choice: ";:T$=: T$; P) "*"=T$ "" T$:oscli(T$): DFT Z result%="CWTNRQ",T$) d result%<>0 n =result% x title  %'4)"Econet Network Management"'  waitspace  *fx 15  T$ %'"Press SPACE to return to menu" T$=: T$=" "   getyn(prompt$)  *fx15  T$  prompt$;:""T$  T$=T$,1)  "Yy",T$) =  "Nn",T$) = " dzT ,ݤcall(addr) 6&?go=addr:go?1=(addr &FF00) 256 @ trap J=?error_flag<>0 Terror(trap%) ^& ?error_flag=trap% $(errmsg+1) h r ݤerror | ?error_flag=0 = " ?error_flag>&A8 =?error_flag 4?cb%=10:X%=cb%:Y%=cb% 256:A%=&13:&FFF1:=cb%?1  swap_fs(fsno%)  A%=&13:cb%?0=1:cb%!1=fsno% " X%=cb%:Y%=cb% 256: osword%  5*************************************************  input(string$,var%) % strip leading & trailing spaces string$;: "" A$ & A$,1)=" " A$=A$,A$-1):djU  A$=32 A$=A$,2):dtU  $var%=A$  5************************************************* " command(string$,var%,flag%) &# temp%,handle%,temp$,net%,lfs% 0'string$'": ";: "" A$ :& A$,1)=" " A$=A$,A$-1):TzV D A$=32 A$=A$,2):DDV N$var%=A$:temp%=0 X) $var%,1)="*" oscli($var%):TpV b $var%,1)<>"#" tTV ltemp$=$var%,2,$var%,":")) v1net%=0:sep%=temp$,"."): sep% net%= temp$ 0:FS$=(FSNET%)+"."+FS$  FS$=9-FS$," ")+FS$ 1 PS$=(PS%): PSNET%<>0:PS$=(PSNET%)+"."+PS$  PS$=9-PS$," ")+PS$ "' 3,1);134;"Station number "STN$ ,& 3,2);134;"File Server "FS$ 6& 3,3);134;"Printer Server "PS$ @' 3,4);134;"PAGE = ",~ J Q%=0 T Z%=1 6 ^ W%=S%(Z%) h Q%=Q%+W%*2^(Z%-1) rA 0,Z%+5);130;Z%;") ";STATE$(Z%,W%);(36-(STATE$(Z%,W%))) | . Z%=7: Q%=&0E:W%=0: Q%=&11:W%=1: W%=2 A 0,Z%+5);130;Z%;") ";STATE$(Z%,W%);(36-(STATE$(Z%,W%))) / 0,8+5);130;8;") Exit or Abort program" ) 3,16);131;"Select option number"  (messline%): mess$  0,18);mess$   0 "Station unprotected","Station Protected" M "Pages B and C for Econet Workspace","Pages B and C program Workspace" ; "Diplay version numbers","No Version number display" G "Pages E and F not reserved","Pages E and F Transient workspace" 2 "No use of Findlib","Call Findlib on Logon" 8 "Station does not auto boot","Station auto boots" ; "BBC compatible settings","Prefered MASTER settings"  "Each of the above options can be set in the non volatile memory of the station and will be used each time the computer is switched on. The two most usual settings can be selected by option 7."  "The station can be protected to prevent other stations from viewing what is on the screen or takeing remote control of the station." & "Pages B00 and C00 are usualy used as network workspace on the Master series. some programs you purchase may require this area to be available for use. If this option is selected PAGE will rise by &200." 0 "Some network commands are actualy loadedas programs from the file server when these commands are used they can displaythe version number of the program if this option is enabled." : "Pages E00 and F00 are used by some olderEconet utility programs. Selecting this option will raise PAGE by &200 and make this area available for these programs. The Findlib option should enabled if these pages are not enabled" D "Econet command files for use on the MASTER series computer are stored in a second library. This option if enabledwill automaticaly select this library when you log on." N "The station can be made to automaticaly start up and load programs from the net when it is switched on. The auto boot option must be selected, and the networkmust be the default filing system." X init b FSNET%=B(2):FS%=B(1) l PSNET%=B(4):PS%=B(3) v STN%=B(0)  S%(8)  B%=B(17)  S%(1)=(B% 64) 64  S%(2)=(B% 4) 4  S%(3)=(B% 128) 128  S%(4)=(B% 1)  S%(5)=(B% 2) 2 " B%=B(16):S%(6)=(B% 16) 16    7 B(X%):A%=161:Y%=0:=(&FF0000 (&FFF4)) &10000 * 4" WB(Y%,X%):A%=162: &FFF4: >  set  B%=&38 B(17)  S%(1):B%=B%+64  S%(2):B%=B%+4  S%(3):B%=B%+128  S%(4):B%=B%+1  S%(5):B%=B%+2  WB(B%,17)  B%=&F7 B(16)  S%(6):B%=B%+16  WB(B%,16)    abort  28,0,24,39,15,12,26 / 3,18);"A) Abort program and do not set" $ 3,19);"S) Set these options" & 3,20);"R) Return to main menu"  K$=: "SAR",K$) $ K$="A":''"ENDED": . K$="S":set:display: 8 K$="R":display: L V default ` 28,0,24,39,15,12,26 j/ 3,18);"M) Set prefered master settings" t. 3,19);"B) Set BBC Compatible settings" y& 3,20);"R) Return to main menu" ~ K$=: "BMR",K$) " K$="B":fix(&0E):display: " K$="M":fix(&11):display:  K$="R":display:   fix(N%)  Z%=1 6 # (N% 1):S%(Z%)=1: S%(Z%)=0  N%=N%/2   NickApad :Index1 @;P D<R DT@Apad :Index1 @;P D<R DT@WIMPS WIMPS Nick4 NAME, COMMA address, commma, , comma, , , , , , , Nickcrnw H=SWRCODE >WIMPData >WIMPFONT f?WLOAD ?Ɛ8?crnw H=SWRCODE >WIMPData >WIMPFONT f?WLOAD ?Ɛ8?9P P Nick,  !!! DO NOT ALTER !!! 25:W=:=&7E00:a%=:J=&70:n3%&18:s1%256:z2%=&8001:t1%=&60000:_3%=&A000:`4%=&50000:Z=&7F00:U=&7F10:Q=&7F20:X=&7F38:q4%=8:l5%=5:l2%=0:3(0):DFE =0:t0%=0:n0%=0:h0%=0:b1%=0:a4%=0:o3%=0:m5%=0:K=0:O=0:K$="0":U$="=":`3%=:k0%=1:l0%=0:r4%=54:u0%=15*4:s4%=1280:p3%=1024-32:v0%=16:l1%=16:h%=32:t%=16:e0%=0:i0%=0:m1%=0:n1%=0:m2%=:c1%=320:d1%=400:a3%=320:n2%=192+2*h%:q3%=:G=("P.WIMPData") #G,o1%,t4%,g0%,x%,o0%,o2%:y%(x%),p2%(x%),T$(x%),I(x%),L(x%):p1%=1:I%=0x%:#G,y%(I%),T$(I%),I(I%):p2%(I%)=p1%-1:p1%=p1%+y%(I%):L(I%)=(y%(I%)-1)24+1::#G,n5%,q1%,q2%,b3%:O$(o1%,t4%),r2%(o1%),r1%(o1%):r3%(o1%):z%(g0%),u%(g0%),b0%(g0%) :v%(g0%),b4%(g0%),c4%(g0%):d4%(g0%),e4%(g0%),l%(g0%):m%(g0%),e1%(g0%):J$(o2%),c3%(o2%),p0%(o2%):Y$(o2%):I%=0o1%:#G,r2%(I%),r1%(I%),r3%(I%):J%=0r3%(I%):#G,O$(I%,J%):,:I%=0g0%:#G,z%(I%),u%(I%),b0%(I%),v%(I%) ƣ#G,b4%(I%),c4%(I%),d4%(I%),e4%(I%)::#G:e1%o0%+2:a$=q1%+1," "):f4%=(q2%+1)*(q1%+2)*(b3%):w%=1:c0%=0:i%=-1:_%=0g0%:l%(_%)=::e:L$="":y:B:j%=1:M$="":z $:(-1)<>0f%=(0):f%<>-1:D`D  *FX22  *POINTER :>=t0%:U $ f%=(0):f%>-1:I:*POINTER 0 L *FX23 `f%=27V:ThE ti%<0dND ~Ic%=i%+1::c%=c%-1:f1%=m%(c%):s2%=9(f1%):s2%c%=0:s2%@0(f1%):\h bn%=o1%+1::n%=n%-1:s2%=s%>950q%>=r2%(n%)q%<=r2%(n%)+48+16*(O$(n%,0)):s2%n%=0:s2%f(n%,0)  "FX15,1" ( F LF P6#0:5:"FX4,3":=18l%(1)4("Error"):`3%=:dhC *pointer 2 DI%=-1:I%=I%+1:a%?I%=I%?(1+!&FD):a%?I%=0:a%?I%=13:A($a%)lh  Wlh ("Error ";;" at line ";;:::*FX23 *FX4  1ݤA(G$):I$:I$=@(11,G$,"Error",,8):=(<>17) ^,ݤ@(L%,G$,Q$,E%,w0%):q3%=:L%1n%=5:DzH p,l%(r1%(n%))D(r1%(n%)):10(r1%(n%)): z"n%+1tNH,tbH,tvH,d^H,drH  r%-1K,X,20,30,40  u1%=1:(-1)u1%=u1%*10 f%="-"f%=127u1%=-u1% ,r%-1Y(n0%+u1%,h0%,0),Y(n0%,h0%+u1%,0) t0%=100:=0: r%-150,60,70  r%=580: p0%(j%)=2l%(4) r%-190,A0,B0  8#V:笤0("leave the desk top") t"&.Welcome.Menu": ,@0(_0%):J(_0%):6(_0%):l%(_0%)dNI _0%+1C0,D0,E0,F0,G0  C0:E(_0%): ID0:`%,b%:`%=((q%-e%)/r4%):b%=((s%-k%)/u0%):`%<0b%<0`%>4b%>5 126N$="0.=+123-456*789/OMMC",4*b%+`%+1,1)N$=f% F N$=0 PN$="C"H0 ZN$="O"D(1) d `3% nN$>="0"N$<="9"I0 xN$="."J0 N$="M"E(f1%) "+-*/=",N$)>0K0  E0:M,R,`%,b% h:R>-2R<-4dzJ (M-12)<1.3K: (M-15)<1.3X: (M-m0%+a0%+2)<1.3i(f1%): +(M-5.5)>4.5f%=13E(f1%):D(f1%): '`%<0`%>v1%b%<0b%>t2%"FX15,1": f%=127L0: f%=13j:  f%<32 "4k(`%,b%,k0%,f%):Z(`%,b%):f%:`%=v1%j7(1,0) @((-1)<>0f%=(0):f%<>27f%<>-1t~J J ^\F0:8:p%,g1%,_%,d%:d%=-1:p%=(q%-z%(_0%))t%:g1%=(u%(_0%)+v%(_0%)-s%)h%:g1%<>17dVK p%>1p%<4d%=1 p%>36p%<39d%=2 p%>3p%<6d%=3 p%>34p%<37d%=4 g1%<>1d~K p%>=7p%<=33d%=5 p%>1p%<4d%=6 p%>36p%<39d%=7 g1%<>15TpL p%>=31p%<=38d%=8 p%>=2p%<=6d%=9 02_%=0x%:g1%=I(_%)p%>1p%<3+T$(_%):d%=_%+11 N8p%>=14p%<38g1%>=I(_%)g1%1:_ T~M w%1:M0 \~ w%0:l(-1) \~ c0%=11d%<=11+x%:c0%<>d%-11:9(c0%):c0%=d%-11:9(c0%): *Bd%>=12+x%d%<=12+2*x%S0(f%,d%-12-x%,p%-14,g1%-I(d%-12-x%)): >48:m:8:2(17,"record "+w%+" field "+(c0%+1)) 26: G0:d%=C:d%=127d%=9D(4) d%=13E(f1%) d%=1i(f1%) d%=2T0 d%=3n(1) d%=4n(-1)  $[ݤC:N,S,d%:d%=-1:N=(q%-z%(_0%))/t%:S=(u%(_0%)+v%(_0%)-s%)/h%:S>=3:=2S>1.8S<0.5:=-1 j(N-17.2)<1.2:=3 t(N-14.2)<1.2:=4 ~1(N>=2N<=11):秽13+9+127,f%)<>0=f%=d% (N-m0%+a0%+2.1)<1.2:=1 =d% F(_0%):6(_0%):l%(_0%) #_0%+1ThO,TrO,T|O,DFO,DPO  10(_0%):l%(_0%) #_0%+1\h,\r,\|,LF,LP  U0(_0%): ( V0: 2 W0: < X0: F Y0: Po: dD(o%):l%(o%) xp(o%):Z0(o%): W0:0,0:*SCHOOSE 1 &ED,e%,k%:4(K): *H0:`3%=:O=0:K$="0":U$="=":4("0"): @$I0:K$-(K$,"."))>=84(K$): TK$="0"K$=N$K$=K$+N$ ^ 4(K$): |J0:K$,".")=0K$=K$+"."  4(K$): !K0:U$="="O=KO=(O+U$+K) 4(O):K$="0":U$=N$: %4(R$):K=R$:K>=100000000K=0/0 iR$=R$,8+(R$,"."))+(R$,"-"))):0,0:1(e%+20,k%+320,170,40):3,3:e%+30,k%+355:5:`3%"Error"R$ l 3(0): V0:u4%=z%(0):v4%=u%(0):w4%=b0%(0):s3%=v%(0):x0%=w4%/2:w1%=u4%+x0%:x1%=v4%+s3%-x0%:d3%=80:g4%=75:h4%=55:0,1:1(w1%-x0%,x1%+x0%,2*x0%,-s3%):0,0:0,-16,16:&61,-2*x0%+32,s3%-32:32,0:&61,2*x0%-32,-2*x0%+32:0,1:&61,-2*x0%+32,-8:0,1:w1%,x1%  `&99,0,d3%+16:0,0:w1%,x1%:&99,0,d3%+15:0,1:w1%,x1%:&99,0,d3%:0,0:a:Y(n0%,h0%,b1%): pY(h1%,e3%,f3%):l%(0) h1%<0h1%=h1%+24 e3%<0e3%=e3%+60 f3%<0f3%=f3%+60 Jn0%=h1%24:h0%=e3%60:b1%=f3%60:0,1:w1%,x1%:&99,0,d3%:0,0:a:q: /U:_%,f0%,t3%:t3%=4(0)D(0):i%<=0DtS m%(i%)=0Lt ._%=0i%-1:m%(_%)<>0D`S B1f0%=_%+1i%:l%(m%(f0%))2(0,m%(f0%)):t3%= V ` t360000t0%=t0%-360000:=-360000 l%(0)t3%  b1%=0a q: Aq:@%=1:3(0):6(0):28,a0%,y1%,m0%,z1%:4,9);:n0%<10" "; 2n0%,":";:h0%<10"0"; <h0%,":";:b1%<10"0"; Fb1%;:26: nma:0,1:M(o3%,60,g4%):M(a4%+o3%/60,12,h4%):0,0:M(h0%,60,g4%):M(n0%+h0%/60,12,h4%):o3%=h0%:a4%=n0%: 7M(T,Y,V):T=(360*T/Y):w1%,x1%:1,V*(T),V*(T): "X0:q0%=b0%(2):y0%=v%(2)-3*h%:v1%=q0%/t%-2:t2%=y0%/h%-4:G(64,0,0,1,0,0,0,0):28,a0%,y1%,m0%,z1%+1:@(2,1,"Note Pad"):@(15,1,252):@(12,1,251):@(m0%-a0%-2,1,248):26:G(0,0,0,1,0,0,0,-3*h%):0,1:b%=8248:e%,k%+b%:1,q0%,0::N(32,60):b:O  K:_%:l%(2) :"FX15,1":_%=14:N(32+(q0%-32)*_%/4,60+(y0%-64)*_%/4)::0,0:1(e%+2,k%+36,q0%-6,y0%-36-4):N(32,60):k0%=k0%b3%+1:b:O: X:b%:l%(2) {"FX15,1":_%=40-1:0,0:1(e%+2,k%+36,q0%-6,y0%-36-4):N(32+(q0%-32)*_%/4,60+(y0%-64)*_%/4)::k0%=k0%-1:k0%<1k0%=b3%  b:O: N(`%,b%):0,0:*FX19  n1(e%+2,k%+32,`%-6,b%-4-36):0,1:e%,k%+b%:1,`%,-b%+32:1,0,b%-32:1,-`%,0:e%+`%,k%+32:1,q0%-`%,0:*FX19 R *FX19 \ p1b:@%=1:0,1:e%+q0%/2,k%+60:5:k0%:3(0): pO:_%:q0%=b0%(2):y0%=v%(2)-3*h%:v1%=q0%/t%-2:t2%=y0%/h%-4:3(0):_%=0t2%:Z(0,_%):5(_%,k0%),v1%+1):: 5Z(`%,b%):e%/16+1+`%,(1024-k%-y0%)/32+1+b%);: .;7(x4%,y4%):q%=q%+x4%*v0%:s%=s%-y4%*2*l1%:A(0,0):h: t'j:b%=t2%7(-`%,-b%):K7(-`%,1)  :L0:`%=0b%=0X:7(v1%,t2%)`%=07(v1%,-1)7(-1,0) $k(`%,b%,k0%,32):Z(`%,b%):32: 1I$=@(11,"file selected","There is no",,8): #L$=1(J$(j%)):笤0("Load "+L$) 1H=L$:H=0I$=@(11,"does not exist",L$,,8): &7#H<>f4%#H:I$=@(11,"is not a Note Pad",L$,,8): DA#H:A%=?&2A6:("SRLOAD "+L$+" "+~_3%+" 5"):?&2A6=A%:l%(2)O b v#40:I%,J%:笤0("Export Pad") k0%=1:G=("Scratch"):$a%=129+".."+q1%-1,".")+"<":0(G):tb\:I%=03:$a%:#G,128:0(G)::I%=1b3%:_2%=:J%=0q2%:a$<>5(J%,I%)_2%= :_2%=:Dp\ 47J%=0q2%:$a%=5(J%,I%):0(G)::$a%=128+"PE":0(G) p l%(2)K z :#G:r  PL31,TM0,BM0,DF\\|P\\ 30(G):I%:I%=-1:I%=I%+1:#G,a%?I%:a%?I%=13: O0:26:E(3): EY0:u2%=:L:8:m:2(17,"record "+w%+" field "+(c0%+1)):26: m:u2%=:9(c0%) u2%:_0:2(1,"Card Index") 5I%=0x%:u2%:@(2,I(I%),T$(I%)):`0(I(I%),L(I%)) :u2%:@(2,15,"Find"):@(31,15,"Restore"):@(2,1,251):@(37,1,252):@(37,17,253):@(2,17,254):@(35,17,250):@(4,17,249) (9(c0%):a0:u2%=: Pa0:!J=z2%+(w%-1)*p1%+t1%:Q:I%=0x%:28,a0%+14,i1%+I(I%)+L(I%)+1,a0%+37,i1%+I(I%)+1:G$=$(a%+p2%(I%)),y%(I%)-1):G$+y%(I%)-G$," ");:: ab0(I%):28,a0%+14,i1%+I(I%)+L(I%)+1,a0%+37,i1%+I(I%)+1:G$=6(w%,I%):G$+y%(I%)-G$," ");: eS0(j0%,`0%,`%,b%):c%,`2%,o5%:$a%=6(w%,`0%):28,a0%+14,i1%+I(`0%)+L(`0%)+1,a0%+37,i1%+I(`0%)+1 "-`2%=1:c%=`%+24*b%:j0%=13A(-`%,-1):tZ_ @9j0%<32(j0%=127c%=0)c%>y%(`0%)-27:"FX15,1":|Z J/j0%=127:c0c%=y%(`0%)-2l2%=1:`2%=0l2%=0 TNa%?c%=j0%:31,`%,b%,j0%:`%=`%+`2%:`%=24:`%=0:b%=b%+1:A(-23,-1)A(`2%,0) ,(-1)<>0:j0%=(0):j0%<>27j0%<>-1Tb_ j0%=27Rtd_ d0(w%,`0%,$a%) 26:b0(`0%): 1c0:l2%=1c%=y%(`0%)-2:j0%=32:l2%=2:`2%=0: Nl2%=0:c%=c%-1:j0%=32:`2%=0:`%=`%-1:`%=-1:`%=23:b%=b%-1:A(23,1):A(-1,0)  :A(`%,b%):("TSET "+(q%+`%*t%)+","+(s%+b%*h%)):I: NCQ0:g3%,Z$,h3%:2(17,"Find Text"):h3%=y%(c0%)-1:h3%>24h3%=24 AZ$=@(h3%,"","Search For ?",,11):P_$=7(1(Z$)):P_$=""TBa 4J%=1o0%:3(J%)秤7(6(J%,c0%)),P_$)=0s(J%,)  !J%=1o0%:3(J%)g3%=g3%+1 !3:2(17,"Records found = "+(g3%)):(150)=27R !z7g3%=0L:2(17,"Whole file restored."):(100)=27R ! !s(R%,V%)e1%?R%=V%: !"L:I%:I%=1o0%:s(I%,):: !ݤ3(R%)=e1%?R% !Wݤ6(w3%,`0%):c%,A%:c%=z2%+(w3%-1)*p1%+p2%(`0%):!J=c%t1%:Q:a%?(y%(`0%)-1)=13:=$a% "d0(w3%,`0%,X$):c%,A%:X$=X$+y%(`0%)," "),y%(`0%)-1):c%=z2%+(w3%-1)*p1%+p2%(`0%):!J=c%t1%:$a%=X$:X:!J=(c%+y%(`0%)-1)t1%:A%=9:U:`0%=x%:!J=(c%+y%(`0%))t1%:A%=13:U "j "~ z: #-60:A%,X%,Y%:p0%(j%)=1M$=J$(j%)M$=" " #d3M$=@(8,M$,"Filename ?",,11):笤0("Save "+M$) #*"SRSAVE "+M$+" 8000+4000 6":j%=1:Q: #K50:A%,X%,Y%:p0%(j%)<>1I$=@(11,"file selected","There is no",,8): $#M$=1(J$(j%)):笤0("Load "+M$) $,1H=M$:H=0I$=@(11,"does not exist",M$,,8): $@;#H<>&4000#H:I$=@(11,"is not a Card Index",M$,,8): $T@#H:A%=?&2A7:"SRLOAD "+M$+" 8000 6":?&2A7=A%:L:l%(3)F(3) $| $70:笤0("Export Index") $̽I%,J%,K%:G=("Scratch"):$a%=129+24,".")+"*":0(G):#G,128:$a%="DMCI":0(G):J%=-1:I%=0x%:J%=J%+1:$a%=T$(I%)+9+"@"+J%:0(G):y%(I%)>24K%=1y%(I%)24:J%=J%+1:$a%=9+"@"+J%:0(G): %&#G,13::#G,128:$a%="EM":0(G):V$=130," "):V$="":J%=0x%:V$=V$+y%(J%)-1," ")+9::I%=1o0%:H$=128+"CI":!J=z2%+(I%-1)*p1%+t1%:Q:$a%=V$dPe %bfJ%=0x%:G$=$(a%+p2%(J%)),y%(J%)-1):K%=0y%(J%)24:Q$=E(G$,1+K%*24,24)):Q$,",")Q$="<"+Q$+">" %6H$=H$+Q$+",":,:$a%=H$,H$-1),130):$a%>9:0(G) %8l%(3)I%10=02(17,"Please Wait : "+((125-I%)10)) % :#G:r & 5_:C%:C%=w%:C%=C%-1:3(C%)(C%<1):C%>=1w%=C% & &*9`:C%:C%=w%:C%=C%+1:3(C%)(C%>o0%):C%<=o0%w%=C% &4 &H%M0:I%,C%:C%=w%:I%=110:_:: &f%N0:I%,C%:C%=w%:I%=110:`:: & i0:C%:C%=w%:w%=o0%+1:_: &R0:C%:C%=w%:w%=0:`: &k8:1:128:0,1:0,128:i1%=32-(u%(3)+v%(3)+1)/h%:24,e%;k%;z0%;d0%;:26:28,a0%,i1%+v%(3)h%,m0%,i1%: '"_0:8:G(16,0,0,1,0,0,0,0): 'L%2(h1%,G$):8:@(7,h1%,F(G$)): '~(l(`%):9(c0%):c0%=c0%+`%:9(c0%): 'P9(_2%):26:e0(2,I(_2%),T$(_2%)):2(17,"record "+w%+" field "+(_2%+1)): ( `0(Y%,L%):0,1:H(t%*14-6+e%,d0%-(Y%+L%)*h%-8,t%*38+4+e%,d0%+8-Y%*h%):0,0:H(t%*14-2+e%,d0%+4-(Y%+L%)*h%-8,t%*38+e%,d0%+4-Y%*h%): (P7ݤF(G$)G$=1(G$):=(26-G$)2," ")+G$+26," "),26) (xo:_%,f0%,c%,i3%:G(64,0,0,1,0,0,0,0):G(0,0,0,1,0,h%-4,0,-2.5*h%):28,a0%,y1%,m0%,z1%+1:@(2,1,"Catalogue"):@(m0%-a0%-3,1,248):@(16,1,252):@(13,1,251):c: )1c:28,a0%+2,y1%-1,m0%-1,z1%+4::j3%=0dji )@0j3%-l0%>=y1%-z1%-5i3%=y1%-z1%-5i3%=j3%-l0% )JEc%=0:Q%=@%:@%=&0005:b$+":"+c$+"",m0%-a0%-4):i3%=1lj )r4f0%=1i3%-1:_%=f0%+l0%:_%=j%p0%(_%)<>2129:0 )SI$=J$(_%):p0%(_%)=2S$=""c3%(_%)>=&400S$=(c3%(_%)1024)+"K"S$=c3%(_%) )NS$=" "+S$:S$>6:I$=I$+S$+" "+Y$(_%):I$,m0%-a0%-4);:128:1:::@%=Q% )26:1:128: )7T0:v2%:v2%=(u%(4)+v%(4)-s%)h%-3:v2%=0f0:DDj *9j%=v2%+l0%:p0%(v2%+l0%)=2("DIR "+J$(v2%+l0%)):LD *0c: *Dl0%=0:B:j%=1:Tpj *l"n(D%):l0%+D%>=j3%l0%+D%<0 *l0%=l0%+D%:c: *f0:"DIR "+J$(0): *B:A%,X%,Y%,Z%,w0%,c%,_%,f0%:A%=6:X%=n3%:Y%=X%256:X%!1=a%:&FFD1:w0%=(?a%)+1:a%?(1+w0%+a%?w0%)=13:c$=$(a%+w0%+1):a%?w0%=13:b$=$(a%+1)::A%=8:X%!1=a%:X%!5=1:X%!9=Z%:&FFD1:Z%=X%!9:X%!5=1:tvk +4_%=_%+1:w0%=?a%:a%?(w0%+1)=13:J$(_%)=$(a%+1):!X%=(a%+1):A%=5:A%=&FFDD:c3%(_%)=n3%!10:p0%(_%)=A%&FF:A%=n3%?14:I$="":(A%2)=2:I$=I$+"Write " +(A%1)=1:I$=I$+"Read " +(A%8)=8:I$=I$+"Locked" +Y$(_%)=I$:_%=o2% + j3%=_%+1:J$(0)=G:p0%(0)=2: +ݤG:H=q4%="^" +=" " ,ݤH:A%,X%,Y%:=255&FFDA ,VFݤ0(G$)"Fx15,1":=13=@(10,"to "+G$+"?","Do you really want",,7) ,tQA0:I$=@(10,J$(j%),"New Filename ?",,5):"RENAME "+J$(j%)+" "+I$:j%=1:Q: ,$90:笤0("Delete "+1(J$(j%))) -"DELETE "+J$(j%):j%=1:Q: --1)(((0)7)<>0):"FX4,3":22,0:"SETPAL":B:j%=1:t:LF . .Q:i%=-1 .x3%:x3%=m%(i%):B:l%(4) .$J(4):6(4):o:J(x3%):6(x3%): /D00:e0%,i0%,m1%,n1%,_1%,a2%,r%,_%:e0%=r2%(n%):i0%=948:_1%=r3%(n%):m1%=32+16*(O$(n%,1)):n1%=-_1%*u0%-8:r%=8:d:::*FX15,1 / *FX22 / *POINTER /:>=t0%:U /.f%=(0):I:r%=8:r%<>a2%f%>-1:*POINTER 0 0 *FX23 0 f%=27C:V:d:T~p 03a2%>0a2%<=_1%S(O$(n%,a2%),e0%+8,i0%-a2%*u0%) 0 6a2%=r%:r%>0r%<=_1%S(O$(n%,r%),e0%+8,i0%-r%*u0%) 0>%f%>-1r%>_1%:r%>0r%<=_1%Dzp 0\4(r1%(n%))C 0f4f(n%,r%):m2%d:S(O$(n%,r%),e0%+8,i0%-r%*u0%) 0z0r%>_1%:C:q%=v0%*(q%v0%):s%=u0%*(s%u0%): 0C:*SCHOOSE 4 0!0,0:&ED,e0%,i0%+n1%:m2%=: 1d:e0%,i0%:0,m1%,n1%:23,27,1,4,0;0;0;:0,1:1(e0%,i0%,m1%,n1%):0,0:1(e0%+4,i0%-4,m1%-8,n1%+8):_%=1_1%:u(O$(n%,_%),e0%+8,i0%-_%*u0%)::m2%=: 1~!ݤ8:e0%>q%q%>e0%+m1%:=_1%+1 1=((i0%-s%-12)/u0%+1) 1!3(X%):4,23,1,X%,0,0;0;0;: 1ou(W$,`%,b%):0,1:`%,b%:&61,16+t%*W$,h%+16:0,0:0,-3,-1:&65,`%+4,b%+4:0,1:5:`%+8,b%+36:W$:3(0): 2(2S(W$,`%,b%):`%+4,b%+4:&62,08+16*W$,32+8: 2P1@(X%,Y%,G$):u(G$,X%*t%+e%,d0%-(Y%+1)*h%): 2x2e0(`%,b%,G$):S(G$,`%*t%+e%,d0%-(b%+1)*h%): 2,H(e%,k%,z0%,d0%):e%,k%:&65,z0%,d0%: 2*1(e%,k%,o%,h1%):e%,k%:&61,o%,h1%: 3G(`5%,a5%,b5%,c5%,i4%,j4%,k4%,l4%):`5%,a5%:H(e%+i4%,k%+j4%,z0%+k4%,d0%+l4%):b5%,c5%:v(e%+i4%,k%+j4%,z0%+k4%,d0%+l4%,5): 36Sv(e%,k%,z0%,d0%,k3%):e%,k%:k3%,z0%,k%:k3%,z0%,d0%:k3%,e%,d0%:k3%,e%,k%: 3I:q%=(7):s%=(8): 3)U0(g%):i%=i%+1:m%(i%)=g%:l%(g%)=: 37Z0(g%):l%(g%)=:m%(i%)=g%"The stack is crap": 3 i%=i%-1: 4w6(l3%):e%=z%(l3%):k%=u%(l3%):z0%=b0%(l3%)+e%:d0%=v%(l3%)+k%:a0%=e%t%:m0%=z0%t%:y1%=(31-k%h%):z1%=(31-d0%h%): 4Nݤ9(b2%):=q%>=z%(b2%)q%<=z%(b2%)+b0%(b2%)s%>=u%(b2%)s%<=u%(b2%)+v%(b2%) 4wݤ2(c2%,d2%):=z%(c2%)<=z%(d2%)+b0%(d2%)z%(d2%)<=z%(c2%)+b0%(c2%)u%(c2%)<=u%(d2%)+v%(d2%)u%(d2%)<=u%(c2%)+v%(c2%) 4Kݤ4(o%):=m2%e0%<=z%(o%)+b0%(o%)z%(o%)<=e0%+m1%i0%+n1%<=u%(o%)+v%(o%) 4YݤD(o%):q%,s%:I:=q%<=z%(o%)+b0%(o%)z%(o%)<=q%+d5%s%-e5%<=u%(o%)+v%(o%)u%(o%)<=s% 5 aE(g%):m3%,w2%:m3%=:w2%=:w(z%(g%),u%(g%),b0%(g%),v%(g%),b0%(g%),b0%(g%),v%(g%),v%(g%)): 5Hci(g%):m3%,w2%:m3%=:w2%=:w(z%(g%),u%(g%),b0%(g%),v%(g%),c4%(g%),b4%(g%),e4%(g%),d4%(g%)): 5z\w(e2%,f2%,y3%,z3%,f5%,g5%,h5%,i5%):`1%,r0%,s0%,a1%,m4%,n4%,o4%,p4%:v0%,l1%,p3%:*FX22 5`1%=e2%:r0%=e2%+y3%:a1%=f2%:s0%=f2%+z3%:v0%=32:l1%=32:p3%=1024-80:x2%=(7):y2%=(8):j5%=x2%-r0%:k5%=y2%-s0%:x:T::>=t0%:U 5Kg0:f%=(0):f%>-1:x:m4%=`1%:n4%=a1%:o4%=(r0%-`1%):p4%=(s0%-a1%):*FX23 6`6e2%<`1%(e2%+y3%)>r0%f2%s0%p(g%) 6tgz%(g%)=m4%:u%(g%)=n4%:b0%(g%)=o4%:v%(g%)=p4%:T:e2%=`1%(e2%+y3%)=r0%f2%=a1%(f2%+z3%)=s0%F(g%) 6 f%=27R 6 6mg0:j1%,k1%:g2%,h2%,i2%,j2%,x2%,y2%:x2%=(7):y2%=(8):(x2%-q%)>v0%j1%=v0%(q%-x2%)>v0%j1%=-v0%j1%=0 7 4(y2%-s%)>l1%k1%=l1%(s%-y2%)>l1%k1%=-l1%k1%=0 7(~g2%=`1%-m3%*j1%:h2%=r0%+j1%:i2%=a1%+k1%:j2%=s0%-w2%*k1%:i2%<=0j2%>=p3%(j2%-i2%)>i5%(j2%-i2%)=s4%(h2%-g2%)>g5%(h2%-g2%)" ":H$=H$,H$-1):H$<>32:=H$ 9lݤE(G$)I%:$s1%=G$:I%=$s1%:I%=I%-1:I%<0s1%?I%>32:s1%?(I%+1)=13:I%=-1:I%=I%+1:s1%?I%<>32:=$(s1%+I%) :4Hݤ7($a%)I%:I%=0$(a%)-1:a%?I%>="a"a%?I%<="z"a%?I%=(a%?I%)&DF :R :=$a% :fݤB(L%)G$: :zA%=:A%=13:=G$ :QG$>L%A%<>1277:DzzA%=127G$=07:LzA%=127G$=G$,G$-1):127:Lz :A%<32A%=1277:Lz :G$=G$+A%:A%: :)g(H$)I%,A%,X%,Y%:H$=1(H$):*fx15,1 : H$="" :2I%=1H$:A%=138:X%=0:Y%=H$,I%,1):&FFF4:: :1r:*KEY0*BASIC|M*DIR &.WI*|MCHAIN"P.WLOAD"|M ;2g("*WORD"+13+"LOAD scratch"+13):26,12:W: ;.e:e%=0:d0%=1024:0,1:H(0,950,1279,1023):32,0:H(4,954,1275,1019):_%=0o1%:@(r2%(_%)/t%,1,O$(_%,0)):_%:d5%=2*t%:e5%=h%:q%=(7):s%=(8): ;)t:e:_%=0i%:l%(m%(_%))F(m%(_%)) ;: ;5:"FX200,1":"FX229,1": ;W:"FX200":"FX229": <!R:"FX15,1":"FX138,0,27": ڦr0p@ڦr0p0ڦr0p~ Ȁڦr0~p Ȁ0`,A$-1):127:Tpo /NA%<32A%>1267:Tpo /XA$=A$+A%:A%: /b /lpoke(str$):I%,A%,X%,Y% /vstr$=TS(str$):$str%=str$ / *fx15,1 /$str%="" /I%=0$str%-1 @@@@@}@@emaN@@QsserddA@@ .leT@ @ rehtO@ @?@@@@@@ rotaluclaCevomeR/yalpsiD@@@daP etoN ffO/nO daP pU egaP nwoD egaP daP daoL daP evaS daP tropxE@@@kcolCevomeR/yalpsiD sruoh petS setunim petS@@@ xednI draC ffO/nO xednI xednI daoL xednI evaS xednI tropxE@0@@ eugolataC ffO/nO .taC eliF eteleD eliF emaneR eliF nuR dnammoC *@H@@emocleW@`@@@@[@@@@@@@@{@@@@@@@@ @@O@@ @@@@@`@@@@@@@@@@P@@p qOp `3ww3̈<~<<<<<<<88 P.WLOAD *FX15,1 *LIB &.LIB*  *SHADOW (romtype%=&2A1 2 *FX4,3 <*DIR &.WI* F*RUN P.Wimpfont P 0 Z 23,16| d *SETPAL n =&7E00 x*LOAD P.SWRCODE 7F00 " and now ... the main program "P.CRNW" NickCLEAN_INDX@ACLEAN_Pad BPMFS ?{CSPRITER ?~$DWIMPSPR ?ކ-ECLEAN_INDX@ACLEAN_Pad BPMFS ?{CSPRITER ?~$DWIMPSPR ?ކ-E9R R NickS LPMFS136(C)1986 PMFH h ]H'!+Zɣ Hzz 1h`FjFjJJJ襌 i I 8 |ZiFjFj)ee)IJJJ)` 6   7 `67`JJJ)I6)66`**JJJ))6`x T ‰ F(`BHZe򅨥i c0) .00zh(` ʱ  K ce樽x T Fzh(`lKEYSDIGITALJOYSTICKMOUSEPOINTERTMAXTRACKERBALLTSETSETPAL`0:`Bad number, ` &x    ( ڃ ` 1 @1 11 J0  ʎ  xl)lk)knb     ȑȥ   L  䑨ȩȥ(` ) ?;: J80.* $  !n L` 4.) 4 e.4 ` 4.) 48mi a  eHHHH0VNF0L{1ƅ报)5扥e)٬)yy)eߥ)iyhihiHH@Lhhh h!.4`x "(`x S "(` ! id0HH0jNq0`Y报)"扥e))yyLyhihiHH@Бhh`)iLυ)eL@@iiii d捑ƍ扤@d@  d@ iƈYUL8 () $0ji@(Хi@`    L醢(ji@(` z ALz)J($ )UJi@(L醠?Lɀl x iȹ(`1`x S`)`****)I S(HZn) m) oLxHZ1LLM@L )  ) )@ )  X <  @ )   @ X L @m223@m445    ) Ơ  ֠  X 83m223`m3i m223`85m445`m5i m445`32`54`HZx   ډL1,`)`=6B` ` )I ߍ`Ѡ ))6 =7=9 ۢ L1#Z18n z `))>`=;*i08)=`=:)i`08` @ 8 Z,V R M   . 7 . 1m m#  . )m  (У(8(` J C2 H H c C  ֋h h x ș(`hhLV J C H H c C ֋h h L֋}{xvsqnligdb_]ZXUSPNKIFDA?<:7520-+@@@@@@@@~}|{yxwvtsrqonmljihgedcb`_^][ZYXVU @@@@0L L0:AG ag880/Lɀɰ LHܥ ֙+ ,h ܏|  ⢀ 㢐  LڽlКΞM6?:jExΟ&@eۘ?~/H/H/ >h/`J Ƒ M  LƑ/ Tb0/Jan1(01-%ڠ %M%ڑ`#H$H%HHH Oh) (hHI ch'#*H*b% U8Um**N%h*L#H$H%HH' (hH OhHI ch)$ h%h$h#LƑ#$ 3 +,+-.-L]#$ 3 L'`'d Gap left for safety-V33333333333333333333333333333333333333333333333333??333333333?33333337333|333p33333733l3338333333333́3633s<3l3383<3383<3383<3383l3s<3363́3333333333833l33733333p333|33373333333?333333333??33333333333333333333333333333333333333333333333333<<<<<fffffnnnnn~~~~~vvvvvfffff<<<<<ᇙ|~ p p|>闙`i`i`i`n?7G8<2'1G4Gċ#"""GDDD#"""?#D~x<<x~x<<x~~x<<<<x<~x<<<x?|>0300333030|>? 000?  ? 0 0 0 0 0 0 00003330 00 00333330 01 0yffff1 0 0 0 0?d cc ^2WUUUUUUUUUUUUWUUUUUUUUUUUUի_UUUUUUUUU\UUUUU00j0\UUUUUu>0j010\UUUUUu<10j010\UUUUUu000j\UUUUU_UUUUUUUUUիWUUUUUUUUUUUU\p 5:\p 5 : \p 5 ?: \p 5 : \p 5 : \p 5WUUUUUUUUUUUUի_:\p 50 :0 00\p 50 :0 \p 5 :000\p 50:0\p 50:_׫WUUUUUUUUUUUU\p 5|:\p 5:\p 5?? :\p 05:\p 5:\p 5WUUUUUUUUUUUUի_:\p 5: \p 5 : ?\p 05 : \p 5 : \p 5:_׫WUUUUUUUUUUUUP{{Z <8'!    ``x<zvnvzvnvzvnv~IHJIhJGGL  F Disc name Drive Bytes free  & FBytes used 毩 `⍍ F    F  ` F HH  ghhL/Show Free Space. 1.05 #(۠L `0 & gLrhh 殱l) 0L  (....0 (* ((   , `   ` M A kUULSet File Server Number. 1.04 ȱ H ȱ 9 W V`@.0) ee`hh ;File server is W  ;.V  L#,d  /8媰e(P0L`hh 橱l F js auHvuhvssLqL. F jt avHwvhwttLqLex L L L# L' `, 8 D Y , L ,`, 8 D , `Mc! `"` /8did 8/ i: , `a` ROTINOM TENOCEkcolc oN *R*K*D*=*6** L3!vQ i HH hhLS!b)e%d!oJJJJ 0:i ) 0:i Ѓ@"L ,HH) (ơ 槥@"e,0ʩhh, @L4 L8 ____ 000 :  򥩅 I    ZH H hh.0<:8 Lj / ".0e:a) eeLL`Syntax : *Notify | # Bad number  : 9H4:; = KL<== h?@;< 8 :i &:*=ʈ:  KIL:L88 9d  /8帰e欝:`,L ȱ  ȱ L .0:   ` a{)_Ȑ{ivv v#ة ƨƩ09#v3  v4 LL# Printer server  now  L . L L still P,d \ \/8媰e(P0lL33 @.0) ee`v {| yzƨ`hh 櫱l   򥩅     iڠ ZɅ+ Not supported : Disc space accountingɠ I L F , = Pt#Read User Free Space. 1.05 hh 橱lHJJJJ Qh(H) ii0 h(` (....0 (* ((  , Q   , bytes remaining ` >! I 鍥 LȊ Y 9 Ľ 򢸠 v   0  9̠ٱG Y3HȱHhhh HHHhh v YПȱۤ ȱ L(Ý  L `l `󈩓`© © ~$ Escape2 0`@.0) ee`ȱ ȱ A Ȱ   򥩅    L ʩ i  +Ϡ ZɅ+ Not supported : Disc space accountingɠ I L`#Set User Free Space. 1.05  X dH.../h 0:%g aGABad hexToo big)_80 `Syntax : *SetFree T Z HPh 8 Q[[\\ P"Z9 Q  [  \ L NO 0 O 0L8 Ȱi ` `:L3: O%=O%+diff% u3[ OPT assert("diff% >= 0","Middle over#Good morning ! It's Good afternoon ! It's Good evening ! It's ,L  )   Stn User Id.ᆮ i  LΡ0ϥ #轢$Ƚ$ Ĭ &"ȩ $hh 橱l $)1L# ƮƮ$ g .  # g  %   L 権d t tH/8帰e0 ,  h`    F 3 `Show Users. 1.11 (Nick!Boot uUBOOT! BUDate VDiscs Vfindlib WFree WNetMon ==kXNotify XReadFree YRemote YSet ZSetFree ZUsers [View [!Boot uUBOOT! BUDate VDiscs Vfindlib WFree WNetMon ==kXNotify XReadFree YRemote YSet ZSetFree ZUsers [View [Library1 Library1 (Nick* E X E C $ . L I B R A R Y 1 . B O O T ! L|This file is an example and has been created using *Build. |You may include any of the commands which you would |normally use to run a package. | |If you do not wish there to be any screen output you may |disable it by placing VDU21 either at the start of this |or in the !Boot file which runs this file. | |Remember to put a VDU6 at the end of this file to re-enable |screen output. | VDU6 | |Now the command which runs the program. |CHAIN "$.Menu.Menu" ީީݠ  Qݩ  ݩ ޭ)i 1ީ ޭi18: Ȫ LJJJJުJJޭ)Hސ 芮)ʎhHʊ h Jmmmm88 1ީLީޭ8 i ޭ 0 0  123t hLs tLn dLr dLެ޹ `Kު^ ^[ ` $,169=AGPW_SunMonTuesWednesThursFriSaturJanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecemberToday is day the of 19  d drive disc name iݩݢ0ݢݢݩ `Display Discs. 1.04 0 ݅  hh 橱lH/8婰e h`  E H 򥩅 5vޝ ? <= V= =L?M? $p `a` rotinoM tenocEkcolc oN >5 ? O f > > >O n ?*M*F*?*8*1** L>v2 i L>bed o >L> rqL>HJJJJ >h) 0:iLrq(`HH hh`$p0, `,<`$p0,`,8`,HH) (ơ 槥rqe,0ʩhh, @L4 L ____ 000 :  򥩅 K.0<:8 @ݰLީ Gݐ/ ".0X:T) eeLLL`Syntax : *Notify | Bad number   ݘHݙ݈ Gޭ(Lݩݢݩ hݮݍ 8 i ݝݹݙʈ PޢݩLݩ ݢd rީ rީ/8帰e欝`    򥩅    ފiޢީ ZɅ+ Not supported : Disc space accountingɠ ޝI L  = P]Read User Free Space. 1.06 hh 橱lHJJJJ h(H) ii0 h(` (....0 (* ݰ((  ,    bytes remaining ` ސL! I 鍚ީގޢީ Lީީ ޮޠȊ N .ޢ޽ Ľޝ 򢭠 kލ ސ ީ 0  .̠ٱG N3HȱHhhh HHHhh k NПȱۤ ȱ LޢÝ  L `l ޝވ`󈩓`© © ~$ Escape2 0`@.0) ee`ȱ  ȱ A  ސȰdLݢ    򥩅 D $0':#)  ee ץ5Bad station numberSyntax : *Set  2޽޼ޙ@ ݘ LL Īx ( H @h`H @h`H@h`H @h`0 B  ݩ Wީ Wޥ W  ݩ0Br`8* ݭBH)B @) hB`d ީ ީژ/8媰e HI0h `Set station number. 1.06 FailedStation number now BAJB L^ޢ ʩ i  ݢީ ZɅ+ Not supported : Disc space accountingɠ ޝI L`ލ ލ ލ ަ X H. . . ް/h ލ0:%g aGABad hexToo big)_80 `Set User Free Space. 1.07     򥩅   LSyntax : *SetFree jީ )݅ Stn User Id.ᆮ cޥjikީfީ dޢcީ gLg0ϥ hޙhޙȽh Ĭ &"ȩ hh 橱l ݘ)L ƮƮaޭ - . -   Li 権d :ީ :ީH/8帰e0 ,a a h`    c gF g3 `Show Users. 1.11  ސ3! I 颴ީ Lޭޮލݎ8 wޠ yެ ݈݌ݠ# {ޠ yީU,"Pp,>"LMode ?  d) 8Zލݜݜ ݢ#ݝ ݽݝPQ(JftI ȍ b޽  %ݎR&ݎS ?ݩ ~$F EscapeNot listeningSyntax : *View PPP@((  L2 0М8` ޝ݈(`00 ?'ȱI I-8I A/ ސ(Ȫ@.0) ee`Nick!Boot ]account Ce\^Y^ADFSHELP D<_AdventInfo+gAdventure +*hANFSData 00$ iANFSdemo +$jANFS_Title.]ANFS_UTILS.v kAqua +lCastle +mChardes +nCloud +oClown +pConvert VqDBASE .trDbaseInfo +WsDircopy +tEnvelInfo + uEnvelope +%vfile wgrant1 VERAxHELP DûyKeyboard +LIBRARY DǻM128 DgѻModes +\PaintInfo +DPatterns +Pfill +t PRINTDRIVEDԻProg_Utils+lRunAform +RunBackup +RunVerify +Shapes +TimPaint +Turtle + TurtleInfo+ UNCRUNCHEDD.ڻUtilities +Welcome80 + Welc_utils.!!Boot ]account Ce\^Y^ADFSHELP D<_AdventInfo+gAdventure +*hANFSData 00$ iANFSdemo +$jANFS_Title.]ANFS_UTILS.v kAqua +lCastle +mChardes +nCloud +oClown +pConvert VqDBASE .trDbaseInfo +WsDircopy +tEnvelInfo + uEnvelope +%vfile wgrant1 VERAxHELP DûyKeyboard +LIBRARY DǻM128 DgѻModes +\PaintInfo +DPatterns +Pfill +t PRINTDRIVEDԻProg_Utils+lRunAform +Master_WelMaster_WelNickH*| *BASIC CHAIN"$.Utilities" 129: C"FX200":129:5,19,2,2;0;:G$(3),H (18*130):"L.ANFSData "+~H G$(0)="Advanced":G$(1)="Net":G$(2)="Filing":G$(3)="System":H$="AdvanceDisFlgSytmN":G 8:X%=G:Y%=G 256:?G=224:A%=10:&FFF1:I%=03:I%*6*32+4*32,1024-(I%*6*32+3*32):@(G$(I%)): np23,224,&18,&3C,&3C,&7E,&7E,&00,&7E,&3C,4,23,1,0;0;0;0;:12,30);"An ";:2:"AC";224;"RN";:3:" tutorial"; x;K=(500):23,224:I%=18:G?I%::"FX200,1":"ANFSDemo" 4@(G$)J%:0,1:J%=1G$:0(G$,J%,1)):0,3:: 0(G$)X%,Y%,I%,L:P%=H+(H$,G$)-1)*130:J=@:I=@:0,0,-I*4:Y%=03:X%=03:23,224:Z%=072:Z%!P%;::224:P%=P%+8::10,8,8,8,8::11,11,11,11:0,J*4,I*4: ݤ@:P%=P%+1:=P%?-1   25.55500P    N6TRpj4rÂ̂Ђ vԂ݂3'th\} SG=5-#T <`xph E#  "N+vnc[PH?7  މՉ̉É 3;Vs "*`}zrjbZ# N F t g Z M @ 3 &  ƅυ؅@HhQF>2)  0 % vmd[RI@7.߈ֈ͈ĈԌ&O2 s f Y L ? }tkbYPG>5, h Z L > 0 "   ) ؊ϊƊ=PAYMENTSRECEIPTSPRAY----------------oanUNULUGEPCTOVECANEBAR'tary'sureroom6333B45.55paymentsexpensesexpenseshireprinting633345.556333B45.556333B45.556333B45.556333B45.556333B45.556333B45.556333B45.556333B45.556333B45.556333B45.55B16.50B0B000B0B000FB99B000B000B0B0B0008B184.50B00000B0B0B0B0YB6.8B8.3B0B0(B5.25, B10.79B0<(B5.88B0ffffB3.60B22B0B0B0B0B0B0B4.5B0HB12.50B0pB15B0HB12.5B0HB12.5B0HB12.5B0HB12.5B0Sheem &District.B.P.Society---------------------------------Accounts for:'1985-86'--------------------ale ofT shirtsynne'sdonationembersfeesale ofbooksB0B135B0HB12.5 B320"B650B37.5B04B22.5 B17.5B0hB58PB26"B40.5`B56)B84.5B68B0B37.5B0B16zB125 B80B644B11.25B0HB12.5HB25B0B0B0B0B0B0B0B0B0B0 B321XB108 B35HB25@B48B300 B2750B88dB57.HB200----------------------------------------------------------------------------------------------------------------otal---------------------------------------------------------------------------------------------------------------- (B 6333B  LB  B  33B  ٙB  h333B 6333B }333B a\(B z333B f B ----------------------------------------------------------------------------------------------------------------otal----------------------------------------------------------------------------------------------------------------ettotal----------------------------------------------------------------------------------------------------------------B>B  {B  LB  PB  B  J@B+ B,B BaB{B# B- 'B - ufffB - ffdB - &fgB - 33B - -9B- YB- ZffgB- "QB- "s33B- B\B- OTALSfeB w{B  --------B  B  >\)B  B --------:B zB --------QB --------oB "B RB --------paymentsreceiptsNickaform `backup acatall bcopyfiles cdircopy 7dexall bharderror erecover fverify faform `backup acatall bcopyfiles cdircopy 7dexall bharderror erecover fverify f\ADFSHELP ADFSHELP Nick ** AFORM ** Before a disc can be used, it must be 'formatted', a process which involves dividing the disc up into concentric circular 'tracks', each track consisting of a number of 'sectors'. There are 16 sectors per track, each sector containing 256 bytes. On typing *AFORM, you will be asked to enter the number of the drive containing the disc you wish to format, and the size of the disc. Pressing RETURN at the prompts will list the options available at that time and then prompt you again. You may also enter any, or all, of this information in the command line, e.g. *AFORM 0 S - drive 0, 40 track *AFORM L - double sided 80 track (Press SHIFT to continue) *AFORM F - drive F ( same as 5 ) The program will prompt you for any information you have not entered, after which you will be told the drive to be formatted and its size and asked if it is O.K. to format the disc. You must type 'YES' to start. Ensure that the disc to be formatted is in the correct drive. DO NOT LEAVE AN ALREADY-FORMATTED DISC IN THE DRIVE AS IT WILL BE OVERWRITTEN AND ALL INFORMATION ON IT WILL BE LOST. The disc will be formatted and then 'verified' to check that the formatting (Press SHIFT to continue) has been carried out successfully. Further discs may then be formatted. It is possible to leave the formatter by typing 'Q'. ** BACKUP ** BACKUP will copy sector for sector all the information from one disc to another. It is recommended that you take backups frequently, either using BACKUP or DIRCOPY. Floppy discs can be damaged and a disc that is corrupted could mean hours, days or even weeks of wasted work if you do not have a backup copy available. The DIRCOPY utility may be used to copy whole directories from one disc to another - this may be quicker than backing up the whole disc. To use BACKUP, type *BACKUP a b where 'a' is the source drive and 'b' the destination drive. Either b, or a & b may be omitted, in which case the program will ask you to supply the missing information. (Press SHIFT to continue) If you state that you are only using one drive you will be prompted when it is necessary to change the discs during the copying process. MAKE SURE YOU ALWAYS HAVE THE CORRECT DISC IN THE APPROPRIATE DRIVE. ** CATALL ** CATALL will produce a listing of the contents of all the directories on a disc in a similar form to that given by the *CAT command. You will be prompted for the drive. ** EXALL ** EXALL will produce a listing of the contents of all the directories on a disc in a similar form to that given by the *EX & *INFO commands. You will be prompted for the drive. ** COPYFILES ** Copyfiles is a program written in BASIC to copy files from one filing system to another. On running the program you will be asked a series of questions. If you don't understand the question then a list of options will be displayed on RETURN being pressed. If disc type filing systems are used then you will be told when to insert the appropriate disc into the drive. After the source and destination filing systems have been supplied you will be asked for the 'Copying mode'. The options available are :- Single file mode - The source and destination files may be anywhere in (Press SHIFT to continue) the filing system structure. The source name will be used for the destination name if the user presses RETURN at the 'destination name' prompt. The name is truncated if necessary. Multiple mode - This mode requires the user to be in the appropriate directory on both filing systems. All of the files are copied from the source directory to the destination directory, a 'Y/N' prompt being given for each file. List mode - Identical to 'multiple' mode but all the files in the source directory are copied i.e no prompts are given. (Press SHIFT to continue) At this point the display will change showing source and destination filing systems and the copying mode, if any of these are incorrect you may return to the main menu by pressing ESCAPE. If Star ( OSCLI ) commands are required they may be entered by substituting a leading space instead of the star ('*') e.g. Source filename : Dir Q to select Q as your Currently Selected Directory. To start the copying process type '*' at the 'Source list spec.' prompt. (Press SHIFT to continue) To return to the main menu press ESCAPE and to quit from there, press 'Q'. ** DIRCOPY ** DIRCOPY is a program written in BASIC to duplicate part or all of an ADFS directory structure (tree) in another part, possibly on another disc. The source and destination drives will be asked for. If you only have one disc drive, the reply will be the same (0). It is possible for parts of the tree to be ignored. The user is prompted 'Sub-directories not to be copied' and can type in up to 10 names - the list can be terminated at any point by pressing RETURN . The directories specified can be all those with a given name ( e.g. 'ARTHUR' ) or specific directories ( e.g. '$.FRED.JIM' ). (Press SHIFT to continue) Files can be protected against being overwritten by setting the access attribute 'L' (locked). This attribute can be ignored on destination files if you answer 'Y' to the 'Overwrite (Y/N)' prompt. For a source file to be copied, the 'R' attribute must be set. If it is not set then a message 'Can't read file' will be printed and the file ignored. ** HARDERROR ** This program is intended for use in the rare case that there is a permanent disc error on a floppy disc. You may not wish to reformat the disc, but would want to avoid the 'Disc Error' messages generated when the bad track is accessed. HARDERROR will remove the sector from the 'Free Space Map' ( the list of sectors which are not currently used ). If the sector does not appear in the FS Map (discovered by typing *MAP), it is occupied by an object. Before running HARDERROR , you must delete this object. If you do not then the program will tell you that there is an object at that sector and to delete it. If the object is a directory, the contents must be moved first, otherwise the disc would be left in an inconsistent state. (Press SHIFT to continue) To use the program, the bad disc must be on the current drive. You may find a 'Bad sector' error when loading a file. ADFS will return the sector number of the START of the file where the error occurred, not that of the bad sector itself. Once this program has been run DO NOT use compact to compact the disc. ** RECOVER ** You may sometimes delete a file by mistake. The '*DELETE' command does not remove the file from the disc but only the entry for the file in its parent directory. If the space that the file occupied has not yet been overwritten it is possible to recover the file using this utility. RECOVER will display the sectors of the lost file individually. You may save the whole file, or just part of it. Before running RECOVER the directories $.LostFiles.A and $.LostFiles.B must exist on the disc. It is a good idea to create these directories BEFORE any files are deleted since creating afterwards could easily overwrite the file you are trying to recover. (Press SHIFT to continue) The instructions for using RECOVER are somewhat lengthy, and are given in the program itself. It is a good idea to practice using RECOVER with some dummy files before you actually need to use it. ** VERIFY ** The formatting program, AFORM, automatically checks a disc to ensure that it has been formatted correctly. It is sometimes desirable to check the validity of a disc at a later date, to make sure that there are no errors in the formatting of it. VERIFY will check each sector to determine if it is readable. To verify a disc, type *VERIFY, optionally followed by the number of the drive containing the disc to be verified. e.g. *VERIFY 0 If you do not supply the drive number, VERIFY will ask you explicitly for it. When you have specified the drive to (Press SHIFT to continue) be verified, you will be asked to insert the disc and press RETURN. *FX25 129:19,1,2,0,0,0:D|A B1:@("Adventure"):'''"Would you like instructions ? (Y/N)"; (/A%=&DF:A%="Y"A%A%="N"A%:DP@Th@ 2::G$:G$="|"@:. <G$=".":. F':2(G$):G$="":@ P"$.Adventure" Z@:"FX15" dM0(-1,"Press the SPACE BAR to continue"):=32:0(-1,""):28,2,28,37,1: n"This program is a simple adventure game. The aim is to explore the world which is revealed to you by the computer and to find the hidden treasure." xu"The computer will describe your surroundings, possible routes which you may take and what objects are at hand." "You give instructions to the computer using one or two words. For example to go north you could type { GO NORTH } or { NORTH } . You can collect objects which you come across by saying { GET KEY } or { TAKE KEY } ." W"Typing { INVENTORY } will give you a list of the objects which you are carrying." "|","." A"In certain cases abbreviations can be used to save typing." I "N,S,E,W,U,D can be used for NORTH, SOUTH, EAST, WEST, UP and DOWN" % "INV can be used for INVENTORY" "|","." "Don't be afraid to experiment with a wide range of words. Only in this way will you discover the vocabulary of the game." *"To leave the game press { ESCAPE } " "" I2(H$):G,H,G$:H=1:H$=H$+" "::G=H$," ",H):G$=H$,H,G-H):G3:H=G+1 G=H$: 3:G$="{"2: G$="}"1: G$+>36'G$" ";: G$+<36G$" ";: " G$;: ,'5:26:16,1:0,0:&65,1280,1024: 6%1:4(28,1,"",0):28,2,28,37,1: @80(_%,G$)`%:_%=0_%=1024-64:`%=1_%=-1_%=32:`%=30 JZ24,32;_%-4;1248;_%+36;18;129,16,24,32+4;_%;1244;_%+32;18;128,16,26,31,2,`%:@(G$);: T4(L%,Y%,G$,C%)_%:128+C%:C%+1:_%=1024-(Y%+1)*32:24,32;_%-4-32*L%;1248;_%+36;18;129+C%,16,24,32+4;_%-32*L%;1244;_%+32;18;128+C%,16,28,2,Y%+L%,39,Y%:G$;26:128:1: ^ݤ@(G$)=(36-G$)2," ")+G$ h-6:Dd@::G$,I$:I$" ";:G$<>""G$" "; r:I$="REPEAT": | @ER <>17:" at line ";:  22,128+6 B8,6)"Do you want to go on to"'8)"the next program (Y/N)? ";  X%=32:X%="y"X%="n"  X%&DF Y%=(X%="y") X%=:X%=13X%=127 X%=127:127:  "Y%28,2,20,38,12,12:"$.Aqua" :"FX18":  TJ@ " " "outside a shack. The sun is shining strongly down on you. It is very warm for the time of year. To the north the ground rises into the hills. Southwards a gully deepens and gradually becomes more overgrown as it winds its way into the sunshine" "on a gentle incline, the old shack is below you at the foot of the hill to the south. Ahead the bracken is becoming thicker, a sheep track winds its way towards the skyline" ("wandering across a gentle undulating meadow. To the east lies the shack. In the distance you can see the tops of tall trees pointing high into the western sky" 2d"at the edge of a wood. The trees really are very tall. The deep shade looks cool and inviting" 30:L(Loc%) >gLoc%=30 p("The path gave way beneath you and you fell down the cliff onto the rocks below."):die H: R ',A$: \: fA$=0"Eh?":DRC pA$=C(CV(A$)) zA$=1M(A$):TtC +A$="inv"A$="inventory"items(1):DRC SP=A$," ") _ C(A$,A$-SP))," ")<>0p("I'm sorry. I can only understand two words at a time."):DRC left$=A$,SP-1) right$=A$,SP+1) "dir(left$):M(left$):TtC first=lookupverb(left$) hfirst d^C,dhC,drC,d|C,TFD,TPD,TZD,TdD,TnD,TxD,DBD,DLD,DVD,D`D,DjD,DtD,D~D "Eh?"  TtC  go:  get:  get:  drop:  light:  light:  open: $ open: . dig: 8 climb: B in: L out: V in: ` out: j out: t sweep: ~ sweep:  ݤlookupverb(check$):word%  tfD Ego,get,take,drop,light,strike,open,unlock,dig,climb,in,out,enter exit,leave,sweep,brush "" word$:word%=word%+1 word$=check$ word$="" word$="":=0 =word%  !ݤlookupobject(check$):word%  DTA a$,word$:word%=word%+1  word$=check$ word$="" word$="":=0 =word%  (ݤdir(A$)dir%,I%:dir%= 2 I%=16 <A$=Dir$(I%) dir%= F :=dir% P Z L(L%) d L%*10 n:Description$:Description$="You are "+Description$+"." xp(Description$)  EX(L%)  items(L%)   EX(L%)I%,J%,exits%,exit$  I%=L%*7-7 exits%=EXIT%?I% exits%=0 exit$="There " Aexits%>1 exit$=exit$+"are exits " exit$=exit$+"is an exit "   J%=1 6 t EXIT%?(I%+J%)=0 exit$=exit$+Dir$(J%):exits%=exits%-1: exits%>1 exit$=exit$+", "exits%=1exit$=exit$+" and " :p(exit$+".")  " , items(L%)I%,objects%,obj$ 6 DTA @ I%=1 8 J* Object%?I% = L% objects%=objects%+1 T ^Aobjects%<=0 L%<>1obj$="There is "obj$="You are carrying " h I%=1 8 r a$,b$ |B Object%?I% = L% objects%=objects%-1:obj(I%,objects%,a$,b$)   p(obj$)   obj(I%,O%,A$,B$) FO%<>0 obj$=obj$+A$+" "+B$:L%<>1obj$=obj$+" here."obj$=obj$+"." !O%>1obj$=obj$+A$+" "+B$+", " $O%=1obj$=obj$+A$+" "+B$+" and "    M(A$) dir%=Direction$,A$) .dir%=0 p("I don't understand "+A$+"."): e EXIT%?(Loc%*7-7+dir%)=0:p("There is no way to go "+Dir$(dir%)+".") Loc%=EXIT%?(Loc%*7-7+dir%)   &go 0 I%=16 :+right$=Dir$(I%)M(Dir$(I%)):I%=6:: D!right$=1M(right$):I%=6:: N Xright$="in"in: bright$="out"out: lp("I can't apply that."): v  get Bright$="chest"Loc%=15p("The chest is too heavy to lift."): Uright$="key"I%=0:I%=I%+1:Object%?I%=Loc%I%=4:Object%?I%=Loc%object=I%:t|G  object=lookupobject(right$) object=0 p("What!!!"): ;Object%?object<>Loc% p("I see no "+right$+" here!"): Object%?object=1    drop Oright$="key"I%=0:I%=I%+1:Object%?I%=1I%=4:Object%?I%=1object=I%:TLH  object=lookupobject(right$) 7object=0 p("I don't know the word "+right$+"."): BObject%?object<>1 p("You're not carrying the "+right$+"."):  Object%?object=Loc%    * light 4Aright$<>"match"right$<>"matches"p("I can't apply that."): >4Object%?6<>1p("You don't have any matches."): H Loc%=27 p("You light the "+right$+". The light reveals that the cave is empty but that the floor is covered in freshly dug earth."):Object%?6=0: R-p("You light the "+right$):Object%?6=0: \ f open p?right$<>"chest"right$<>"grate"p("I can't apply that."): zJ%=("FN"+right$):  ݤchest +Loc%<>15 p("I see no chest here."):=0 BObject%?4<>1 p("It's locked and you don't have the key."):=0 op("The chest opens easily with the key."):p("Congratulations you have found the treasure."):':A=:*FX125 =0  ݤgrate 5(Loc%<>14)swept% p("I see no grate here."):=0 a(Object%?1=1 Object%?2=1 Object%?3=1):p("It's locked and you don't have the keys."):=0 /p("The grate opens easily with the keys.") &EXIT%?(7*14-1)=15:EXIT%?(7*14-7)=1 =0  dig ? Object%?7<>1 p("You don't have anything to dig with."): u Loc%=27 Object%?4=0p("You dig a large hole in the earth. Suddenly a golden key is unearthed."):Object%?4=27: u Loc%=11 Object%?2=0p("You dig a large hole in the earth. Suddenly a bronze key is unearthed."):Object%?2=11: &p("You dig a large round pit."): $ .in 8Loc%=2 Loc%=28: BLoc%=13Loc%=14: LLoc%=26Loc%=27: Vp("I can't apply that."): ` j out tLoc%=28 Loc%=2: ~Loc%=14 Loc%=13: Loc%=27 Loc%=26: p("I can't apply that."):  climb Eright$=""right$="tree"right$="oak"p("I can't apply that."): 9Loc%=22 p("You climb up the mighty oak."):Loc%=29: ((Loc%>4Loc%<11)Loc%=13)T%p("You start to climb a tree. Suddenly there is a sharp crack as a branch gives way beneath you. You fall to the ground and break every bone in your body. Well.. I told you so!!"):die (Loc%>4Loc%<11)Loc%=13p("You start to climb a tree. Suddenly there is a sharp crack as a branch gives way beneath you. You fall to the ground in a heap. You seem to be unhurt, but you probably won't get away with that again!"):T%=-1: #p("I see nothing to climb."):  sweep ,Object%?5<>1p("I can't apply that."): -p("You sweep the floor with the broom.") Loc%<>14 vp("A lot of dust is blown into the air and a rusty iron grate with three keyholes in it is revealed."):swept%=:  ( die 2 <0p("Oh dear, you seem to have been killed.") F'p("Would you like to start again") P%" ? ";:K%=32:K%="y"K%="n" ZK%:=13 dK%="y":TJ@ nY%=:tdK x PݤC(Z$)Z$=" "+Z$+" ":Z$=Z$,Z$-1):Z$<>32:Z$=Z$,Z$-1):Z$,1)<>" ":=Z$  :ݤCV(Z$)B$="":J=1Z$:B$=B$+(Z$,J,1)32)::=C(B$)  p(Z$) I,J,A$ J=1 Z$=Z$+" "  I=Z$," ",J) A$=Z$,J,I-J) I pp:J=I+1 I=Z$:  pp A$+>40'A$" ";: "A$+<40A$" ";: , A$;: 6 @ER @<>17:" at line ";: J6 TB8,6)"Do you want to go on to"'8)"the next program (Y/N)? "; ^ hX%=32:X%="y"X%="n" r X%&DF |Y%=(X%="y") X%=:X%=13X%=127 X%=127:127:  "Y%28,2,20,38,12,12:"$.Aqua" :TJ@ ###AAAppp888 p8pps pp8sÀ|88> @@tt<88888p``p87 {><888888888888888|88ppppx8888ppppx88|888888pp888888888888888888888888888888|pp 0xx0x88888888888888888|x8|?<?|>>??;;pppppp99888888pp88pppppppp88888888pppppp888888|pp00 ("FX200,1":("DIR &"):"Utilities" 9"FX200":"FX229":129:19,2,2;0;:C:1:dBA:2:D: 610,128:0,3::5:H,G:a=::E(H):H=H+1:a:4: (E(H):F(H):G(H):H(H): 2#F(H):U=0:H=0U=1:H(0)=0:DF@ <3(H-1,0,0) F a=U=0: P43(H,b,S)I%:I%=02:g=J?(b*16+I%+13):H=0I(g) Zg<>&FF3(H-1,g,0):S=S+1 d: nI(b):b<>&FFH(U)=b:U=U+1 x G(H):a i=1280U-1:I%=06:O(I%,H)=0:I$(I%,H)=""::I%=0U-1:j(I%,H)=J?(H(I%)*16+12):I$(I%,H)=$(H(I%)*16+J):L(I%,H)=J?(H(I%)*16+11):O(I%,H)=7(I$(I%,H)):I(I%,H)=i*I%+i2-O(I%,H)2:Y(I%,H)=I(I%,H)+O(I%,H)2:c(H(I%))=I%:Z(H(I%))=H:: ݤ7(H$):=(H$)*32 H(H):a ;I%=0U-1:I(I%,H),1000-H*128:I$(I%,H):j(I%,H)=0t~@ I(I%,H)-16,1004-H*128:Y(I%,H),1020-H*128:I(I%,H)+O(I%,H)+16,1004-H*128:1,0,-36:Y(I%,H),1012-60-(H)*128:I(I%,H)-16,1004-36-H*128:1,0,36:dH@ nI(I%,H)-16,1004-H*128:1,12,12:1,O(I%,H),0:1,12,-12:1,0,-32:1,-12,-12:1,-O(I%,H),0:1,-12,12:1,0,32 L(I%,H)=&FFd\@ F0,2:Y(I%,H),1020-H*128:Y(c(L(I%,H)),H-1),1012-56-(H-1)*128:0,3 : &J:N=0:I%:I%=02554:I%!J=0:: C:23,1,0;0;0;0;28,0,31,39,15,24,0;544;1276;1020;:S:H(10),I$(10,4),L(10,4),O(10,4),I(10,4),Y(10,4),j(10,4),c(16),Z(16),L$(8),d(3):J 256,q 40:DJA:4:TTE:I%=18:L$(I%):: 04:J:I$,L,V::5(I$,L,V):I$,L,V:I$="": j5(I$,L,V)N>=255@("""Disc full"" - N.B. You can have more than 16 directories on the real disc!"): eL<>&FFI%=1315:J?(L*16+I%)<>&FF@(I$)=@($(J+(J?(L*16+I%))*16))@("Duplicate name"):I%=15::  L<>&FF "V$(J+N)=I$:J!(N+12)=-1:J?(N+11)=L:J?(N+12)=V:S=12:L<>-1S=S+1:J?(L*16+S)=&FFS>15 ,ZS>15@("Directory full - N.B. The real disc allows 250 objects per directory"): 6L<>-1J?(L*16+S)=N16 @ N=N+16: J $,-1,0 T Fred,0,0,Jane,0,0,Bill,0,0 ^7 Bill,1,-1,Fiona,2,-1,Adam,2,0,Vera,3,0,Philip,3,0 h/ Susan,6,-1,Bill,6,-1,Kate,6,-1,Diane,8,-1 r "",-1,0 |92:k=17:U=0:4,23,1,0;0;0;0;:::M$:6(M$):M$="": ^6(H$):H$="PAGE"4,15);:6("[Press the Space Bar to continue] "):"FX15,1":=" ":: -:A%=H$,"'"):A%H$=0(H$,A%,10+10+13) %B%=H$,"["):B%H$=0(H$,B%,k+1) %C%=H$,"]"):C%H$=0(H$,C%,k+3) A%=0B%=0C%=0:H$;: &ݤ0(H$,l,O$):=H$,l-1)+O$+H$,l+1) V "The picture above represents the [structure] of information on a disc. " { "The [information] is contained in [files], and one or more files can be collected together in a [directory]. " : "This type of structure is called a [hierarchy]. " p "At the [top level], or [root] is one [directory], which cannot be removed, and is always called [$]." Y "'This directory can have files within it,and it can also have other directories. " P "In the above diagram, the root has threedirectories (Fred, Jane & Bill)."  "PAGE" c "The octagonal boxes in the above pictureare directories, and the hexagonal boxesare files.'"  "All these directories within directoriesmay seem a bit esoteric at first, but as you become used to the idea of splitting your files into sections, and then sub-sections, you will find that a hierarchy is the best way" * " of dealing with the situation." & "PAGE" 0^ "Note that a directory can have only one green line joining it to the level above." : "'To access a directory, one can always start at the root, and then descend the tree (only computer trees have roots at the top!) in the following fashion." DI "'Specify each name, with a [full stop] ([.]) separating them, so;" N "'*DIR $.Jane.Adam " X "PAGE" b@ "The ""*DIR"" command is used to select [dir]ectories." l "'In the previous example, it will give you access to everything in Adam (the files here are Susan, Bill & Kate), and there are no directories." vk "'The catalogue of a directory is simply a list of all the files and directories in that directory." 6 "'So the catalogue of $.Jane is Fiona and Adam."  "PAGE" J "To access directories below the current one, you have two choices;" q "'[Either] start at the root, working downwards through directories (as in the previous example)," < "'[Or] start at the current level, and work down, so:"  "'*DIR Vera" ` "'from the level of $.Bill, is the same as$.Bill.Vera, except that it saves typing."  "PAGE"  "Now for some tests."  "PAGE"  "" | "Now that you have seen how to move around the tree, the next stage is [modifying] it to suit your purpose." i " To create a new directory, you must move tothe directory immediately above it, and then type;'"  "*CDIR '"  0 "(This stands for [C]reate [DIR]ectory.)'"  "PAGE"  W "To delete a directory, or a file, followthe same procedure as above, but type;'" * "*DELETE '" 4 "in order to remove it. Note that a directory cannot be removed if it already contains something, and as such,$.Bill.Vera is the only deleteable directory in the above picture. All files are deleteable." > "PAGE" Hj "The *DIR command can also move [up] a level in the tree, by using the [up arrow]([^]) symbol.'" po "Now try using these commands, together with the *DIR command, in order to modify the above tree. " zf "The [current directory] is highlighted in red, and alloperations will be relative to it. " , "Hit [ESCAPE] to leave this program." 2 "'The commands are;'*CDIR, *DELETE, & *DIR'"  ""  $,-1,0 + Expenses,0,0,Letters,0,0,Programs,0,0 6 Bills,1,0,Mortgage,1,-1,Addresses,2,-1,BASIC,3,0 . Gas,4,-1,Phone,4,-1,Game,7,-1,Maths,7,-1  "",-1,0 ,D:7(&FF):7(0):K:2:tbC:4:1:L:  7(I) 4::M=0:Q=0:R=03 I<>&FFI=(4)-1 )G=8(I):I%=0R:d(I%)=G I%=R::drC :d(R)=G:0(G,1):0(I,2):I=&FF''"Please type in the full name of the red directory/file : "H$''"Please type in the name of the red directory/file relative to the green directory"'": "H$ %W=1(G,H$,I):Q$=K$:W M=M+1Q=Q+1 YW=I<>&FF1(G,H$,&FF)=@("Yes, but I want the RELATIVE name."):M=M+.5:Q=Q-1:TnD $08(W,M,Q):W='"The correct answer was ";Q$ .#0(G,0):0(I,0)::2(R,M)dhC 8 B0(G,_):G=&FF LrT=c(G):K=Z(G):5:0,_:0,128+I(T,K)+O(T,K)+4,984-K*128):&85,I(T,K)+O(T,K)+4,984-K*128:0,_+128:_=20,00,3 V;I(T,K)+O(T,K),1000-K*128:ĩI$(T,K),127);I$(T,K):4: `)ݤ1(G,R$,I):K$=3(G,I):=@(K$)=@(R$) jCݤ3(G,I):K$=$(J+G*16)::G=J?(G*16+11):G<>I K$=$(J+G*16)+"."+K$ t G=I:=K$ ~ݤ4(G,G$,o)m=G:G$=""=0 *:G$,".")<>0I$=G$,G$,".")-1)I$=G$ I$="."G$="":G=m:dND I$="$"G=0:dDD /I$="^"J?(G*16+11)<>&FFG=J?(G*16+11):dDD on=:I%=02:@($(J+(?(G*16+J+13+I%))*16))=I$(?(J+(?(G*16+J+13+I%))*16+12)=0o=)G=J?(G*16+13+I%):I%=2:n= +:n@("Directory not found"):G$="":G=m %G$,".")G$=G$,G$,".")+1)G$=""  G$="":=G Eݤ@(H$):H$,1)=" "H$,1)="*"H$=H$,2):H$,1)<>" "H$,1)<>"*" KI%:I%=1H$:H$,I%,1)>="A"H$=H$,I%-1)+((H$,I%,1))&DF)+H$,I%+1) ,:H$,1)=" "H$=H$,H$-1):H$,1)<>" " =H$ &8(W,M,Q)2:W'L$(M)''L$(Q+4)'  3:  "Correct!"  "Excellent!" ( "You've done this before!" 2- "Let's move on before you overwhelm me" < "No, I'm afraid not" F "Better luck next time" P8 "You don't seem to have got the hang of this yet" Z! "I suggest you start again" dݤ8(I):p=I:I=&FFI=0 n%:`=J?((I*16)+12+(3)):`<>&FFI=` x`=&FFI<>p:=I K::9(1) M=0:Q=0:R=03 +G=(13)-1:I%=0R:d(I%)=G I%=R::tVE S:d(R)=G:"Type the number of the following directory/file;"''3(G,&FF)' 8": "H$:H$=0H$,1)<>"0"@("Invalid input"):tjE Pe=H$:M=M-(e=G):Q=Q-(e<>G):8((e=G),M,Q):e<>G'"The correct answer was ";G' :2(R,M)tLE  9(0): a9(_):5:@%=2:I%=012:T=c(I%):K=Z(I%):I(T,K)-12-68,1000-K*128:0,_:I%:0,3::@%=&A0A:4: FL:G=0:h=G:0(G,1):4:">>"J$:9(J$)=@("I don't understand") : #ݤ9(J$):I%:J$=@(J$):J$=""= :J$,3)="DIR"h=G:0(G,0):G=5(G,@(J$,4))):0(G,1):= 'J$,4)="CDIR"A(G,@(J$,5)),0):= *J$,6)="CREATE"A(G,@(J$,7)),-1):= 'J$,6)="DELETE"B(G,@(J$,7))):= "0J$,6)="BACK"0(G,0):`=h:h=G:G=`:0(G,1):= ,= 6ݤ5(G,G$):=4(G,G$,) @@(L$):4:1:'L$':3: Joݤ6(G$)I$,N$:N$=G$:G$=G$,G$-1):G$,1)=".":G=5(G,G$,G$-1)):G$=N$:G$=G$,G$,".")+1):G$,".")=0:=G$ T.A(G,G$,V):X=G:S$=G$:G$,".")>1G$=6(G$) ^eZ(G)+1>=4@("No more levels allowed (N.B. This restriction does not apply to the disc)"): h G$>10@("Name too long"): r G$=0 |mG$,"`")G$,"*")G$,".")G$,":")G$,"$")G$,"&")G$,"^")G$,"@")@("Illegal character in name"): B5(G$,G,V):1:K=Z(G)+1:I%=06:I$(I%,K)=""I$(I%+1,K)=""tZF I(I%,K)+O(I%,K)>I(I%+1,K)@("You've spoilt my pretty picture - so I'm going to delete the directory/file"):I%=6::B(X,S$): :G=X:0(G,1): )B(G,G$):X:X=G:G$,".")>1G$=6(G$) FI%:f=4(G,G$,):f=X@("You can't delete it if you are in it!"): BI%=1315:J?(f*16+I%)<>&FF@("Directory not empty"):I%=15:: .:I%=1315:J?(G*16+I%)=f J?(G*16+I%)=&FF :M(f):1:G=X:0(G,1): uݤ2(R,M):'"You scored ";M;" out of a total of ";R':"Do you want to try this test again ?"H$:="Yy",H$+"N",1))  M(G)I%,J%:N=N-16:G=N16 UI%=015:J?(G*16+I%)=J?(N+I%)::I%=0N16:J%=1115:J?(I%+J%)=(N16)J?(I%+J%)=G  :: ^=&7C00:osargs%=&FFDA:osbyte%=&FFF4:osword%=&FFF1:oscli%=&FFF7:osgbpb%=&FFD1:osfile%=&FFDD =17"$.Utilities"TDA  init (G132:23,1,0;0;0;0;19,0,6;0;19,1,0;0;23,2,2,255,32,255,2,255,32,255 2 getfs<>5 *NET < title Fa=response P: Z a=10 12:'"Enter * command"''"Press RETURN to return to menu"':23,1,1;0;0;0;::"*"star$:oscli(star$):star$=-1:23,1,0;0;0;0;:Tr@ d a>10 tt@ n drC x X%=1 a: $prog%: p$="$.UTILS."+$prog%  p$ : drC  X%=1 a-32: help$: 135:disphelp(help$) space:Th@ : END: : -=17132::12::;" @ ";:space:Th@ :  init " string% &100,z% 3,prog% 30 , getfs<>5 *NET 6V%= @*fx225,128,0 Jget_lib_name ^ h: roscli($string%) |$X%=string%:Y%=X% &100: oscli%  :  title !26:16,1:0,0:&65,1280,1024  box(1,M("ANFS Utilities"))  drC 1 I%=1 8: A$:box(I%*2+2,(I%)+" : "+A$): *box(22,"* : To execute star command") /box(25,M("Number keys to run utilities")) 5box(27,M("SHIFT number for help on utilities")) ,box(29,M("RETURN to confirm choice "))  : ݤresponse a=  a>="!" a<="(" DDB &) a>="1" a<="8" a=a-"0": DDB 0 a=42 a=10:DDB : TRB D$inv:Q=: Q<>13 inv:a=Q: T\B N=a X: b END lV%=0: reset menu flag v9A%=225:X%=1:Y%=0: osbyte%:A%=226:X%=1:Y%=0: osbyte%  23,1,1;0;0;0;  A%=200:CALL osbyte%  : get_lib_name  X% 20 , name% 20 Y%=X%256:A%=7 X%!1=name%  osgbpb% $?(name%+13)=13:lname$=$(name%+3)  :  space  *fx15,1  '"Press SPACE to continue"  <>&20 TVC   *: 4 ݤgetfs >'X%=&70:Y%=0:A%=0:fs%=(osargs%)&FF H=fs% R: \ inv fi((a 32)*2+2) p a<10 i(25) a>32 i(27) z :  i(Y%) Y2%=(31-Y%)*32 *26:3,1:32,Y2%-4:101,1280-32,Y2%+36  box(Y%,A$):Y2%=(31-Y%)*32 \24,32;Y2%-4;1280-32;Y2%+36;18,0,129,16,24,36;Y2%;1280-36;Y2%+32;18,0,128,16,31,2,Y%:A$  : ݤM(A$)=(36-A$)2," ")+A$ : V"Archive","Getback","NetMgr","SetTime","CopyFiles","LogCopy","L2to3","SetStation"  disphelp(h$) $ :"EXEC": :" at line ":  ("EXEC $.help."+h$)  N%=0   N%=N%+1   "" lin$ h (N% 23)=22:131"(Press SHIFT to continue)";::(-1): 13:" ";:13  lin$,"================") 4 *EXEC > DP@  4:*FX4,1 X%255:0,129:24,0;900;1279;964;16:@(512,960,"AQUA-ATTACK",2):H%=5:0,H%)@("Z - Left "):'@("X - Right"):'@("] - Up "):'@("SHIFT - Down "):'@("RETURN - Fire "):17,1:'@("Or use joysticks & Fire button "):17,3 (0,H%+14)@("Q - Quiet"):'@("S - Sound"):'@(" COPY - Pause game"):'@("DELETE - Restart "):'@(" ESCAPE - End current game"):3,H%)"KEYS :":23;8202;0;0;0;:28,0,31,39,28,12:*RUN"$.LIBRARY.AAOBJ" 2 <$ݤ@(G$):=(34-(G$))2+6," ")+G$ F@(G,H,G$,I):0,I:5:G,H:A%=10:Y%=X%256:L%=1(G$):?X%=(G$,L%,1)):&FFF1:23,224:N%=14:X%?N%,X%?N%::23,225:N%=58:X%?N%,X%?N%::224,8,10,225,11::4: P<>17:" at line ";: Z)6:8,6)"This is the last program": =17"$.Utilities"132:  *FX4,1 t132:19,0,6;0;19,1,0;0;:23,2,2,255,32,255,2,255,32,255:1:2("Programming Utilities"):G$(4):I%=14:G$(I%): (m"1 : Character Designer","2 : Envelope Editor","3 : Pattern Fill Editor"," RETURN to confirm choice" 2hI%=14:''':@(1,,G$(I%),0)::0(-1,"Your selection :"):Q%=@(49,"3",1,4):Q%-"0"T|@,DF@,DP@ <"Chardes" F"EnvelInfo" P "Pfill" Z2(G$)0(0,G$): dݤ0(G$)=(36-G$)2," ")+G$ n80(_%,G$)a%:_%=0_%=1024-64:a%=1_%=-1_%=32:a%=30 xe24,32;_%-4;1280-32;_%+36;18,0,129,16:24,32+4;_%;1280-32-4;_%+32;18,0,128,16:31,2,a%:0(G$);: @(X%,Y%,G$,C%)_%:128+C%:C%+1:_%=1024-(Y%+1)*32:24,32;_%-4;1280-32;_%+36;18,0,129+C%,16:24,32+4;_%;1280-32-4;_%+32;18,0,128+C%,16:31,2,Y%:G$;:128:1: '1:26:16,1:0,0:&65,1280,1024: *ݤ@(L%,H%,T%,S%)Q%,V%,P%,`%:V%=:P%= Q%= Q%H%t`@ F@(1,T%+S%*(Q%-48),G$(Q%-48),1):31,P%,V%,Q%:`%=Q%:Q%=:Q%=13:=`% 8127:@(1,T%+S%*(`%-48),G$(`%-48),0):31,P%,V%:tj@ 130  TBH 23,1,0;0;0;0; (23;11,0;0;0;0; 2 Y%=250 <: Fsky P grass Z moat d castle n trees xportcullis : A=(1000) TVH grass !23,2,44,12,44,28,12,28,44,12 23,5,4,8,4,8,4,8,4,8  timearound%=0 7 64,0 randx%=(1280) randsize%=(300)+140  randx%,Y%  randx%+randsize%,Y%  &AD,randx%-10,Y% 0,0  randx%,Y%  randx%+randsize%,Y% " &A5,randx%-10,Y% , 6#16,0:box(640,0,1280,Y%+140,1) @!0,0: 0,Y%+140: 1280,Y%+140 J T: ^ sky h!23,4,62,61,62,61,62,61,62,61 r-48,0:box(640,Y%+140,1280,1024-Y%-140,1) |%0,3:ellipse(200,1000,200,200,1) cloud(940,990) bird(1080,780,32) bird(1140,820,32) bird(1192,864,32)  : bird(x%,y%,s%) 0,0  d%=s%/5 ) x%,y%: 1,3*d%,2*d%: 1,2*d%,-2*d% + x%,y%: 1,-3*d%,2*d%: 1,-2*d%,-2*d%  : cloud(x%,y%) 19,4,7;0; !23,2,61,63,62,63,61,63,62,63 29,x%;y%; & 0 x,y : 16,0:ellipse(x,y,100,50,1) D0,4:ellipse(x,y,100,50,0) N x=-1 X!16,0:ellipse(x,y,232,116,1) b20 l 29,0;0; v " 60,96,160,60,-184,40,-88,-88 $ -180,-36,-64,92,88,-92,204,-20  -1,-1 :  moat !23,2,52,62,56,61,52,62,56,61 $16,0:ellipse(640,Y%,610,100,1) #0,0:ellipse(640,Y%,610,100,0) !23,2,44,12,44,28,12,28,44,12 #16,0:ellipse(640,Y%,420,70,1) "0,0:ellipse(640,Y%,420,70,0)  :  castle  16,0 !23,2,42,21,42,21,42,21,42,21  front * turrets 4: >23,2,1,2,1,2,1,2,1,2 H>16,0: 592,Y%+8: 0,-40,-140: &55,698,Y%+8: &51,40,-140 R!23,5,19,35,19,35,19,35,19,35 \flag(390,Y%+480) fflag(890,Y%+480) p23,5,7,11,7,11,7,11,7,11 zflag(532,Y%+400) flag(724,Y%+400)  : flag(x%,y%) 0,4 x%,y%+4: 1,0,80  64,0  0,0,-32  &71,40,-4  &51,40,48  :  front  16,0:box(640,Y%,500,300,1) 0,0:box(640,Y%,500,300,0)  door $ pos%=480 800 80 .window(pos%,Y%+192,32) 8window(pos%,Y%+80,32) B Lramparts(640,Y%+300,500) V `: j door t0,0:600,Y%:&61,80,128 ~ :  turrets %16,0 : box(390,Y%-20,100,400,1) %0,0 : box(390,Y%-20,100,400,0) ramparts(390,Y%+380,100) window(384,Y%+240,32) window(390,Y%+140,32) %16,0 : box(890,Y%-20,104,400,1) %0,0 : box(890,Y%-20,104,400,0) ramparts(890,Y%+380,104) window(880,Y%+240,32) window(880,Y%+140,32)   : ramparts(x%,y%,s%) 23,3,42,0,21,0,42,0,21,0 (29,x%;y%; 2 h%=s%/2 < 32,0 F -h%,0: 0,-40,40 P &55,h%,0: 81,40,40 Z 16,0 dbox(0,40,s%+80,40,1) n: x pos%=-h%-40 h%+40 40 box(pos%+10,80,20,20,1)  :  0,0  h%+40,40: 1,-40,-40  1,-s%,0: 1,-40,40  1,s%+80,0: 1,0,40  -h%-40,40: 1,0,40 :  -h%-40,80  pos%=-h%-40 h%+40 40  pos%,80: 1,0,20  1,20,0: 1,0,-20  :  pos%=-h%+20 h% 40 " pos%,80: 1,20,0 , 6 29,0;0; @ J: Twindow(x%,y%,size%) ^box(x%,y%,size%,size%,1) h 0,-size%,0 r &51,size%/2,size%/2 | : portcullis !23,2,63,21,21,21,63,21,21,21  16,0 4N%=18:600,380:&65,680,384-N%*16:wait=(50):  : "ellipse(x%,y%,xr%,yr%,fill%)  x%,y%  x%+xr%,y%  fill%=1 &CD,x%,y%+yr%:  &C5,x%,y%+yr%  :  trees 23,2,2,0,2,0,1,0,1,0 &23,3,8,4,6,8,4,8,9,4 0tree(80,200,100) :tree(300,0,200) Dtree(1200,200,100) Ntree(980,0,200) X b: ltree(x%,y%,size%) v23,2,2,0,2,0,1,0,1,0  16,0 box(x%,y%,size%/4,size%,1)  32,0 4ellipse(x%,y%+size%*1.25,size%/1.5,size%/1.2,1)  :  box(x%,y%,width%,hght%,F%)  hlf% hlf%=width%/2  x%-hlf%,y% !F%=1 &65,x%+hlf%,y%+hght%: 31,0,hght%:1,width%,0:1,0,-hght%:1,-width%,0   @ER  <>17:" at line ";: :6  B8,6)"Do you want to go on to"'8)"the next program (Y/N)? "; * 4X%=32:X%="y"X%="n" > X%&DF HY%=(X%="y") RX%=:X%=13X%=127 \X%=127:127: f pY%:TJ@ z28,2,20,38,12:"$.Clown" 6 "FX4":"FX225 1":129: 129:1:23,1,0;0;0;0;:V=G:G=40:c%=&FFFF2800:4("Character Designer"):G=V:3:'''"This utility allows you to alter the shapes of the letters and numbers that appear on the screen."''"The controls used to do this are:"' ("Press a key at any time to select the character to be re-defined."':"Press the ";:2:"cursor keys";:3:" at the top right of the keyboard to move the cursor around."':"Press ";:2:"RETURN";:3 2" to change the colour of theblob ""underneath"" the cursor."':"Press ";:2:"DELETE";:3:" to select a character from the font list at the top of the screen - useful for defining characters that don't appear on the keyboard. Press ";:2 <"DELETE";:3:" again here to select."':"Press ";:2:"COPY";:3:" to save the new characters."':"Press ";:2:"TAB";:3:" to reset the characters."':"Press the ";:2:"space bar";:3:" to start defining your characters, or ";:2:"ESCAPE"; F3:" to exit.":=32 P dBA Z8Q=2-G40:128+Q:4("Character Designer"):G<>202(7) dN=G2-6:M=-(G=20)*7+11:135:N,M);12:I%=M+1M+10:N,I%);" ";:128:10;:135:" "::N,M+11);12:128:B%=1:`%=0:a%=0:0:"FX 4,2":"FX225 9":H$=20+21+22+23+24+9:"FX15":"FX138 0 "+×"a":H=:H<32H=0(H) nG$=H:128:7:H=137:tL@ xH=127G$=(1(_%)) FH$,G$)=08(G$):_%=G$H$,G$)t~@,tV@,t`@,tt@,tj@,dH@:0 H=9:DP@ `%=(`%-1)7: `%=(`%+1)7: a%=(a%-1)7: a%=(a%+1)7: 9: "FX25": M7:0:5(`%,a%,-1):b%(`%,a%)=b%(`%,a%)-1:0:A(_%):N+15,M+5);_%:0: IA(_%)128:7:23,_%:I%=07:O=0:J%=07:O=O*2+(b%(J%,I%))::O:: "5(X%,Y%,C%):C%=-13,70,C% _(X%+2+N)*(2^Q)*16+(2^Q)*16-1,1024-(Y%+2+M)*32-27:&65,(X%+2+N)*(2^Q)*16,1024-(Y%+2+M)*32: T8(_%)3:1(_%):I%=07:O=I?(I%+1):J%=70-1:b%(J%,I%)=-(O1):O=O2:,:B:0: )1(_%)?I=_%:X%=I:Y%=I256:A%=10:W: 0:4;`%+2+N,a%+2+M);: HB:I%=07:J%=07:5(I%,J%,((b%(I%,J%)))*7):,:N+15,M+5);_%: "83:G=2028,G2-8,17,G2+7,328,G2-16,10,G2+15,3 ,630,23,1,0;0;0;0;:I%=" "J-1+" ":I%=127" ": 6I%::26: @?ݤ1(_%):3:G=2028,G2-8,17,G2+7,328,G2-16,10,G2+15,3 J830,23,1,1;0;0;0;:(_%-" "),9);:H=:H<32H=0(H) KH=9:=_% T;K=H$,2),H):K=3((G=20=13)(G<>20=6)),0);:K=0 ^ K=4=0,6-(G=20)*7);:K=0 h#K=1=015-(G<>20)*16,);:K=0 r#K=2=15-(G<>20)*160,);:K=0 | KK+7 -H=127:G=20_%=*16++" "_%=*32++" " 26,23,1,0;0;0;0;:=_% 2(X)X:0,25);"Hit key for character"'"DELETE to select from above list"'"Cursor keys & RETURN to edit character"'"COPY key to SAVE"'"TAB to reset"'"ESCAPE for help":7: '4(G$)(G2)-(G$2),0);:C(G$): C(G$)I%,W%,V%:1(224):W%=I!1:V%=I!5:I%=1G$:D((G$,I%,1)),224)::23,224,W%,W%&100,W%&10000,W%&1000000,V%,V%&100,V%&10000,V%&1000000: VD(C%,S)J%,I%:1(C%):J%=01:23,S:I%=29:I?(J%*4+I%2)::S,10,8::11,11,9: =17TT@ ::" at line ";:*FX 4  9:3:G<>202(0) UG<>20@("Please wait - compiling font preparatory to saving.")@("Please wait") \E:"FX4":G<>20@("What do you want to call this font ?"):""G$@("Font name ?"):""G$ G$=""@(""):TRB Q"S."+G$+" "+~R+"+744"+2," "+~c%):@("Saving complete"):H=:"FX138 0 "+H /"FX4 2":G<>200,25);(50)0,30);(39); G<>202(7) & 0F@(G$)G<>200,25);(80);0,25);G$;:0,30);(39);0,30);G$;: :!ݤ2:Y%=0:A%=0:=((&FFDA))&FF DE:L=&FFEE:T=462:O%=R:P%=c%:[OPTT:.f:LDY#J-1:.Y:LDA#23:JSRL:TYA:CLC:ADC#" ":JSRL:LDAZ,Y:JSRL:LDA_,Y:JSRL:LDA`,Y:JSRL:LDAa,Y:JSRL:LDAb,Y:JSRL:LDAc,Y:JSRL:LDAd,Y:JSRL:LDAe,Y:JSRL:DEY:CPY#&FF:BNEY:RTS:.Z:OPT@(J):._:OPT@(J):.`:OPT@(J):.a N{OPT@(J):.b:OPT@(J):.c:OPT@(J):.d:OPT@(J):.e:OPT@(J):]:I%=0J-1:1(I%+" "):J%=07:R?(&44+I%+J%*J)=I?(J%+1):,: Xݤ@(U)P%=P%+U:O%=O%+U:=T b^6:b%(7,7),I 8,R&744:W=&FFF1:g=&FFF4:J=224:I?1=80:I?2=40:I?4=20:4,26,12:(81);:G=I?: lݤ0(H):-58:=24 v -42:=23  -26:=21 -122:=22  -97:=9 -106:=20  H=13:=H =&FF Cloud  dhC *SHADOW 1 (130 22 <*fx9 F *fx10 P 23,1| Z23,13,8,9,9,8,8,9,9,8 d19,8,3|19,9,7| n23,12,6,7,7,6,7,6,6,7 x *FX112,1 mount sun(640,970,1) cloud(636,704) *FX112,2 mount sun(640,970,1) cloud(636+16,704) 'X%=5:S%=10:D%=1:DD%=0:one%=1:two%=2 NOW= lap%=03  28,X%,14,X%+S%,5 I%=03 scr%=one% two% D% "FX112,"+scr% "FX113,"+(scr%3) "7scr%=two% I%=3 lap%=3 X%+D%<=023,7,0,DD%,1| ,, 6 X%=X%+D% @X%+S%>=19 X%<=0 J$X%=X%-D%:one%=one%3:two%=two%3 TD%=-D%:DD%=1-DD% ^ lap% hdull_rain r d|C |cloud(x%,y%)  29,x%;y%;   x,y  16,0:ellipse(x,y,100,50,1) 0,4:ellipse(x,y,100,50,0)  x=-1 !16,0:ellipse(x,y,232,116,1) 29|  " 60,96,160,60,-184,40,-88,-88 $ -180,-36,-64,92,88,-92,204,-20  -1,-1 "ellipse(x%,y%,xr%,yr%,fill%)  x%,y%  x%+xr%,y% & fill%=1 &CD,x%,y%+yr%: 0 &C5,x%,y%+yr% : D mount N 0,128+6 X 128+6 b lX%=(-456) vX%=0:Y%=200  DY%=1  X%,Y% 0,0  I%=140  J%=03  X%=X%+8 Y%=Y%+DY%*4 Y%>500 Y%=500  X%,Y%  DY%=4-(7)  0,2:0,128+6  &85,10,4   sun(X,Y,D)  D=1 32,0 0,6 *X,Y 4&9D,X+50,Y > Hdull_rain:bank%=2 R#sun(640,970,0):sun(648,962,1) \I%=64013508 f"FX112,"+bank% p"FX113,"+(bank%3) z X%=I%  X%-50,920+640-X%:0,116,116 &BD,X%+16-50,920+640-X%-16 X%=1104 "FX19":19,8,1| X%=1000 "FX19":19,6,4| X%= 904 "FX19":19,9,1| X%= 800 "FX19":19,9,3| bank%=bank% 3  "FX19":19,6,0|19,4,0|   @ER <>17:" at line ";: 2:130:6 B8,6)"Do you want to go on to"'8)"the next program (Y/N)? ";  X%=32:X%="y"X%="n" $ X%&DF .Y%=(X%="y") 8X%=:X%=13X%=127 BX%=127:127: L VY%:TJ@ `@ch j1("SHADOW 1"):1:28,2,20,38,12:"$.Patterns" 130  TdD 23;11,0;0;0;0; (: 229,640;480; <: F clown P: Z A=(1000) d TxD n clown x face bow nose mouth eyes hat  : face !0,7:ellipse(0,40,332,400,1)  : nose 0,1:ellipse(0,0,64,64,1) 0,7:ellipse(32,32,8,8,1)  : " mouth ,0,0:segment(0,-64,32,208) 60,1:segment(0,-64,32,200) @0,0:segment(0,-64,32,100) J0,7:segment(0,-60,32,92) T&0,0:0,-64:0,-150,-32:&A1,300,0 ^: h!0,0:segment(-152,-96,0,-48) r!0,1:segment(-152,-96,0,-40) | 0,0:segment(152,-96,0,-48)  0,1:segment(152,-96,0,-40)  :  eyes  0,4:segment(160,160,0,-80) segment(-160,160,0,-80) 0,0 ,cross(160,160,100):cross(-160,160,100) 0,7 8ellipse(-160,160,56,56,1):ellipse(160,160,56,56,1) 0,0 8ellipse(-160,160,64,64,0):ellipse(160,160,64,64,0) "-160,160:0,24,32:&B1,16,-32 !160,160:0,24,32:&B1,16,-32  : & bow 00,2 :#0,-400:0,-256,160:&51,0,-320 D"0,-400:0,256,160:&51,0,-320 Nellipse(0,-400,64,64,1) X!0,0:ellipse(0,-400,64,64,0) b19,6,0;0; l1,6 v ypos%=-500 -200 100  xpos%=-300 300 100 xpos%,ypos%:&99,16,0   xpos%=-350 350 100 xpos%,ypos%-50:&99,16,0    :  hat !23,3,49,49,49,49,50,50,50,50 0,4:-400,320:&65,400,288 0,5:segment(0,324,0,-272) 0,3:-272,324:&65,272,368  0,2 "368,290:500,400:&A5,216,372  "0,3:ellipse(500,400,24,24,1) *"3,4:ellipse(500,436,16,16,1) 4ellipse(500,366,16,16,1) >ellipse(544,400,16,16,1) Hellipse(454,400,16,16,1) Rellipse(530,424,16,16,1) \ellipse(470,376,16,16,1) fellipse(530,376,16,16,1) pellipse(470,424,16,16,1) z : cross(x%,y%,s%) x%-s%,y%-4:&61,2*s%,8 x%-4,y%-s%:&61,8,2*s%  : segment(x%,y%,d%,r%) x%,y%:x%-r%,y%-d% &AD,x%+r%,y%-d%  : "ellipse(x%,y%,rx%,ry%,fill%) x%,y%:0,rx%,0 fill%=1&C9,-rx%,ry%: &C1,-rx%,ry%  $ @ER .<>17:" at line ";: 8@ch B:6 LB8,6)"Do you want to go on to"'8)"the next program (Y/N)? "; V `X%=32:X%="y"X%="n" j X%&DF tY%=(X%="y") ~X%=:X%=13X%=127 X%=127:127:  "Y% 28,2,20,38,12:"$.Shapes"  :TJ@ 7:23,1|:"FX200,3":"SRWRITE "+~P+" +500 8000 4":"INSERT 4":I%=67:11,I%)&8D"Converter program";::5,10)"Now press BREAK and follow the":7,12)"normal loading procedure.";:D%=:0: L5!Acornsoft Converter1.10(C) Acornsoft 1985''%`H  h`H a h`lHrHقݽكhrޢ ݍiݍݭ ց C Gީ h`DISC ڠ f*m0Q)m.h  )8A6h+m 0)hZȹm z ,`hee@ L]  $Z~ z ^Li `ȱ `CATLOADDISCCODELINETAPETYPEں ց]Fکg hFCF すhD& LBɁ` L$) ,j0 jt`j-tލtj`j-sލs,Z ~ݭ 8mjޑڬjszL.ޭ .Hj#LݭU hH ݥ) hڮl .ގl h 1 . GHuޅh`x0޹ł(` d l ݩ` lH B%H 0 ii h0h`} rލr`HH0 h0hPlJJJJJ ddܽg۽,g`@ ZH ~"hH څܥH 0ڑ܈h0hz`H0 h0PlލޥH0 h0`hH8ns ~ gZH 0ܑh0zhlHڢg޽ޝgh`Hڢg޽ޝgh`Not foundEscape  #%(*-/2479<>ACFHKM +132:23,2,2,255,32,255,2,255,32,255:A :132::  *FX4,1 ([23,16,0,0,0,0,0,0,0,0:23,1,0,0,0,0,0,0,0:i%&1A00:c%=4-1:b%(c%),k%(c%):H$(c%),H(c%) 25 21,Name,3,81,Address,5,13,Tel.,10,13,Birthdy,12 0:`%=`%-1 PG=138`%1:2 dG=137_%32:=G$=G$ ;ݤ2(G$)G$,1)=" "G$=G$,1,G$-1):G$,1)<>" ":=G$=G$ _ݤ1(G$)I$,I%:I%=1G$:G$,I%)>="a"G$,I%)<="z"K$=(G$,I%)-"a"+"A")K$=G$,I%) I$=I$+K$::=I$ #ݤ6(P%,V%,L%)31,P%,V%:A%,G$: A%=:A%=13:=G$ QG$>L%A%<>1277:dVAA%=127G$=07:dVAA%=127G$=G$,G$-1):127:dVA A%<"0"A%>"9"7:dVA G$=G$+A%:A%:.  ݤ4(P%,V%,L%)31,P%,V%:G$: A%=:A%=13:=G$ QG$>L%A%<>1277:THBA%=127G$=07:THBA%=127G$=G$,G$-1):127:THB A%<32A%>1267:THB &G$=G$+A%:A%:. 052:C%:C%=_%:C%=C%-1:0(C%)(C%<1):C%>=1_%=C% : D73:C%:C%=_%:C%=C%+1:0(C%)(C%>d%):C%<=d%_%=C% N X$K:I%,C%:C%=_%:I%=110:2:: b$L:I%,C%:C%=_%:I%=110:3:: lM:C%:C%=_%:_%=d%+1:2: vE:C%:C%=_%:_%=0:3:  B:h% 4(11,16,"",0):2,16)"Use these keys :":2,18)"E to edit the data, F to find a word,":2,20)"L to load the data, to move up,":2,22)"S to save the data, to move down,":2,24)"R to restore to the whole file and" 82,26)" and to move through the records.":h%=: J:h%=:4(11,16,"",0):2,16)"Type the piece of text which you":2,18)"want to find and then press RETURN.":2,20)"":2,22)"Note that CAPITAL and lower case":2,24)"letters are treated as being":2,26)"the same.": F:h%=:4(11,16,"",0):2,16)"Type the new piece of data and then":2,18)"press RETURN. If you make a mistake":2,20)"then you can use the DELETE key to":2,22)"go back and make a correction.":2,24)"":2,26)"": 4(L%,Y%,G$,C%)a%:128+C%:C%+1:a%=1024-(Y%+1)*32:24,32;a%-4-32*L%;1248;a%+36;18;129+C%,16,24,32+4;a%-32*L%;1244;a%+32;18;128+C%,16,28,2,Y%+L%,39,Y%:G$;26:128:1: 1(e%):L%=H(e%):G$=H$(e%):X%:X%=1028-L%*32:24,60;X%-40;356;X%;18,3,129,16:Y%=H(e%):L%=(b%(e%)-1)24+1:24,444;1020-(Y%+L%)*32;1220;1028-Y%*32;18,3,129,16: *FX25 26,12:1:2:132: 2Q@("Mini-Database"):28,2,28,37,1:'''"Would you like instructions ? (Y/N)"; PAA%=32:A%=("N"32)A%&DF:t~@A%=("Y"32)A%&DFDP@ d::G$:G$="|"@:. G$=".":. ':3(G$):G$="":@ "$.Dbase" Y@:"FX15":0(-1,"Press the SPACE BAR to continue"):=32:0(-1,""):28,2,28,37,1: v"This program is a very simple database which has been set up in the style of an address book card index system." "Each card contains 4 slots; one each for the name, address, telephone number and birthday of a particular person. Details of up to 50 people can be held at once." "You can move through the different cards using the right and left arrow keys which will move you on one and back one respectively." ""To move between the different slots within a particular card use the up and down arrow keys. The current slot is always highlighted in black." , "|","." 6"Initially the address book contains no information, each of the slots in it is blank. To enter information for a person you should move to and EDIT each slot in turn." @W"Simply press E, type in the information you wish to store and then press RETURN." Ji"A maximum number of characters has been allocated to each of the pieces of information as follows:" T!" name 20 characters" ^!" address 80 characters" h!" tel. 12 characters" r!" birthdy 12 characters" | "|","." "You can SAVE the information currently held in the database at any stage by pressing S. This will save it under the name 'FILE' on the current filing system." "Similarly pressing L will LOAD the information in 'FILE' into the computer. However, be warned, when you do this the information currently in the database will be overwritten." `"Hence any additions or changes you have made since you last loaded the file will be lost." "If you wish to EDIT any information then you can do it in a similar way to entering it. When you press E then the current slot will be cleared so that your new data can be typed in."  "|","." "The most useful feature of this Address Book is that you can use any one piece of information about a person or group of people to find others." "For example you can quickly look up someone's telephone number by entering their name or you can find the names and addresses of all the people who have birthdays in the next month etc." "To do this you should initially move to the slot which corresponds to the piece of information you know. In the first example this would be the top slot, 'name', in the other it would be the bottom one, 'birthdy'." b"Then press F and type in the information you know, eg SMITH or AUGUST etc and press RETURN."  "|","." "The computer will quickly FIND the cards you are looking for. A message will be given at the bottom of the screen saying how many have been found and you will be moved to the first one." b"Then when you use the right and left arrow keys you will move only between the cards found." s"Similarly if you do a further search then this again will only be carried out on the cards found previously." "Hence a search for those named 'SMITH' followed immediately by one for those whose address is in 'LONDON' will find all the people who are called SMITH and who live in LONDON."  "|","." "If you wish to return to the whole file then press R. This will RESTORE the file for you. This is done for you automatically if no cards are found in a search." &n"Note that the computer will search through for cards which contain the information you give it exactly." 0"Hence searching for 'A Smith' will not find 'A J Smith' or 'A.Smith' or 'A Smith' etc. However it will find 'ANGELA Smith' and 'Mr. A Smith' and even A SMITH since upper and lower case letters are treated as being equivalent." :"" NI3(H$):G,H,G$:H=1:H$=H$+" "::G=H$," ",H):G$=H$,H,G-H):G4:H=G+1  G=H$: 4:G$+>36'G$" ";: G$+<36G$" ";:  G$;: '1:26:16,1:0,0:&65,1280,1024: >%2:5(28,1,"",0):28,2,28,37,1: p80(_%,G$)`%:_%=0_%=1024-64:`%=1_%=-1_%=32:`%=30 zZ24,32;_%-4;1248;_%+36;18;129,16,24,32+4;_%;1244;_%+32;18;128,16,26,31,2,`%:@(G$);: 5(L%,Y%,G$,C%)_%:128+C%:C%+1:_%=1024-(Y%+1)*32:24,32;_%-4-32*L%;1248;_%+36;18;129+C%,16,24,32+4;_%-32*L%;1244;_%+32;18;128+C%,16,28,2,Y%+L%,39,Y%:G$;26:128:1: ݤ@(G$)=(36-G$)2," ")+G$ _%=0:i%=0:9:DF@ 135:>&7FFF128 9X%=&80:Y%=0:A%=0:m%=((&FFDA)&FF):m%<>8*FX143,18,8 (o%=&FFDD:j0%=&FFD1:s0%=&FFF1:t0%=&FFF4:u0%=&FFF7:v0%=&FFCE:M$="$":I$(10),J$(10),k0%(10),l0%(10),m0%(10),n0%(10),e0%(10),j%&100,a%20,d%20:`%&100,c%&100,e%&100,t%&100,p%&100,k%&100,q%&100,o0%12:w0%-1:f%=-w0%-&600:u%f%:v%=:A%=&70:0(u%):s0% 2(?(u%+1)&20)v%= <<''" Dircopy 2.67"'" Return for Help, Q to Quit" FA%=229:X%=0:Y%=0:t0%:z%=0:w%=f%:x%=u%:_0%=2:g%=-1:n%=0:''"Source Drive ",G$:f0%=2(G$):f0%:G$="Q"G$="q"d\@`0%=(G$) PL'"Destination drive ",H$:f0%=2(H$):f0%:H$="Q"H$="q"d\@g0%=(H$) ZNb%=:`0%<>g0%v%`0%<4'"Do you want disc change prompts (Y/N) ";:b%=0 d9b%(`0%<4v%)'"Put source disc into drive "+G$:3 nG`0%=g0%b%(g0%<4v%)'"Put destination disc into drive "+H$:3 x9'"Source root ? "+M$;:""$e%: ?e%="*"@($e%):Dx@ $e%=":"+G$+"."+M$+$e% >'"Destination root ? "+M$;:""$c%: ?c%="*"@($c%):tL@ g$c%=":"+H$+"."+M$+$c%:!a%=c%:0(a%):A%=5:m%=(o%)&FF:m%=2'"No such destination directory":tL@ G$<>H$b%tt@ :_%=($c%):#_%=&4CC:I%=012:o0%?I%=#_%:I%:#_%:_%=0 b%2 1:15:*OPT 1,0 *CAT o"Begin at which entry ",N$::N$=@(N$):A:7:'"Copy complete. "':z%;z%;" read protected files ignored"' V%+&C00=B  7:a0%,b0%:a0%=0 @1:a%!1=j%:a%!5=1:a%!9=a0%:0(a%):A%=8:j0%:a%!55():TvA #C:$`%=$(j%+1):@($`%)2(p0%1)=0"Ignoring read protected file "+$e%+"."+$`%:z%=z%+1:TlA b0%=15():TlA "b0%=25():4:7:D ,a0%=a0%+1:dz@ 6 @Bݤ4:N$="":$p%=$e%+"."+$`%:$t%=$c%+"."+$`%:G$<>H$b%y%=:D^A J7y%=:_%=($p%):#_%=&4CC:I%=012:#_%<>o0%?I%y%= TTI%:#_%:_%=0:y%"Not copying directory "+$p%;" to avoid infinite recursion":= ^l%=0D|A hOq0%=0l%-1:@($p%,(I$(q0%))))=I$(q0%)"Not copying directory "+$p%:y%= r | y%= )1:2:!a%=t%:0(a%):A%=5:m%=(o%)&FF Dm%=0''39,"*")'"Creating "+$t%'39,"*")':@("Cdir "+$`%):tdA `m%=2'"Can't create directory "+$t%+" , file of this name exists":1($`%,)=m%=0:tPA $e%=$p%:$c%=$t%:n%=:= /D:1:8(e%):@("dir ^"):8(c%):$`%=$z0%: 1:_0%=1djA b%=d`A b%@("DISMOUNT") B'"Please put source disc into drive "+G$:3:b%@("MOUNT"+G$) n%=:_0%=1 n%@("DIR "+$e%):n%=  2:_0%=0TpB b%=TfB b%@("DISMOUNT") G'"Please put destination disc into drive "+H$:3:b%@("MOUNT"+H$) &n%=:_0%=0 0n%@("DIR "+$c%):n%= : D3:*fx15,1 N*"Press RETURN when ready";:=13:: Xsݤ2(K$):c0%=:(K$)<>-1v%'"Drives can be numbered 0, 1, 4 or 5":=c0%'"Drives can be numbered 0 or 1":=c0% bK$,1)="*"@(K$) l(K$)=1"Qq0145",K$)c0%= v=c0% .C:T%=10::(j%?T%)<>&20j%?(T%+1)=&D:T%=1 T%=T%-1:T%=0: F8(d0%):I%=($d0%):I%=I%-1:d0%?I%=".":d0%?I%=&D:z0%=d0%+I%+1: @A:'"Please input sub-directories"'"not to be copied":l%=0 ="A"h0%<="Z"k%?r0%=h0%  :=$k%  5(_1%)  _1%6: g%=96:ddB h%>w%6:h%>w%E: F:  E:2:1($`%,) k"Copying "+$e%+"."+$`%+" as "+$c%+"."+$`%:r%=0:i0%=0::h%r%=r%+1:h%=h%-f%:i0%=1:h%<0:b%1:#i%:i%=0:2:#_%:_%=0 49$j%=$c%+"."+$`%:?a%=j%:a%?1=j%&100:0(a%):A%=1:o%: >!4(L$,s%,`1%,a1%):s%>212 Hi0%s%>2i%=3(L$)_%=L$ R&i0%=0b%=s%>2i%=3(L$)_%=L$ \s%>2 ?d%=i%?d%=_% fNd%!1=u%:d%!5=`1%:d%!9=a1%:0(d%):A%=s%:j0%:b%=s%>2#i%:i%=0#_%:_%=0 p zF:1:g%=g%+1:J$(g%)=$`%:n0%(g%)=x0%:m0%(g%)=y0%:l0%(g%)=h%:e0%(g%)=p0%:k0%(g%)=x%:"Reading "+$e%+"."+$`%:@("LOAD "+$`%+" "+~(x%)):x%=x%+h%:w%=w%-h%: 6:g%=-1 "2:I%=0g%:1(J$(I%),)tlC "Writing "+$c%+"."+J$(I%):@("SAVE "+J$(I%)+" "+~(k0%(I%))+"+"+~(l0%(I%))+" "+~(m0%(I%))+" "+~(n0%(I%))):e0%(I%)&B=3tlC 3$j%=J$(I%):!d%=j%:d%!&E=e0%(I%):0(d%):A%=4:o% I%:x%=u%:w%=f%:g%=-1: ݤ1($q%,H):Hd^C JA%=5:0(d%):!d%=q%:A%=(o%)&FF:b1%=(d%?1410):(A%=0)(A%=1b1%=2)= mA%=2;"Can't write file ";$q%;" , directory of this name exists"'"PRESS SPACE BAR TO CONTINUE":-99:= *"Destination ";$q%;" write protected"  "OVERWRITE (Y/N) ?";:0= &"ARE YOU CERTAIN (Y/N) ?";:0= *@("ACCESS "+$q%):@("DELETE "+$q%):= ݤ0:*FX15,1 &O$=:G="*NnYy",O$):G>1:O$:=G>3  0(c1%):X%=c1%:Y%=X%&100: @($k%):0(k%):u0%: $5ݤ3(Q$):$k%=L$:A%=&40:X%=k%:Y%=k%256:=(v0%)&FF . 9:::_%d1%=_%:_%=0:#d1% 8i%e1%=i%:i%=0:#e1% B=17=&C6d\@ L V(B:"Press SPACE to return to menu" `<>&20D`D j =V%:: *FX25 1:2:132: 2E@("Envelope Editor"):'''"Would you like instructions ? (Y/N)"; F/A%=&DF:A%="Y"A%A%="N"A%:tt@DF@ Z::G$:G$="|"@:. G$=".":. ':3(G$):G$="":@ "Envelope" Y@:"FX15":0(-1,"Press the SPACE BAR to continue"):=32:0(-1,""):28,2,28,37,1: "The BBC BASIC language has a command, ENVELOPE, which allows you to define the type of sound produced by the sound command." "This program allows you to alter any of the parameters of the envelope statement and hear the effect that this has on the sounds produced."  "|","." E"A box is given for each of the fourteen parameters as follows:" "+"Number-Envelope number " ,+"Length-Length of each step 1/100sec " 6+"Pstep1-Change of pitch per step in 1" @+"Pstep2-Change of pitch per step in 2" J+"Pstep3-Change of pitch per step in 3" T+"Steps1-Number of steps in section 1 " ^+"Steps2-Number of steps in section 2 " h+"Steps3-Number of steps in section 3 " r "|","." |+"AstepA-Amplitude change in attack " +"AstepD-Amplitude change in decay " +"AstepS-Amplitude change in sustain " +"AstepR-Amplitude change in release " +"Peak -Target level at end of attack" +"Level -Target level at end of decay "  "|","." {"You can move between the boxes by using the right and left arrow keys. The current box will be highlighted in black." o"To increase or decrease the value held in the current box press the up and down arrow keys respectively." ֑"With this program you may define two different envelopes. To change between the two you should change the value in the first box 'Number'." f"When you do this the current parameter values for the envelope you have selected will be shown."  "|","." "So that you can quickly hear how altering one of the parameters to the envelope statement affects the sound produced, the computer's keys have been turned into 2 mini-keyboards :" k"Envelope 1 controls the sound of the bottom keyboard and envelope 2 the sound of the upper keyboard." "The red function keys f0 to f9 have been set up to contain some interesting envelope definitions. Pressing one of these keys will load its values into whichever envelope is currently being edited." "If you want to alter one of the predefined envelope definitions by replacing it with your current envelope then press COPY followed by whichever red funciton key you wish to replace." "" 0I3(H$):G,H,G$:H=1:H$=H$+" "::G=H$," ",H):G$=H$,H,G-H):G4:H=G+1 v G=H$: 4:G$+>36'G$" ";: G$+<36G$" ";:  G$;: '1:26:16,1:0,0:&65,1280,1024:  %2:5(28,1,"",0):28,2,28,37,1: R80(_%,G$)`%:_%=0_%=1024-64:`%=1_%=-1_%=32:`%=30 \Z24,32;_%-4;1248;_%+36;18;129,16,24,32+4;_%;1244;_%+32;18;128,16,26,31,2,`%:@(G$);: p5(L%,Y%,G$,C%)_%:128+C%:C%+1:_%=1024-(Y%+1)*32:24,32;_%-4-32*L%;1248;_%+36;18;129+C%,16,24,32+4;_%-32*L%;1244;_%+32;18;128+C%,16,28,2,Y%+L%,39,Y%:G$;26:128:1: zݤ@(G$)=(36-G$)2," ")+G$ 4: ne%(14),f%(14),b%(2),P%(2,14),P$(14),Pc%(10,14),i%500,O 63,Q 63,R 63,H 3,K 3,G 3:I%=114:e%(I%),f%(I%): p1,4, 0,255, -128,127, -128,127, -128,127, 0,255, 0,255, 0,255, -127,127, -127,127,-127,0,-127,0,0,126,0,126 (b%(1)=1:b%(2)=2:DTA:G$:I%=063:O?I%=("&"+G$,2*I%+1,2))::L=&80:I=&81:J=&82:T=&FFF4:U=64:V=64:4:!G=0:dp@:I%=110:J%=114:Pc%(I%,J%):,:P%(1,1)=1:P%(2,1)=2:E%=2:@:E%=1:@:@%=4:4:23,2,2,255,32,255,2,255,32,255:19,0,6,0,0,0,19,1,0,0,0,0 2l5:23;&200A;0;0;0;:tt@:I%=114:P$(I%)::N%=0:P%=1:1():6::S:`%=13:N%=G?`%:N%>&2FH?`%7::0 <H?`%=0`%+&1010,0,0,0::0 FN%>&18g%=2g%=1 PK?`%`%+16,b%(g%),N%*4,-1 Z:0 d=7:N%<&3AI%=214:P%(E%,I%)=Pc%(N%-&2F,I%)::1():@: nTN%=&3Aj%=!G:S:G?3>=&30G?3<=&39:I%=214:Pc%(G?3-&2F,I%)=P%(E%,I%)::!G=j%: xK?`%=0tV@ 'N%=&3BP%>10(P%):P%=P%-1:0(P%): (N%=&3CP%<140(P%):P%=P%+1:0(P%): uN%<>&3DN%<>&3EP%=1 E%=E%3:1():@:Q%=P%(E%,P%)+N%*2-&7B:Q%<=f%(P%)Q%>=e%(P%):P%(E%,P%)=Q%:2(P%,0):@:  @:E%,P%(E%,2),P%(E%,3),P%(E%,4),P%(E%,5),P%(E%,6),P%(E%,7),P%(E%,8),P%(E%,9),P%(E%,10),P%(E%,11),P%(E%,12),P%(E%,13),P%(E%,14): cNumber,Length,Pstep1,Pstep2,Pstep3,Steps1,Steps2,Steps3,AstepA,AstepD,AstepS,AstepR,Peak,Level -1(h%)I%=114:8(I%,-h%):2(I%,-h%):: %2(I%,a%)9(I%,a%):P%(E%,I%);: :9(I%,a%)3(((I%-1)3)*8+4,(I%-1)4*6,6,3,I%=P%,a%): .0(I%)A(((I%-1)3)*8+4,(I%-1)4*6,6,3): @8(I%,a%)3(((I%-1)3)*8+4,(I%-1)4*6-2,6,1,0,a%):P$(I%): '1,1, 0,0,0,0,0,0, 2,0,-10,-5,120,0 ,2,3, 0,0,0,0,0,0, 121,-10,-2,-5,120,120 ,3,7, 2,1,1,1,1,1, 121,-10,-2,-5,120,120 ,4,1, 0,48,0,4,255,4, 121,-1,-1,-1,120,0 (5,1, 0,0,0,0,0,0, 61,0,-10,-1,120,0 "-6,8, 1,-1,1,1,1,1, 121,-10,-2,-5,120,120 ,.7,4, 1,-1,1,1,1,1, 121,-10,-8,-12,120,120 6)8,1,0,36,0,4,186,2,110,-6,3,10,100,0 @$9,1,6,6,6,6,6,6,6,6,-6,-6,120,0 J+10,8,2,-10,1,1,9,1,126,-4,-1,-3,96,106 T00BE9EAEBDCDAD9CAC9BABAA9AB999A998A897FF0000000000CFEFCEDEEEDDCCECDCCBBBCAEADAD9C9D8C8B8E7C787D7DF8E8D8CEB8B8AE9898896E686D6C68F ^4I%=022:P%=i%:[OPTI%:.S:LDX#0:STXI:STXL:.M:INCL:LDYL:CPY#U:BEQW:LDXO,Y:BEQM:LDY#&FF:LDA#&81:JSRT:CPX#0:BEQM:LDXI:LDAL:STAQ,X:INX:STXI:CPX#V:BNEM:.W:LDX#3:LDA#0:.X:STAH,X:STAK,X:DEX:BNEX:LDXI:BEQN:STAJ:LDX#0:.Y:LDAQ,X:LDY#3:.Z:CMPG,Y:BEQ_:DEY hBNEZ:LDYJ:STAR,Y:INCJ:.`:INX:CPXI:BNEY:BEQa:._:LDA#1:STAH,Y:BNE`:.a:LDYJ:BEQN:LDY#0:.b:LDX#3:.c:LDAH,X:BEQd:DEX:BNEc:BEQN:.d:LDAR,Y:STAG,X:STAH,X:STAK,X:INY:CPYJ:BNEb:.N:LDX#3:.e:LDAH,X:BNEf:STAG,X:.f:DEX:BNEe:RTS:]::*FX4,1 r$C:19,0,6,0,0,0,19,1,0,0,0,0: |'5:26:16,1:0,0:&65,1280,1024: 8D(_%,G$)d%:_%=0_%=1024-64:d%=1_%=-1_%=32:d%=30 Z24,32;_%-4;1248;_%+36;18;129,16,24,32+4;_%;1244;_%+32;18;128,16,26,31,2,d%:@(G$);: -3(X%,Y%,L%,W%,C%,a%):Y%=Y%+4:a%=0tnA 24,X%*32-4;1024-(Y%+W%)*32-4;32*(X%+L%)+4;1024-Y%*32+4;18;129+C%,16:24,X%*32;1024-(Y%+W%)*32;32*(X%+L%);1024-Y%*32;18;128-C%,16 )26,31,X%,Y%+W%2,17,1+C%,17,128-C%: bA(X%,Y%,L%,W%):Y%=Y%+4:24,X%*32-4;1024-(Y%+W%)*32-4;32*(X%+L%)+4;1024-Y%*32+4;18,3,129,16: -ݤ@(G$)G$=0(1(G$)):=(36-G$)2," ")+G$ -ݤ1(G$)G$=32G$=G$,2):G$<>32:=G$=G$ ;ݤ0(G$)G$,1)=" "G$=G$,1,G$-1):G$,1)<>" ":=G$=G$ 6:B(3,27,"",0):2,27)"Use the normal keys to play notes,":2,28)"f0..f9 to choose preset envelopes,":2,29)" / to move through the boxes.":2,30)" / to increase / decrease a box.": B(L%,Y%,G$,C%)_%:128+C%:C%+1:_%=1024-(Y%+1)*32:24,32;_%-4-32*L%;1248;_%+36;18;129+C%,16,24,32+4;_%-32*L%;1244;_%+32;18;128+C%,16,28,2,Y%+L%,39,Y%:G$;26:128:1: Brown P.M. td 22 Foster Close Sheffield Yorkshire CB2 1LQ 1234 11111 21 November Brown W. rketing ltd 31 Simon Street Caistor Lincolnshire 1234 22222 3 March Cook P.C. uters 4 William Street Girton Cambridgeshire 1234 33333 4 June Daniels L.J. 118 Chichester Road Girton Cambridgeshire 1234 44444 16 February Davidson F. 99 St. Thomas Close Portsmouth Hants. 1234 55555 4 February Jackson E. 71 High Street Yate Avon 1234 66666 17 December Martin P.M. 2 Park Lane Harrogate Yorkshire 1234 77777 17 March Porter W.A. 271 Queen's Way Birmingham 1234 88888 13 February Richards S.R. 104 Tower Place Nottingham 1234 12345 22 January Smith M.F. 98 St. Peter's Avenue Hull North Yorkshire 1234 23456 13 June Turner S. 14 Palace Square Bath Avon 1234 34567 7 May Williams G. 53 Kings Parade Grimsby South Humberside 1234 45678 2 March o .........*.......*.......*.......*.......*.......*.......< Sheem & District Historic Buildings Preservation Society 101 Nestlyn Close Briar Common Sheem SH2 4WJ 26 February Dear Member Following our Annual General Meeting last month, I wrote to the OCP Trust with with a view to obtaining financial assistance towards our proposed renovation work on Sheem Priory. I hope members will appreciate that the Sheem Priory project is the most ambitious develpment that the Society has undertaken. It is particularly important, that will be required if the project is to be a success. I received a reply from Mr Beeswing of OCP, of which the following paragraph is an extract. which the following paragraph is an extract. "The OCP Trust does not normally contribute towards restoration work on buildings intended for business use. However, we are aware that if the priory were not restored, it could mean the los of a building off great historic interest. Consequently, an application for assistance from the Truss would be favourably considered." It would seem that Mr Beeswing is sympathetic to are cause and I suggestthatwe forward an application to the OCP Trust as as possible. I would be interested to hear suggestions from members as to what form such an application shoULD TAKE. SUGGESTIONS SHOULD BE SEnt to me by the end of March, in time for me to prevent them to the executive matting on April 6th. A prompt reply would be much appreciated in order that I might meet that deadline. Yours sincerely Martyn Gilbert (secretary) NickARCHIVE VE ARCHIzCOPYFILES VE COPYF{GETBACK VE GETBA|LOGCOPY VE LOGCO8|NETMGR VE NETMGC}SETSTATIONVE SETST~ARCHIVE VE ARCHIzCOPYFILES VE COPYF{GETBACK VE GETBA|LOGCOPY VE LOGCO8|NETMGR VE NETMGC}SETSTATIONVE SETST~\HELP HELP Nick Archive To safeguard data from risk of accidental loss, you should regularly archive any important work. There are two methods : Backup: the regular creation of a complete copy of your work which is stored on the FileStore. In the unlikely event that your FileStore should fail, you have a copy of your work which can be restored once FileStore is repaired or replaced. You generally only hold one backup copy at any time. Archive: unlike backup, archiving is used to ensure that you have a number of copies of any important files that may change on a regular basis. If you delete or corrupt any file by accident, you can recover it from your 'archive' copies. You may hold a number of archive sets covering work done over the last few days or weeks. The ARCHIVE program may be used in conjunction with the recovery program GETBACK to keep both 'backup' and 'archives' copies of your work. A simple method of archiving using the FileStore is to make copies of your work on to the FileStore's removable 3.5 inch discs. The ARCHIVE program, on the other hand, is used to create copies of files on 5.25 inch DFS or ADFS floppy discs on a disc drive attached to one of the Econet stations. The ARCHIVE program creates large archive files which contain a number of files from FileStore. An archive file may span more than one disc if you are archiving a large number of files. The program starts from a given directory and archives all files and sub directories which are in that directory. A number of other options allow you to skip certain files or to start part way through a directory. ==================================== ** COPYFILES ** Copyfiles is a program written in BASIC to copy files from one filing system to another. On running the program you will be asked a series of questions. If you don't understand the question then a list of options will be displayed on RETURN being pressed. If disc type filing systems are used then you will be told when to insert the appropriate disc into the drive. After the source and destination filing systems have been supplied you will be asked for the 'Copying mode'. The options available are :- Single file mode - The source and destination files may be anywhere in the filing system structure. The source name will be used for the destination name if the user presses RETURN at the 'destination name' prompt. The name is truncated if necessary. Multiple mode - This mode requires the user to be in the appropriate directory on both filing systems. All of the files are copied from the source directory to the destination directory, a 'Y/N' prompt being given for each file. List mode - Identical to 'multiple' mode but all the files in the source directory are copied i.e no prompts are given. At this point the display will change showing source and destination filing systems and the copying mode, if any of these are incorrect you may return to the main menu by pressing ESCAPE. If Star ( OSCLI ) commands are required they may be entered by substituting a leading space instead of the star ('*') e.g. Source filename : Dir Q to select Q as your Currently Selected Directory. To start the copying process type '*' at the 'Source list spec.' prompt. To return to the main menu press ESCAPE and to quit from there, press 'Q'. ================================= Getback The GETBACK program is used to recover files that have been stored using the ARCHIVE program. Files can be recovered individually or as whole directory structures. =================================== LogCopy This program, which is written in BASIC, is used to create a logical copy of a directory structure from the net filing system to the ADFS or vice versa. All directories and sub-directories are copied. (The ADFS allows only 47 objects per directory) Source and destination directories may be anywhere within the fileing system structure. Options are provided to:- -Prevent or allow overwriting of locked files -Allow certain sub directories to be skiped over. -Start part way through a directory. * commands may be entered at most prompts if required. Once the copying process has started, small files are copied several at a time to speed up the process. Large files may be copied in several blocks. =================================== NetMgr This program is the main network management tool and brings together most of the things you will need to do on a day to day basis. Facilities are provided to :- -Print out lists of all files within directories. -Copy files or directories. -Delete complete directories including all sub directories and files. -Allow new users to use the FileStore. -Remove users from the FileStore. The following tips may be useful. -Copying between discs: NetMgr can be used to copy files or directories between discs. Disc names are preceeded by a ':'. For example, Source file / directory :.$.Utils -Copying beteen file servers: NetMgr can be used to copy files or directories between file servers. You will need to be logged on to both servers and to have system privilege on both. The file server numbers are preceeded with a '#'. The disc name must also be included. For example, Destination directory. #3.254:fs-master.$.LIBRARY ===================================== SetStation This program is used to set the default options for the Econet parameters in the Master and Master Compact computers. These options are set in the non volatile RAM of the computers and will be used each time the computer is switched on. The parameters control a number of functions including which areas of computer memory are used by the network filing system and auto start options. ===================================