0 'N-DKTR.BA (c) 1992 R.Hess (v1.0) 2 CLEAR520:MAXFILES=1:DEFSTRA-F:DEFINTG-R,T-X:DIMG(256,3):E=CHR$(27) 4 ONERRORGOTO186:PP=600:SK=64798:IFPEEK(1)<>171THENPP=280:SK=65450 6 OUT129,0:OUT131,64:OUT131,4:PRINTE"U"E"jD" 8 OUT129,0:G=INP(131):G=INP(131):FORM=1TO255:G(M,1)=INP(131):G(M,2)=INP(131):G(M,3)=0 10 IFG(M,1)>127THENB="F":G(M,3)=1:GOTO18 12 IFG(M,1)=32THENB="c":G(M,3)=2:GOTO18 14 IFG(M,1)=0THENB="+":G(M,3)=3:GOTO18 16 B="?":G(M,3)=4 18 PRINT@M,B:NEXT:PRINT@256,E"V"E"p N-DKTR(c) Sector Map "E"q"CHR$(8);:GOSUB188:GOSUB184:N=256 20 N=N-1:P=N:SN=0 22 IFG(N,1)<128THEN36ELSEGOSUB126:SN=(SA+1034)\1024:PRINT@N," " 24 IFA<";"THEN28 26 FORX=2TO6:IFASC(MID$(A,X,1))>31THENNEXT:GOTO30 28 BEEP:BEEP:PRINT@PP,A" has an illegal name!! Fix? "E"K";:KC=INSTR(" Yy",INPUT$(1)):IFKC<2THENMENUELSE130 30 G(N,3)=0:GOSUB124:SN=SN-1:IFS=0THEN36ELSEN=S:PRINT@S," ":IFG(N,1)=32THEN30 32 IFG(N,1)>127THEN38 34 IFG(N,1)=0THEN38 36 IFSN=0THEN42 38 N=P:FB=FB+CHR$(P):IFP>KBTHENKB=P 40 G(N,3)=2:GOSUB124:IFS>0THENN=S:GOTO40 42 IFP>1THENN=P:GOTO20 44 PRINT@PP+11,"open sectors..."E"K";:FO="":FU="":FF="":KO=0:KU=0:KF=0:FORX=1TO255:M=256-X 46 IFG(M,3)=2THENFO=FO+CHR$(M):GOTO52 48 IFG(M,3)=3THENFF=FF+CHR$(M):GOTO52 50 IFG(M,3)THENFU=FU+CHR$(M) 52 NEXT:KO=LEN(FO):KU=LEN(FU):KF=LEN(FF) 54 IFKB=0THEN58ELSEBEEP:BEEP:CLS:FORY=1TOLEN(FB):N=ASC(MID$(FB,Y,1)):GOSUB126:PRINTUSING"\ \ ";A;:NEXT 56 PRINT@PP," are BROKEN files! Attempt recovery? ";:GOSUB190:IFINSTR(" Yy",INPUT$(1))<2THENMENUELSE62 58 PRINT@PP,USING"### Orphans ### Unknown ### Free ";KO;KU;KF;:GOSUB188 60 IFKO+KU=0THENPRINT@PP," Review Free sectors? "E"K";:GOSUB190:IFINSTR(" Yy",INPUT$(1))<2THEN70 62 CLS:PRINTE"W" 64 IFKO>0THENDD=" Orphan#":FS=FO:GOSUB138 66 IFKU>0THENDD=" Unknown#":FS=FU:GOSUB138 68 IFKF>0THENDD=" Free#":FS=FF:GOSUB138 70 PRINTE"U";:CLS:PRINTE"p N-DKTR.BA (c) 1992 R.W.Hess "E"q" 72 IFKO+KU=0THEN82ELSEPRINT@80,"eturn"; 74 IFKO>0THENPRINT" Orphans"; 76 IFKO>0ANDKU>0THENPRINT" and"; 78 IFKU>0THENPRINT" Unknowns"; 80 PRINT" to system" 82 PRINT@165,"print File Allocation List":PRINT@251," to Main Menu" 84 GOSUB190 86 A=INKEY$:IFA=""THEN86ELSEA=CHR$(ASC(A)AND95):IFA="R"THEN114ELSEIFA="L"THEN88ELSEIFA=ETHENMENUELSE86 88 IF(INP(187)AND6)<>2THENBEEP:PRINT@PP+13,E"p NO PRINTER! "E"q";:FORX=1TO2000:NEXT:PRINT@PP,E"K";:GOTO86 90 N=256:LPRINT" File Size Sectors @ "TIME$", "DATE$:LPRINTSTRING$(48,"-") 92 N=N-1:P=N 94 IFG(N,1)<128THEN100ELSELPRINT:GOSUB126:LPRINTUSING"\ \ #####,";A,SA;:GOTO98 96 GOSUB124:IFS=0THENLPRINT:GOTO100ELSEN=S 98 GOSUB112:GOTO96 100 IFP>1THENN=P:GOTO92 102 LPRINT:IFKO>0THENLPRINT"Orphans>";:FS=FO:GOSUB110:LPRINT:LPRINT 104 IFKU>0THENLPRINT"Unknown>";:FS=FU:GOSUB110:LPRINT:LPRINT 106 IFKF>0THENLPRINT"Free ->";:FS=FF:GOSUB110 108 LPRINTCHR$(12):GOTO70 110 FORX=1TOLEN(FS):N=ASC(MID$(FS,X,1)):GOSUB112:NEXT:RETURN 112 LPRINTUSING" ###";N;:RETURN 114 CLS:IFKO>0THENFS=FO:GOSUB120:CLS 116 IFKU>0THENFS=FU:GOSUB120 118 RUN 120 FORX=1TOLEN(FS):N=ASC(MID$(FS,X,1)):GOSUB122:NEXT:RETURN 122 OUT129,0:FORXZ=1TON:H=INP(131):H=INP(131):PRINT".";:NEXT:OUT131,0:OUT131,0:RETURN'FAT=0,0 124 S=G(N,2):RETURN 126 OUT129,N:A="":FORK=1TO6:GOSUB128:NEXT:A=A+".":GOSUB128:GOSUB128:SA=INP(131)+256*INP(131):RETURN 128 A=A+CHR$(INP(131)):RETURN 130 IFA<";"THENMID$(A,1,1)="A" 132 FORX=2TO6:IFMID$(A,X,1)<" "THENMID$(A,X,1)="B" 134 NEXT:OUT129,N 136 FORX=1TO6:OUT131,ASC(MID$(A,X,1)):NEXT:GOSUB184:N=P:GOTO22 138 PRINTE"U";:PRINT@PP,DD;E"T";:CLS:FORX=1TOLEN(FS):M=ASC(MID$(FS,X,1)):GOSUB142:IFCC=ETHENRETURN 140 NEXT:RETURN 142 IFKB>0ANDM>KBTHENRETURN 144 CC="":N=M:PRINTE"U";:PRINT@PP+10,USING"###";N;:PRINTE"K"E"T";:CLS 146 OUT129,N:FORY=1TO1024:H=INP(131) 148 IFH=0THEN156 150 IFH=127THEN156 152 IFH=26THEN156 154 PRINTCHR$(H);:CC=INKEY$:IFCC<>""THEN158 156 NEXT 158 GOSUB190:PRINTE"U";:PRINT@PP+15,"ue cvr xt "E"T"; 160 CC=INKEY$ 162 IFCC=""THEN160ELSECC=CHR$(ASC(CC)AND95):IFCC=ETHEN182ELSEIFCC="V"THEN142ELSEIFCC="N"THEN182ELSEIFCC<>"R"THEN160 164 PRINTE"U";:PRINT@PP+15,"is being recovered..."E"K"E"T";:CLS:OPEN"[RCVR]"FORAPPENDAS#1 166 IFFRE(0)>1500THEN170ELSECLOSE:BEEP:BEEP:PRINTE"U";:CLS:PRINT" Insufficient memory to save sector:" 168 PRINT" return to MENU, save [RCVR] and re-run.":END 170 PRINT#1,:PRINT#1,"]"N"][":OUT129,N:FORYX=1TO1024:H=INP(131) 172 IFH=0THEN180 174 IFH=127THEN180 176 IFH=26THEN180 178 PRINT#1,CHR$(H);:PRINTCHR$(H); 180 NEXT:CLOSE 182 PRINTE"U";:PRINT@PP+10," "E"K"E"T";:CLS:POKESK,0:RETURN 184 PRINT@PP,E"VValidating files & sector allocations...":RETURN 186 CLS:PRINT"Err"ERR;" Erl"ERL:END 188 GOSUB190:CC=INPUT$(1):IFCC=ETHENMENUELSERETURN 190 SOUND4000,1:POKESK,0:RETURN