/ > FileToDisk 0.43 04-Jun-2018 J.G.Harston & Copy image file to physical disk : (% "Copy disk image to whole disk" 2? "***WARNING*** THIS WILL COMPLETELY OVERWRITE YOUR DISK"' <3max%=(--1024)256:oldfs%=fs: max%<2: &87: F2 ctrl% 31,data% 256*max%-1:X%=ctrl%:Y%=X%256 P :end: Z: d "Source image file: "in$ n""Dest. filing system: "type$ x!"Dest. drive: "drv%  type$:thisfs%=fs : fs$,fn$,A$,retry%  fs$="*" fs$=thisfs% 4 fs$="*": "Unsupported filing system":oldfs: I 4,disk,7F,3, 8,adfs,72,1, 10,adfs,62,1, 16,hadfs,5A,1, 29,disk,77,1 E DISK ADFS LVFS HADFS RAM *,*,*,* :  Should check image size osw%=("&"+A$):dsize%=size K"Total disk sectors (&";~dsize%;"): &";:""A$:A$<>"":dsize%=("&"+A$) Vdsize%>&FFF:"This is a hard drive - continue? "A$:A$=(A$&DF): A$<>"Y":end: =oldfs:in%=(in$):in%=0:"File '"in$"' not found":end: : sect%=0:thisnum%=max%  "3num%=max%: sect%+num%>dsize%:num%=dsize%-sect% ,! thisnum%max%:thisnum%=max% hsect%>=dsize% r: |13:"Closing";14; oldfs:#in% 13:"Done";17 4 Needs fixup to match image size with disk size  :  oldfs )oldfs%:"FX143,18,"+oldfs%:oldfs%=0  :  end  oldfs:  : ݤwrite(sect%,num%)  try%=retry% & 0A13:"Writing ";h0(drv%,1);":";h0(sect%,6);"+";h0(num%,2); :#err%=attempt(num%):try%=try%-1 D try%<1 err%=0 N err%:num%=(num%+2)4 X err%=0 num%<1 b=num%-(num%<1) l: vݤattempt(num%) :fn$="disk":err%=disk(data%,&4B,drv%,sect%,num%,osw%) 9fn$="adfs":err%=adfs(data%,10,drv%,sect%,num%,osw%) 10:n%=10-sec% >D:X%?0=drv%+den%*24+8+2*(trk%80):X%!1=addr%:X%?5=3-7*(cmd%>127) HAX%?6=cmd%:X%?7=trk%80:X%?8=sec%:X%!9=n%&1E20:A%=osw%:&FFF1 RYA%=X%?(7+X%?5):A%<>&10:addr%=addr%+n%*256:num%=num%-n%:sec%=(sec%+n%)10:trk%=trk%+1 \A%<>0num%<1:=A% f+ݤadfs(addr%,cmd%,drv%,sect%,num%,osw%) p! fs%:fs%=fs: fs%<>8:*FADFS zDX%?0=1:X%!1=addr%:X%?5=cmd%:X%?6=drv%*32+((sect%&1F0000)65536) 9X%?7=((sect%&FF00)256):X%?8=sect%:X%!9=num%:X%!11=0 A%=osw%:&FFF1 * fs%<>8:"DISMOUNT":"FX143,18,"+fs% =?X% ,ݤhadfs(addr%,cmd%,drv%,sect%,num%,osw%) B!X%=&600:X%!2=addr%:X%!6=sect%:X%?9=drv%:X%?10=num%:X%?11=cmd% A%=osw%:&FFF1:=X%?12 ݤdisk_err(A%,D%,S%,N%) MA%:"Disk error ";h0(A%,2);" at ";h0(D%,1);":";h0(S%,6);"+";h0(N%,2) =A% :  I/O routines  ============ %ݤh0(A%,N%):="00000000"+~A%,N%) 6ݤfx(A%,X%): Y%:Y%=X%256:=(&FFF4 &FFFF00)256 #gbpb(A%,chn%,addr%,num%,ptr%) $ Test code .=fs<>17:?X%=chn%:X%!1=addr%:X%!5=num%:X%!9=ptr%:&FFD1: 86?addr%=#chn%:addr%=addr%+1:num%=num%-1:num%<1: