1 'MONTD2.BA - Examine & Change Sectors on a TDD2 using FLOPPY by Phil Wheeler, modified by Robert Benson (7/30/90) 10 CLEAR50,58704:MAXFILES=1:DEFINTR-X:Z=62297:CC=0:CT=0:HX$="0123456789ABCDEF":E$=CHR$(27):N$=CHR$(27)+"q":R$=CHR$(27)+"p" 11 IFPEEK(Z)<>229ORPEEK(Z+1)<>94ORPEEK(Z+239)<>4ORPEEK(Z+240)<>195THENBEEP:PRINT@130,"FLOPPY not installed!":CLEAR50,MAXRAM:ENDELSEPOKE63056,128 12 CLS:PRINT@45,R$" TDD-2 Sector Examine & Change "N$ 13 PRINT@86,"S)elect a New Starting Sector" 14 PRINT@126,"G)o to Next Sector on Disk" 15 PRINT@166,"D)ump Sector to DO File" 16 PRINT@206,"W)rite Sector to Disk" 17 PRINT@246,"R)elocate Sector"S 18 Q$=INKEY$:IFQ$=""GOTO18ELSEONINSTR("GgSsDdRrWw",Q$)GOTO20,20,21,21,55,55,68,68,69,69 19 IFPEEK(65451)=7GOTO76ELSE18 20 S=S+1:GOTO22 21 CLS:PRINT@125,"Starting Sector ";:LINEINPUTS$:IFS$=""GOTO12ELSES=VAL(S$) 22 IFS>159THENBEEP:CLS:PRINT@130,"Sector Out of Range!":FORK=1TO1200:NEXT:GOTO12 23 CLS:PRINT@128,"Now Reading Sector No."S:GOSUB70:CALLZ,3,58704:GOSUB71:I=58708 24 CLS:IFS>80THENPRINT" "R$" Second 102400 bytes - Disk Drive 2 "N$:GOTO27 25 CLS 26 PRINT" "R$" Use ESC key to Return to Main Menu "N$ 27 IFI<0THENI=I+65536 28 IFI>65535THENI=I-65536 29 K=I-65536 30 IFI<58708THENI=I+8:K=-6828:GOTO26 31 IFI>60000THENI=I-8:K=-5540:BEEP 32 K1=K+6836:AX$="":S$=STR$(S) 33 PRINTRIGHT$(S$,2); 34 FORR=1TO4:PRINTMID$(HX$,(INT(K1/16^(4-R))AND15)+1,1);:NEXT 35 FORK=ITOI+7:R=PEEK(K):PRINT" "MID$(HX$,R/16+1,1);MID$(HX$,(RAND15)+1,1); 36 IFR<32THENR=46 37 AX$=AX$+CHR$(R):NEXT 38 PRINT" "AX$; 39 IFCT<>0THENCT=CT-1:GOTO49 40 PRINT@CSRLIN*40+8+CC*3,""; 41 I$=INPUT$(1) 42 IFI$>CHR$(96)THENI$=CHR$(ASC(I$)-32) 43 IFINSTR(1,HX$,I$)THENPOKEI+CC,(PEEK(I+CC)AND15)*16+INSTR(1,HX$,I$)-1:PRINT@CSRLIN*40,"";:GOTO27 44 T=ASC(I$) 45 IFT=23THENIFI<58956THENT=20ELSECT=7:I=I+184*(T=23):T=30 46 IFT=20THENCT=7:T=30 47 IFT=26THENIFI>59752THENT=2ELSECT=7:I=I-184*(T=26):T=31 48 IFT=2THEN:CT=7:T=31 49 IFT=30THENI=I-8:IFCSRLIN=0THENPRINTE$"L";:GOTO27ELSEPRINT@(CSRLIN-1)*40,"";:GOTO27 50 IFT=31THENI=I+8:PRINT:GOTO27 51 IFT=28THENCC=CC+1:IFCC>7THENCC=0:I=I+8:PRINT:GOTO27 52 IFT=29THENCC=CC-1:IFCC<0THENCC=7:T=30:GOTO49 53 IFI$=E$GOTO12 54 GOTO40 55 CLS:F$="":PRINT@124,"File for Dump ";:LINEINPUTF$:IFF$=""GOTO12 56 CLS:PRINT@125,"N)ew file A)ppend file Q)uit? " 57 Q$=INKEY$:IFQ$=""GOTO57ELSEONINSTR("NnAaQq",Q$)GOTO58,58,59,59,76,76:GOTO57 58 OPENF$FOROUTPUTAS1:GOTO60 59 OPENF$FORAPPENDAS1 60 CLS:PRINT@132,"Writing to RAM...." 61 PRINT#1,"----------" 62 PRINT#1,"Sector"S 63 PRINT#1,"----------" 64 FORJ=0TO1291 65 PRINT#1,CHR$(PEEK(58708+J));:NEXT 66 PRINT#1, 67 CLOSE:BEEP:GOTO12 68 CLS:PRINT@125,"Write to Sector ";:LINEINPUTS$:IFS$=""GOTO12ELSES=VAL(S$) 69 CLS:PRINT@131,"Writing to Disk....":GOSUB70:CALLZ,4,58704:GOSUB71:GOTO12 70 POKE58704,84:POKE58705,229:POKE58706,S:RETURN 71 ER=PEEK(58704):IFER<=1THENRETURN 72 IFER=5THENW$="Unformatted Sector":GOTO75 73 IFER=6THENW$=" Write Protected":GOTO75 74 W$="Check Drive & Disk" 75 BEEP:PRINT@211,W$:FORK=1TO1200:NEXT:GOTO12 76 POKE63056,0:CLEAR50,MAXRAM:MENU