10 REM ADFS Disc Sector Rescue 20 REM by M.Bobrowski 5'90 30 ON ERROR CLOSE#0:VDU12,10:PRINT"This program is for ADFS SYSTEM only"':END 40 MODE 7:VDU28,0,24,39,20:HIMEM=PAGE+&600:W%=HIMEM:M%=(&7F00-W%)DIV256:*FX16 50 PROCinitialise 60 PROCreaddisc(W%,N%):*DISMOUNT 70 CLS:PRINT"Insert destination disc, then press COPY";:REPEATUNTILINKEY(-106):PRINT:*MOUNT 80 PROCsave 90 PRINTCHR$7"Done" 100 END 110 : 120 DEF PROCinitialise 130 fdc=&900:osword=&FFF1:*MOUNT 140 REPEAT:PRINTTAB(0,0)SPC30:INPUTTAB(0,0)"Input disc address...&"A$:IF A$="" A$="FFFF" 150 addr%=EVAL("&"+A$):UNTIL addr%>-1 AND addr%<&500 160 REPEAT:PRINTTAB(0,1)SPC39;TAB(0,1)"How many sectors (max.";M%;") ?";:INPUT" "N%:UNTIL N%>0 AND N%0 PRINT''"*** Disc Error ***";CHR$7; 240 ENDPROC 250 : 260 DEFPROCsave 270 S%=256*N%:REPEAT:PRINTTAB(0,2)"Create a Basic Program ? ";:G$=GET$:UNTIL INSTR("YyNn",G$):CLS:INPUT"Enter directory pathname or press RETURN"P$:IF P$<>"" IF RIGHT$(P$,1)<>"." P$=P$+"." 280 IF INSTR("Nn",G$) C$="SAVE "+P$+"Rescue"+A$+" "+STR$~W%+" +"+STR$~S%+" 0 0":OSCLI(C$):ENDPROC 290 REPEAT:PRINTTAB(0,2)SPC38:INPUTTAB(0,2)"Enter filename : "F$:UNTIL F$>"" AND LENF$<11:F$=P$+F$ 300 L%=W%+256*(N%-1):FOR I%=L% TO L%+&100:IF ?I%=&D T%=I%+2 310 NEXT:?(T%-1)=&FF 320 C$="SAVE "+F$+" "+STR$~W%+" "+STR$~T%+" FFFF8023 FFFF0E00":OSCLI(C$):ENDPROC