10 PRINT"[147] [206][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][205]" 20 PRINT" [180] SECTOR CORRECTER [167]" 30 PRINT" [205][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][206]" 40 PRINT"[213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]" 50 PRINT"[221]INSERT DISK IN DRIVE[221]" 60 PRINT"[202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203]" 70 PRINT" THEN PRESS RETURN[146]" 80 OPEN50,0:REM OPEN KEYBOARD FOR INPUT 90 GET#50,K$ 100 IFK$<>CHR$(13)THEN90 110 CLOSE50 115 PRINT" INITIALIZING DISK" 120 OPEN15,8,15,"I0":INPUT#15,E,M$,TR,SE 130 OPEN5,8,5,"#":REM BUFFER FOR DIRECTORY 140 IF E>19THENPRINT"DISK ERROR# "E:END 150 PRINT#15,"B-R:"5;0;18;0:REM PLACE DIRECTORY IN BUFFER 160 PRINT#15,"B-P:"5;144:REM SET POINTER TO DISK NAME 170 D$="":FORX=144TO166:GET#5,K$:D$=D$+(CHR$(0)+K$):NEXTX:REM ASSEMBLE DISK NAME 180 PRINT"DISK NAME:":PRINT""D$"[146]" 190 INPUT"TEST DISK Y[146][157][157][157]";K$ 200 IFK$<>"Y"THENCLOSE5:CLOSE15:GOTO10 210 CLOSE5:CLOSE15:REM CLOSE FILES 1001 DK=8:REM DISK DRIVE NUMBER 1002 : 1003 REM SCREEN FORMAT 1004 : 1008 DIMTR(100):DIMSE(100):REM TRACK AND SECTOR ARRAYS 1009 PRINT"[147][176][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][174]" 1010 PRINT"[194]SECTOR TEST PROGRAM[194]" 1012 PRINT"[173][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][189]" 1020 PRINT"[209][209][209][209][209][209][209][209][209][209][209][209][209][209][209][209][209][209][209][209][209]" 1030 PRINT"[209] [209]" 1040 PRINT"[209] [209]" 1050 PRINT"[209] [209]" 1060 PRINT"[209] [209]" 1070 PRINT"[209][209][209][209][209][209][209][209][209][209][209][209][209][209][209][209][209][209][209][209][209][145][145][145][145][145][145]" 2000 : 2010 REM TEST SECTORS AND STORE BAD 2020 REM TRACKS AND SECTORS IN MATRICIES 2050 OPEN15,DK,15 2060 PRINT#15,"I"0 2070 A$="":FORI=1TO255:A$=A$+CHR$(I):NEXT 2080 OPEN2,DK,2,"#" 2090 PRINT:PRINT#2,A$; 2100 T=1:S=0 2110 PRINT#15,"B-A:"0;T;S 2120 INPUT#15,E,M$,TR,SE 2130 IFE=0THEN2160 2140 IFTR=0THEN2240:REM DISK IS COMPLETE 2150 PRINT#15,"B-A:"0;TR;SE:T=TR:S=SE 2160 PRINT#15,"U2:2,"0;T;S 2170 BL=BL+1:PRINT"[209]BLOCKS TESTED"BL 2180 PRINT"[209]TRACK [157][157][157][157]"T"[157]SECTOR [157][157][157][157]"S"[145][145]" 2190 INPUT#15,E,M$,TR,SE 2200 IF E=0THEN2110 2210 TR(J)=T:SE(J)=S:J=J+1:IFJ>=100THENPRINT"THIS DISK HAS TOO MANY BAD BLOCKS.":END 2220 PRINT"[209]BAD BLOCK:[157][157]",T;S"":PRINT"[209]ERROR # "E"[145][145][145][145]" 2230 GOTO2110 2240 CLOSE2 3220 IFJ=0THENPRINT"NO BAD BLOCKS!":PRINT#15,"V"0:PRINT" VALIDATING DISK":END 3230 PRINT"[147]THERE ARE BAD SECTORS ":PRINT"ON THIS DISK." 3232 PRINT"DO NOT 'BAD SECTOR' THIS ":PRINT"DISK IF THERE ARE ANY":PRINT"PROGRAMS ON IT." 3234 PRINT"DATA LOSS MAY ":PRINT"BE THE RESULT!" 3236 INPUT"'BAD SECTOR' FIX N[146][157][157][157]";K$ 3237 IFK$<>"Y"THENCLOSE2:PRINT#15,"V":CLOSE15:RUN 3239 PRINT#15,"V"0:PRINT" VALIDATING DISK" 3240 OPEN2,DK,2,"#" 3250 PRINT"[147] BAD BLOCKS":PRINT"TRACK","SECTOR" 3260 FORI=0TOJ-1 3270 PRINT#15,"B-A:";0,TR(I);SE(I) 3280 PRINTTR(I),SE(I) 3290 NEXT 3295 FORX=0TO1000:NEXT 3300 PRINT"[147]"J"BAD SECTORS HAVE ":PRINT"BEEN REMOVED FROM USE." 3310 PRINT"DO NOT VALIDATE ":PRINT"DATA MAY BE LOST!" 3320 CLOSE2:CLOSE15 3330 OPEN50,0:PRINT"PRESS RETURN":INPUT#50,K$ 3340 CLOSE50 4000 : 4010 REM SAVE BAD BLOCK MATRIX 4020 REM FOR RENEW DISK PROGRAM 4030 : 4040 PRINT"[147]SAVING MATRIX FOR":PRINT"RENEW DISK PROGRAM" 4140 FORI=1TOJ:POKE(822+I),TR(I-1):NEXT:REM SAVE BAD TRACK MATRIX IN BUFFER 4150 FORI=1TOJ:POKE(822+I+J),SE(I-1):NEXT:REM SAVE BAD TRACK MATRIX IN BUFFER 4160 POKE822,J:REM SAVE SIZE OF MATRICIES 4200 PRINT"MATRIX STORED IN ":PRINT"CASSETTE BUFFER. 4205 [153]"LOAD THE RENEW ":[153]"PROGRAM FROM ":[153]"DISK AND RUN IT."