Listing of file='UTIL01.BAS;01' on disk='vmedia/ncc_2-sector.ccvf'
1 LIST 65100:END :IF 10 REM 20 IF PROGRAM NAME: UTIL01 30 REM PROGRAMMER: JIM PARKER 40 REM 50 REM PURPOSE: 60 REM THIS PROGRAM DELETES A SERIES OF FILES FROM 70 REM THE DISK LEAVING THE LATEST VERSION OF THAT 80 REM FILE ALONE. THE PROGRAM WILL DISPALY THE 90 REM DIRECTORY, THEN ASK FOR THE NAME OF THE FILES 100 REM TO BE CLEANED OF THE DISK. THE FORMAT OF THE 110 REM REPLY IS: 120 REM FILENM.TYP;VR 130 REM WHERE: 140 REM FILENM IS THE NAME OF THE FILE TO BE 150 REM CLEANED OFF THE DISK. THIS 160 REM PARAMETER MUST BE PRESENT. 170 REM ENTER: ****** TO MATCH ALL FILE 180 REM NAMES ON THE DIRECTORY. 190 REM 200 REM TYP IS THE FILE TYPE:BAS, RND, ETC. 210 REM IF THIS PARAMETER IS OMITED 220 REM BAS WILL BE ASSUMED. ENTER: *** 230 REM TO MATCH ALL FILE TYPES ON THE 240 REM DIRECTORY. 250 REM 260 REM VR IS THE VERSION OF THE FILE TO 270 REM BE RETAINED. IF THIS PARAMETER 280 REM IS OMITED THEN THE HIGHEST 290 REM NUMBERED VERSION FOUND WILL BE 300 REM RETAINED. ENTER: ** TO DELETE 310 REM ALL VERSIONS OF THE FILE. 320 REM 330 REM THE DIRECTORY WILL BE RE-DISPLAYED. THIS TIME 340 REM THE FILES SELECTED FOR DELETION WILL BE PRINTED 350 REM IN RED. THEN THERE WILL BE A PROMPT FOR 360 REM VERIFICATION. IF VERIFICATION IS GIVEN THEN 370 REM THE FILES WILL BE DELETED THROUGH FCS. THE 380 REM FILES WILL BE DELETED FROM THE BOTTOM OF THE 390 REM DIRECTORY UP, TO REDUCE THE AMOUNT OF DISK I/O. 400 REM 410 REM AFTER THE DELETIONS HAVE BEGUN THE ONLY TIME 420 REM THE PROGRAM SHOULD BE STOPPED IS DURING A 430 REM DIRECTORY LISTING. 440 REM 900 REM 905 CLEAR 300 910 DIM NA$(7,5),TY$(7,5),VR(7,5),DC(7,5) 1000 REM 1010 REM FIRST DIRECTORY LIST 1020 REM 1030 PLOT 15,6,2,27,4 1040 PRINT "DIR" 1050 PLOT 27,27 2000 REM 2010 REM GET NAME OF FILE TO BE DELETED 2020 REM 2030 INPUT "ENTER NAME OF FILES TO BE DELETED : ";FL$:REM 3000 REM 3010 REM PARSE FILE NAME 3020 REM 3030 VS$= "0" 3040 TP$= "BAS" 3050 NM$= "" 3060 PM= 1 3070 FOR I= 1TO LEN (FL$) 3080 C$= MID$ (FL$,I,1) 3090 ON PMGOTO 4000,4050,4100 4000 IF C$= "."THEN PM= 2:TP$= "":GOTO 4150 4010 IF C$= ";"THEN PM= 3:VS$= "0":GOTO 4150 4020 NM$= NM$+ C$ 4030 IF C$= "*"THEN VS$= "-1" 4040 GOTO 4150 4050 IF C$= ";"THEN PM= 3:VS$= "0":GOTO 4150 4060 TP$= TP$+ C$ 4070 IF C$= "*"THEN VS$= "-1" 4080 GOTO 4150 4100 VS$= VS$+ C$ 4110 IF C$= "*"THEN VS$= "-1":I= LEN (FL$) 4150 NEXT I 4160 IF LEN (NM$)< 6THEN NM$= NM$+ " ":GOTO 4160 4170 IF LEN (TP$)< 3THEN TP$= TP$+ " ":GOTO 4170 4200 VS= 0 4210 FOR I= 1TO LEN (VS$) 4220 C$= MID$ (VS$,I,1) 4230 C= ASC (C$) 4240 C= C- 48 4250 IF C> 9THEN C= C- 7 4260 IF C< 16GOTO 4300 4270 PRINT :PRINT "ILLEGAL HEXADECIMAL VERSION NUMBER":PRINT 4280 GOTO 2000 4300 VS= VS* 16+ C 4310 IF VS> 255GOTO 4270 4320 NEXT I 5000 REM 5010 REM LOAD DIRECTORY INTO MEMORY 5020 REM 5030 T= PEEK (32941)- 2 5040 B= T- 7 5050 X= T:GOSUB 30000:T$= H$ 5060 X= B:GOSUB 30000:B$= H$ 5070 PLOT 27,4 5080 PRINT "READ 00 ";B$;"00-";T$;"FF" 5090 PLOT 27,27 5100 REM 5110 REM SEARCH DIRECTORY FOR NAMES OF FILES TO BE DELETED 5120 REM 5125 HS= 0:HR= 0 5130 LM= PEEK (B* 256+ 34)- 1 5140 FOR S= 0TO LM 5150 FOR R= 0TO 5 5160 IF R= 0AND S= 0GOTO 5750 5170 FB= B* 256+ S* 128+ R* 21+ 3 5180 LB= FB+ 5 5190 IF PEEK (FB- 1)= 1GOTO 6000 5200 N$= "" 5210 FOR I= FBTO LB 5220 N$= N$+ CHR$ (PEEK (I)) 5230 NEXT I 5235 NA$(S,R)= N$ 5240 FB= LB+ 1:LB= FB+ 2 5250 N$= "" 5260 FOR I= FBTO LB 5270 N$= N$+ CHR$ (PEEK (I)) 5280 NEXT I 5290 TY$(S,R)= N$ 5300 VR(S,R)= PEEK (I) 5310 REM 5320 REM DETERMINE IF THIS FILE SHOULD BE DELETED 5330 REM 5340 CD= 0 5350 IF LEFT$ (NM$,1)= "*"GOTO 5400 5360 IF NM$= NA$(S,R)GOTO 5400 5370 GOTO 5700 5400 IF LEFT$ (TP$,1)= "*"GOTO 5450 5410 IF TP$= TY$(S,R)GOTO 5450 5420 GOTO 5700 5450 IF VS= 0GOTO 5500 5460 IF VS= VR(S,R)GOTO 5700 5470 CD= - 1 5480 GOTO 5700 5500 IF LEFT$ (NM$,1)= "*"GOTO 5700 5510 IF LEFT$ (TP$,1)= "*"GOTO 5700 5520 IF VR(HS,HR)> VR(S,R)GOTO 5470 5530 DC(HS,HR)= - 1 5540 HS= S 5550 HR= R 5700 DC(S,R)= CD 5750 NEXT R,S 6000 REM 6010 REM PRINT COLORED DIRECTORY 6020 REM 6030 FS= S:FR= R 6040 FOR S= 0TO FS 6050 FOR R= 0TO 5 6060 FB= B* 256+ S* 128+ R* 21+ 3 6070 IF R= 0AND S= 0GOTO 6500 6080 IF R= FRAND S= FSGOTO 6750 6090 PLOT 6,7 6100 IF DC(S,R)THEN PLOT 6,1 6110 PRINT " 03 ";NA$(S,R);".";TY$(S,R);";"; 58856 LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS LS )) 6530 NEXT I 6540 PLOT 6,2 6550 X= LM+ 1:GOSUB 30000 6560 PRINT :PRINT :PRINT 6570 PRINT "DIRECTORY CD0: ";N$;H$ 6580 PRINT 6590 PRINT "ATR NAME TYPE VR SBLK SIZE LBC LADR SADR" 6600 PRINT 6610 GOTO 6900 6750 PLOT 6,2 6760 PRINT " 01 <FREE SPACE> "; 6770 X= PEEK (FB+ 11):GOSUB 30000 6780 PRINT H$; 6790 X= PEEK (FB+ 10):GOSUB 30000 6800 PRINT RIGHT$ (H$,2); 6810 X= PEEK (FB+ 13):GOSUB 30000 6820 PRINT H$; 6830 X= PEEK (FB+ 12):GOSUB 30000 6840 PRINT RIGHT$ (H$,2) 6850 GOTO 7000 6900 NEXT R,S 7000 REM 7010 REM VERIFY FILES TO DELETE 7020 REM 7025 PRINT 7030 PRINT "< VERIFY > ARE THE FILES IN RED THE ONES TO BE DELETED ?" 7040 INPUT "( YES OR NO ) : ";YN$ 7050 IF LEFT$ (YN$,1)= "N"GOTO 10000 7060 IF YN$< > "YES"GOTO 7040 7070 PLOT 27,4 7080 FOR S= FSTO 0STEP - 1 7090 FOR R= 5TO 0STEP - 1 7100 IF S= FSAND R> FRGOTO 7200 7105 IF R= 0AND S= 0GOTO 10000 7110 IF DC(S,R)= 0GOTO 7200 7120 X= VR(S,R):GOSUB 30000 7130 VS$= RIGHT$ (H$,2) 7132 FL$= NA$(S,R) 7134 FOR I= 2TO 6 7136 IF MID$ (FL$,I,1)= " "THEN FL$= LEFT$ (FL$,I- 1):GOTO 7140 7138 NEXT I 7140 FL$= FL$+ "."+ TY$(S,R)+ ";"+ VS$ 7150 PRINT "DELETE "FL$ 7200 NEXT R,S 7210 PLOT 27,27 10000 END 10010 END 30000 REM 30010 REM CONVERT X TO HEX CHARACTERS AND RETURN IN H$ 30020 REM 30030 H$= " " 30040 X1= INT (X/ 16):X2= X- 16* X1 30050 IF X2> 9THEN X2= X2+ 7 30060 X2= X2+ 48 30070 IF X1> 9THEN X1= X1+ 7 30080 X1= X1+ 48 30090 H$= H$+ CHR$ (X1)+ CHR$ (X2) 30100 IF X1< 71THEN RETURN 30110 X1= X1- 71 30120 H$= "1" 30130 GOTO 30070 65000 REM 65010 REM LIST PROGRAM TO PRINTER 65020 REM 65030 PLOT 27,18,3,27,13 65040 PRINT " "; 65045 OUT 6,27 65050 PRINT "1 "; 65055 OUT 6,27 65060 PRINT "1 "; 65065 OUT 6,27 65070 PRINT "1" 65080 LIST 65090 POKE 33265,0 65100 REM 65110 REM 65120 REM WARNING 65130 REM ======= 65140 REM 65150 REM THIS PROGRAM DELETES FILES FROM THE DISK. 65160 REM 65170 REM THE PROGRAM IS DOCUMENTED WITH REMARK STATEMENTS 65180 REM IN THE BEGINING. THEY SHOULD BE STUDIED BEFORE 65190 REM RUNNING THE PROGRAM. 65200 REM 65210 REM 65220 REM DELETE LINE 1 AND LINES 65100 - 65260 TO MAKE 65230 REM THIS PROGRAM RUNABLE. 65240 REM 65250 REM ALSO DELETE LINES 10 - 440 TO RUN IN 8K 65260 REM