10 REM DIREDIT 260390 20 PRINT "[147]RENAMES FILES F001, F002 ... ETC.":PRINT 30 DIM TYPE$(6) 40 DATA "DEL","SEQ","PRG","USR","REL","CBM" 50 FOR I=0 TO 5:READ TYPE$(I):NEXT 60 INPUT"WHICH DRIVE DEVICE # (EG 8 OR 9)";U 70 OPEN15,U,15,"I0":INPUT#15,A,B$,C,D:CLOSE15:IF A= 0 THEN GOTO100 80 :PRINT"PROBLEM WITH DISK":PRINT A;B$;C;D:PRINT"PLEASE CHECK DISK AND DRIVE" 90 :STOP 100 PRINT:PRINT"(1) 1541":PRINT"(2) 1571":PRINT"(3) 1581" 110 INPUT"WHICH DRIVE TYPE (1/2/3)";DM 120 IF DM<1 OR DM>3 THEN GOTO100 130 IF DM=1 THEN D$="1541":DTRK=18:DSCT=1 140 IF DM=2 THEN D$="1571":DTRK=18:DSCT=1 150 IF DM=3 THEN D$="1581":DTRK=40:DSCT=3 160 PRINT:PRINT"EDIT DIRECTORY OF ";D$;"[146] DRIVE." 170 PRINT"DIRECTORY STARTS ON TRACK ";DTRK 180 PRINT"AT SECTOR ";DSCT:PRINT 190 INPUT"IS THIS CORRECT (Y/N)";Y$ 200 IF Y$<>"Y" THEN PRINT "ABORT PROGRAM": STOP 210 IF D$="1571" THEN OPEN15,U,15,"U0>M1":CLOSE15 220 PRINT:PRINT"ENTER RANGE OF FILE NUMBERS TO EXAMINE:":PRINT 230 INPUT"FIRST FILE NUMBER";I1 240 INPUT"LAST FILE NUMBER";I2 250 PRINT:PRINT"PRESS TO LEAVE DIRECTORY ENTRY UNCHANGED.":PRINT 260 FOR I=I1 TO I2 270 :GOSUB490 :F$="F"+T$ :REM F$ IS THE EXISTING FILE NAME 280 :PRINT"---------------------------":PRINT "";F$;"[146]";:GOSUB530 290 :N$="":INPUT"> NEW FILE NAME:";N$ 300 :IF N$="" THEN GOTO380 :REM SKIP THIS FILE 310 : REM NOW RENAME THE FILE 320 : OPEN15,U,15,"R0:"+N$+"="+DNAME$ 330 : PRINT "R0:";N$;"=";DNAME$ 340 : REM CHECK THE DISK ERROR STATUS 350 : INPUT#15,A,B$,C,D:PRINT A;B$;C;D 360 : CLOSE15 370 : IF A<>0 GOTO280: REM ERROR, SO TRY AGAIN THIS FILE 380 :T$="":INPUT"NEW TYPE (DEL,SEQ,PRG,USR,REL,CBM)";T$ 390 :IF T$="" THEN GOTO450 : REM SKIP 400 : REM NOW CHANGE FILE TYPE 410 : TN=999:FOR TL=0 TO 5:IF T$=TYPE$(TL) THEN TN=128+TL:GOTO430 420 : NEXT TL 430 : IF TN<128 OR TN>133 THEN GOTO380 : REM FILE TYPE NOT RECOGNISED 440 : GOSUB790 : REM SET TYPE 450 NEXT I 460 END 470 REM :::::::::::::::::::::::::::::: 480 REM SUBROUTINE 490 REM TO CREATE A STRING NUMBER WITH LEADING ZEROS: CONVERTS I TO T$, 3 CHARS 500 S$=STR$(I):L=LEN(S$) 510 T$=LEFT$("0000",4-L)+RIGHT$(S$,L-1) 520 RETURN 530 REM ::::::::::::::::::::::::::::: 540 REM SUBROUTINE TO CONVERT FILE # INTO TRACK, SECTOR AND BYTE ADDRESS 550 TRACK=DTRK:SECT=INT((I-1)/8)+DSCT:BYTE=(I-8*INT((I-1)/8)-1)*32+2 560 REM PRINT TRACK;SECT;BYTE 570 OPEN15,U,15:INPUT#15,A,B$,C,D:IF A<>0 THEN CLOSE15:PRINTA;B$;C;D:STOP 580 OPEN5,U,5,"#" 590 PRINT#15,"U1";5;0;TRACK;SECT 600 PRINT#15,"B-P";5;BYTE 610 GET#5,TN$:TYPE=0:IF TN$<>"" THEN TYPE=ASC(TN$) 620 IF TYPE=0 THEN TY$="NONE" 630 TP=(TYPE AND 63) 640 IF TP>=0 AND TP<=5 THEN TY$=TYPE$(TP) 650 GET#5,TN$:GET#5,TN$:REM THIS GETS US TO THE FILE NAME 660 DNAME$="":NB=3 670 FOR JJ=3 TO 18: 680 GET#5,TN$:NB=NB+1:IF TN$=CHR$(160) THEN GOTO720 690 DNAME$=DNAME$+TN$ 700 NEXT 710 IF DNAME$="" THEN GOTO770 720 PRINT": <";DNAME$;"[146]> ON DISK" 730 FOR IB=NB TO 28:GET#5,TN$:NEXT 740 LB=ASC(TN$+CHR$(0)):GET#5,TN$:HB=ASC(TN$+CHR$(0)) 750 BLOCKS=256*HB+LB 760 PRINT BLOCKS;"BLOCKS: TYPE=";TY$;"[146]" 770 CLOSE 5:CLOSE15 780 RETURN 790 REM :::::::::::::::::::::::::::::: 800 REM SUBROUTINE TO SET FILE TYPE IN DIRECTORY, GIVEN TRACK,SECT,BYTE,TN 810 OPEN15,U,15 820 INPUT#15,A,B$,C,D:IF A<>0 THEN PRINT A;B$;C;D:CLOSE15 STOP 830 OPEN5,U,5,"#" 840 PRINT#15,"U1";5;0;TRACK,SECT 850 PRINT#15,"B-P";5;BYTE 860 PRINT#5,CHR$(TN);:REM WRITE THE NEW TYPE INTO THE DISK BUFFER 870 PRINT#15,"U2";5;0;TRACK,SECT 880 CLOSE5 890 CLOSE15 900 RETURN