10 PRINT"SD-card volume AA55 signature":PRINT"fixer for GR8NET":'developed 18-Feb-2017 by Eugeny Brychkov 20 CALLNETSETMEM(0,&H5FC1,0,0,0,0):CALLNETSETMEM(0,&H5FC5,0,&H91,&H61) 30 CALLNETGETMEM(0,&H5FC6,A,B):IF (B AND 1)=1 THEN GOTO 30 40 IF (A AND 240)<>16 OR (B AND 6)<>0 THEN PRINT"Sector 0 read error":STOP 50 CALLNETGETMEM(&HC8,&H6000,A,B,C):IF A<>&HEB OR C<>&H90 THEN PRINT"Sector 0 is invalid":STOP 60 CALLNETGETMEM(&HC8,&H6003,A,B,C,D):A$=CHR$(A)+CHR$(B)+CHR$(C)+CHR$(D):IF A$<>"NEXT" THEN PRINT"No Nextor signature in sector 0":STOP 70 CALLNETGETMEM(&HC8,&H61FE,A,B):IF A<>&H55 OR B<>&HAA THEN PRINT"No signature in sector 0" ELSE GOTO 130 80 PRINT"Fixing MBR":'fixing AA55 signature in sector 0 90 CALLNETSETMEM(&HC8,&H61FE,&H55,&HAA):CALLNETSETMEM(0,&H5FC1,0,0,0,0):CALLNETSETMEM(0,&H5FC5,0,&H91,&H69) 100 CALLNETGETMEM(0,&H5FC6,A,B):IF (B AND 1)=1 THEN GOTO 100 110 IF (A AND 240)<>16 OR (B AND 6)<>0 THEN PRINT"Sector 0 write error":STOP 120 CALLNETGETMEM(&HC8,&H600B,A,B):IF A=0 AND B=2 THEN PRINT"Boot sector processed":STOP 130 PRINT"Checking MBR":'checking MBR 140 CALLNETGETMEM(&HC8,&H61C2,A):IF A<>11 AND A<>12 AND A<>4 AND A<>6 AND A<>8 AND A<>14 THEN PRINT"Invalid file system":STOP 150 CALLNETGETMEM(&HC8,&H61C6,I,J,K,L):CALLNETSETMEM(0,&H5FC1,0,I,J,K):CALLNETSETMEM(0,&H5FC5,L,&H91,&H61) 160 CALLNETGETMEM(0,&H5FC6,A,B):IF (B AND 1)=1 THEN GOTO 160 170 IF (A AND 240)<>16 OR (B AND 6)<>0 THEN PRINT"Boot sector read error":STOP 180 CALLNETGETMEM(&HC8,&H6000,A,B,C):IF A<>&HEB OR C<>&H90 THEN PRINT"Boot sector 0 is invalid":STOP 190 CALLNETGETMEM(&HC8,&H6003,A,B,C,D):A$=CHR$(A)+CHR$(B)+CHR$(C)+CHR$(D):IF A$<>"NEXT" THEN PRINT"No Nextor signature in boot sector":STOP 200 CALLNETGETMEM(&HC8,&H61FE,A,B):IF A=&H55 AND B=&HAA THEN PRINT"Finished":STOP 210 PRINT"Fixing Boot sector":'fixing AA55 signature in boot sector 220 CALLNETSETMEM(&HC8,&H61FE,&H55,&HAA):CALLNETSETMEM(0,&H5FC1,0,I,J,K):CALLNETSETMEM(0,&H5FC5,L,&H91,&H69) 230 CALLNETGETMEM(0,&H5FC6,A,B):IF (B AND 1)=1 THEN GOTO 230 240 IF (A AND 240)<>16 OR (B AND 6)<>0 THEN PRINT"Boot sector 0 write error":STOP 250 CALLNETGETMEM(&HC8,&H600B,A,B):IF A=0 OR B=2 THEN PRINT"Boot sector processed":STOP ELSE PRINT"Boot sector format error":STOP