10 '*************************************************************************** 20 '* * 30 '* KILL.BAS * 40 '* * 50 '* BY ROBERT RELF (70176,403) * 60 '* * 70 '* (C) 1983 * 80 '* * 90 '*************************************************************************** 100 ' 110 ' REQUIRES DOS 2.00,COLOR GRAPHICS ADAPTER,2 DISK DRIVES 120 ' FORMAT A DISK WITH THE "/S" OPTION 130 ' COPY ONTO IT: KILL.BAS,BASICA.COM,COMMAND.COM,SORT.EXE 140 ' OR RUN WITH DOS DISK IN DRIVE "A" 150 ' REMOVE APOSTROPHE FROM LINE 180 FOR COLOR MONITOR OR 160 ' FROM LINE 190 FOR NON-IBM MONOCHROME MONITOR 170 ' 180 COL1=1:COL2=2:COL4=4:COL5=5:COL7=7:COL10=10:COL14=14:COL15=15 190 'COL1=0:COL2=15:COL4=15:COL5=15:COL7=7:COL10=7:COL14=15:COL15=15 195 GOSUB 50000 'switch to color/graphics ** Added by Tom D. Hall ** 200 KEY OFF:SCREEN 0,1:COLOR COL15,0,0:WIDTH 40:CLS:LOCATE 5,19:PRINT "IBM" 210 LOCATE 7,12,0:PRINT "Personal Computer" 220 COLOR COL10,0:LOCATE 10,5,0:PRINT CHR$(213)+STRING$(31,205)+CHR$(184) 230 LOCATE 11,5,0:PRINT CHR$(179)+" KILL "+CHR$(179) 240 LOCATE 12,5,0:PRINT CHR$(179)+" "+CHR$(179) 250 LOCATE 13,5,0:PRINT CHR$(179)+STRING$(31,32)+CHR$(179) 260 LOCATE 14,5,0:PRINT CHR$(179)+" Version 1.00 "+CHR$(179) 270 LOCATE 15,5,0:PRINT CHR$(212)+STRING$(31,205)+CHR$(190) 280 COLOR COL15,0:LOCATE 17,6,0:PRINT "(C) Copyright Rob Relf 1983" 290 COLOR COL14,0:LOCATE 23,7,0:PRINT "Press space bar to continue" 300 DEF SEG : POKE 106,0 'CLEAR KEYBOARD BUFFER 310 IK$=INKEY$ : IF IK$ = "" THEN GOTO 310 320 ON ERROR GOTO 1360 330 DEF SEG=0:POKE &H417,192 'CAPS LOCK / NUM LOCK ON 340 SCREEN ,,1,1:WIDTH 80:COLOR COL7,COL1,COL1:CLS:DIM FILE$(200):ROW=10 350 PRINT "THIS IS A PROGRAM FOR DELETING MULTIPLE FILES FROM THE SELECTED DISK. 360 PRINT "UP TO 80 FILES MAY BE DELETED IN ONE SESSION. 370 PRINT "WHICH DISK DO YOU WISH TO ERASE FILES FROM ?"; 380 PRINT " PLEASE TYPE THE DRIVE LETTER. 390 B$=INKEY$ 400 IF B$="" THEN GOTO 390 410 IF ASC(B$)>68 OR ASC(B$)<65 THEN BEEP:GOTO 390 'TEST FOR "A" TO "D" 420 CLS 430 SHEL$="DIR "+B$+":| SORT > FILE.LST":GOSUB 1380 'SORT DIR TO DISK FILE 440 SCREEN ,,1,1:CLS 450 LOCATE 3,1:COLOR COL5 460 PRINT STRING$(45,205);CHR$(203);STRING$(34,205); 470 FOR X=1 TO 11:PRINT TAB(46) CHR$(186);:NEXT 480 PRINT TAB(46) CHR$(204); 490 LOCATE 15,47:PRINT STRING$(34,205); 500 FOR X=13 TO 20:PRINT TAB(46) CHR$(186);:NEXT 510 LOCATE 24,1:PRINT STRING$(45,205);CHR$(188);:COLOR COL7 520 LOCATE 1,1 530 PRINT "USE THE "CHR$(24)" AND "CHR$(25)" KEYS TO SELECT AND THE Del KEY "; 540 PRINT "TO MARK THE FILE(S) TO DELETE. 550 PRINT "PRESS THE SPACE BAR TO ADVANCE THE LISTING ON THE SCREEN "; 560 PRINT "(YOU CANNOT COME BACK) 570 LOCATE 4,48:PRINT"PRESS THE ESCAPE KEY TO EXIT 580 LOCATE 5,48:PRINT"FROM THIS PROGRAM. 590 LOCATE 7,48:PRINT"TO VIEW THE CONTENTS OF A FILE, 600 LOCATE 8,48:PRINT"MOVE THE CURSOR TO THE NAME, 610 LOCATE 9,48:PRINT"THEN TYPE THE LETTER "CHR$(34)"T"CHR$(34)"." 620 LOCATE 10,48:PRINT"USE CONTROL / NUM LOCK 630 LOCATE 11,48:PRINT"TO CONTROL SCROLLING. 640 LOCATE 13,48:PRINT"PRESSWHEN YOU ARE DONE 650 LOCATE 14,48:PRINT"SELECTING FILES TO DELETE. 660 KEY 15,CHR$(&H40)+CHR$(83) 'ASSIGN SPECIAL FUNCTION KEYS 670 KEY 16,CHR$(&H40)+CHR$(1) 680 ON KEY(11)GOSUB 790:KEY(11)ON 690 ON KEY(14)GOSUB 810:KEY(14)ON 700 ON KEY(15)GOSUB 950:KEY(15)ON 710 ON KEY(16)GOSUB 1340:KEY(16)ON 720 OPEN "FILE.LST" FOR INPUT AS #1 'GET DIR LISTING FROM DISK 730 GOSUB 830 740 C$=INKEY$ 750 IF C$=" "THEN ROW=4:GOSUB 830 760 IF C$=CHR$(13) THEN 1120 770 IF C$="T" THEN GOSUB 1420 780 GOTO 740 790 IF CSRLIN>4 THEN LOCATE CSRLIN-1,1 800 RETURN 810 IF CSRLIN<23 THEN LOCATE CSRLIN+1,1 820 RETURN 830 IF DONE=1 THEN BEEP:RETURN 840 LOCATE 4,1 850 FOR X=1 TO 20 860 IF NOT EOF(1) THEN 900 870 IF EOF(1) THEN CLOSE #1:DONE=1:COLOR COL2 880 PRINT "****END OF LISTING HAS BEEN REACHED**** 890 COLOR COL7:LOCATE ROW,1,1,0,7:RETURN 900 INPUT #1,A$ 910 PRINT A$ 920 NEXT 930 LOCATE ROW,1,1,0,7 940 RETURN 950 IF POS(0)>1 THEN BEEP:RETURN 960 IF Z=80 THEN COLOR COL7:GOTO 1120 970 COLOR COL4:Z=Z+1 980 FOR X=1 TO 12 990 IF X=9 THEN FILE$(Z)=FILE$(Z)+"." 1000 V=SCREEN(CSRLIN,X,1):IF V MOD 16=4 THEN BEEP:Z=Z-1:GOTO 1090 1010 IF V MOD 16=15 THEN BEEP:Z=Z-1:GOTO 1090 'TEST FOR FILE ALREADY MARKED 1020 C=SCREEN(CSRLIN,X) 1030 IF C=32 THEN 1070 1040 C$=CHR$(C) 1050 FILE$(Z)=FILE$(Z)+C$ 1060 LOCATE CSRLIN,X:PRINT C$; 1070 NEXT 1080 Y=CSRLIN:LOCATE 25,1:PRINT FILE$(Z);" ";:LOCATE Y,X 1090 COLOR COL7 1100 IF CSRLIN<23 THEN LOCATE CSRLIN+1,1 1110 RETURN 740 1120 CLS:LOCATE 4,1 1130 FOR X=1 TO Z 1140 IF X>60 THEN LOCATE X-57,61:GOTO 1170 'FORMAT SCREEN LISTING OF 1150 IF X>40 THEN LOCATE X-37,41:GOTO 1170 'MARKED FILENAMES 1160 IF X>20 THEN LOCATE X-17,21:GOTO 1170 1170 PRINT USING"###";X;:PRINT " "+FILE$(X) 1180 NEXT 1190 LOCATE 1,1,0 1200 PRINT "THESE ARE THE FILES THAT WILL BE ";:COLOR COL14:PRINT "DELETED"; 1210 COLOR COL7:PRINT " FROM DRIVE ";B$;". IS THIS OK? 1220 PRINT "ENTER THE NUMBER OF ONE FILE TO ";CHR$(34);"UNDELETE";CHR$(34); 1230 PRINT " OR JUST IF LIST IS CORRECT.":INPUT "",I 1240 IF I=0 THEN 1260 1250 FILE$(I)="":GOTO 1120 1260 CLS:LOCATE 5,20:PRINT "DELETING FILES. PLEASE STAND BY. 1270 FOR X=1 TO Z 1280 LOCATE 8,1:PRINT STRING$(20," ") 1290 LOCATE 8,1:PRINT B$+":"+FILE$(X) 1300 KILL B$+":"+FILE$(X) 1310 NEXT 1314 CLOSE '** ADDED BY TOM D. HALL **" 1315 KILL B$+":FILE.LST" '** ADDED BY TOM D. HALL **" 1320 SCREEN ,,0,0:LOCATE ,,,7,7:CLS 1330 LOCATE 5,20:PRINT "*********** FINISHED *************":GOTO 1350 1340 SCREEN ,,0,0:LOCATE ,,,7,7:CLS 1350 LOCATE 1,1:END 1360 IF ERR=53 THEN RESUME 1310 ELSE IF ERR=64 THEN RESUME 1310 1370 IF ERR=76 THEN RESUME 1310 ELSE PRINT "OTHER ERROR" 'IGNORE THESE ERRORS 1380 DEF SEG:A=PEEK(&H30):B=PEEK(&H31) 'GET OFFSET TO START OF PROGRAM TEXT 1390 SHELL SHEL$ 'EXECUTE DOS COMMAND 1400 DEF SEG:POKE &H30,A:POKE &H31,B 'RESTORE OFFSET TO START OF PROGRAM 1410 RETURN 1420 FOR X=1 TO 12 'GET FILENAME TO USE IN DOS "TYPE" COMMAND 1430 IF X=9 THEN TYPE$=TYPE$+"." 1440 C=SCREEN(CSRLIN,X) 1450 IF C=32 THEN 1480 1460 C$=CHR$(C) 1470 TYPE$=TYPE$+C$ 1480 NEXT 1490 ROW=CSRLIN 'GET CURRENT ROW 1500 SCREEN ,,0,0:COLOR COL7,COL1,COL1:CLS 'CHANGE DISPLAY PAGE OF C/G ADPT 1510 SHEL$="TYPE "+B$+":"+TYPE$:GOSUB 1380 'FILENAME TO TYPE 1520 COLOR COL2:LOCATE 25,4 1530 PRINT" ********* STRIKE ANY KEY TO RETURN TO PROGRAM ********"; 1540 COLOR COL7 1550 TYPE$="" 1560 D$=INKEY$:IF D$="" THEN 1560 1570 SCREEN ,,1,1:LOCATE ROW,1,1,0,7 'RETURN TO FORMER DISPLAY PAGE 1580 RETURN 49990 REM ---- Switch to Color Monitor ** Added by Tom D. Hall ** 50000 KEY OFF 'turn off 25th line 50010 CLS 'clear screen 50020 LOCATE ,,0 'turn off cursor 50030 DEF SEG =0 'address bios 50040 POKE &H410,(PEEK(&H410) AND &HCF) OR &H10 'change equipment parameter 50050 DEF SEG 'address default memory 50060 SCREEN 1 'set medium resolution graphics 50070 SCREEN 0 'set text mode 50080 WIDTH 80 'set width to 80 characters 50090 WIDTH 40 'set width to 40 characters 50100 LOCATE ,,1,6,7 'turn on cursor 50110 SCREEN 1,0 'set medium resolution graphics and enable color 50120 COLOR 0,0 'set background to black and select palette 0 50130 RETURN