0 'CLUB 100 Library - 415/939-1246 BBS, 937-5039 NEWSLETTER, 932-8856 VOICE 1 'RECOV.BA: For the TDD2 using FLOPPY, recover .DO files from TDD1/TDD2 disks by Phil Wheeler 7/20/87 2 'Revised by Robert Benson 3/20/88 10 CLS:DEFINTR-V:CLEAR256,58704:POKE63056,128:MAXFILES=1:HX$="0123456789ABCDEF":CC=0:CT=0:E$=CHR$(27):Z=62297:GOSUB30:GOTO21 11 CLS:PRINTE$"p Current Sector"E$"q"S;:S1=PEEK(58709):IFS1=255THENPRINT@22,E$"p Last Sector"E$"q"ELSEIFS1=0THENPRINT@22,E$"p Empty Sector"E$"q"ELSEPRINT@22,E$"p Next Sector"E$"q"S1 12 FORN=0TO5:I=I0+8*N 13 K=I-65536 14 S$=STR$(S):PRINTRIGHT$(S$,2);:K1=K+65536-58708:FORR=1TO4:PRINTMID$(HX$,(INT(K1/16^(4-R))AND15)+1,1);:NEXT 15 AX$="":FORK=ITOI+7:R=PEEK(K):PRINT" "MID$(HX$,R/16+1,1);MID$(HX$,(RAND15)+1,1); 16 IFR<32THENR=46 17 AX$=AX$+CHR$(R):NEXT:PRINT" "AX$; 18 PRINT:NEXT 19 PRINT@287,E$"p Press to Return "E$"q"; 20 I$=INPUT$(1):IFI$=E$THENCLS:GOTO31ELSE20 21 PRINT@5,E$"p TDD2 DO File Recovery Program "E$"q":GOSUB23:GOTO32 22 S$="":PRINT@125,"Starting Sector ";:LINEINPUTS$:IFS$=""THEN44ELSES=VAL(S$):GOTO26 23 FORI=64706TO64736:READA:POKEI,A:NEXT:RETURN 24 DATA 1,0,5,42,192,252,205,109,107,218,221,252,1,0,5,235 25 DATA 33,88,229,205,219,107,235,34,192,252,201,205,41,66,201 26 IFS>159THENBEEP:PRINT@125," Sector Out of Range!"SPACE$(20);:FORK=1TO1200:NEXT:GOTO22 27 CLS:PRINT@128,"Now Reading Sector No."S; 28 GOSUB29:CALL Z,3,58704:GOSUB47:I0=58708:GOTO11 29 POKE58704,84:POKE58705,229:POKE58706,S:RETURN 30 IFPEEK(Z)<>229ORPEEK(Z+1)<>94ORPEEK(Z+239)<>4ORPEEK(Z+240)<>195THENBEEP:PRINT@135,"No System!":POKE63056,0:CLEAR256,MAXRAM:ENDELSERETURN 31 PRINT@5,E$"p ** Choose Your Next Action ** "E$"q" 32 PRINT@45,"S)elect a New Start Sector":PRINT@85,"G)o to Next Sector On Disk":PRINT@125,"L)ink Next Sector Automatically":PRINT@165,"R)ecover DO File at this Sector":PRINT@205,"A)ppend to Recovery File":PRINT@245,"E)xit to the Main Menu" 33 ONINSTR("GgSsRrAaLlEe",INPUT$(1))GOTO34,34,35,35,36,36,38,38,43,43,44,44:GOTO33 34 S=S+1:IFS<160THEN27ELSEBEEP:CLS:GOTO31 35 CLS:GOTO22 36 CLS:F$="":PRINT@122,"File for Recovery ";:LINEINPUTF$:IFF$=""THENCLS:GOTO31 37 OPENF$FOROUTPUTAS1:GOTO39 38 IFF$=""THENBEEP:GOTO31ELSEOPENF$FORAPPENDAS1:GOTO40 39 AA=VARPTR(#1):FB=PEEK(AA+2)+256*PEEK(AA+3):BG=PEEK(FB)+256*PEEK(FB+1):DD=BG:GOSUB42:POKE64704,AL:POKE64705,AH 40 CLS:PRINT@125,"Writing to RAM File....";:CALL64706 41 CLOSE:CLS:GOTO31 42 AL=256*(DD/256-INT(DD/256)):AH=INT(DD/256):RETURN 43 SS=S:S=S1:IFS<>0ANDS<>255ANDS<160GOTO27ELSES=SS:BEEP:CLS:GOTO31 44 POKE63056,0:CLEAR256,MAXRAM:MENU 45 PRINT@211,ER$:FORJJ=1TO1200:NEXT:CLS:GOTO31 46 CLS:GOTO21 47 ER=PEEK(58704):IFER<=1THENRETURNELSEBEEP 48 IFER=5THENER$="Unformatted Sector":GOTO45 49 IFER=6THENER$=" Write Protected":GOTO45 50 ER$="Check Drive & Disk":GOTO45