Listing of file='DIRMOV.BAS;01' on disk='vmedia/comtronics-sector.ccvf'
100 REM *****************************************************. 110 REM * *. 120 REM * DIRECTORY MOVE PROGRAM *. 130 REM * *. 140 REM * BY : GORDON RUSCH *. 150 REM * BUFFALO, N.Y. *. 160 REM * (716)674-8551 *. 170 REM * *. 180 REM * FILESPEC:( DIRMOV ) *. 190 REM * *. 200 REM * ---------d--------- *. 210 REM * *. 220 REM * THIS PROGRAM WILL: *. 230 REM * (1) SAVE DIRECTORY ON SAME DISK *. 240 REM * (2) SAVE DIRECTORY ON 'DIR. DISK' *. 250 REM * (3) RETRIEVE DIRECTORY FROM SAME DISK *. 260 REM * (4) RETRIEVE DIRECTORY FROM 'DIR. DISK' *. 270 REM * (5) SCAN DIRECTORY DISK FOR ALL FILES *. 280 REM * *. 290 REM * [8/20/79] *. 300 REM * 829A-A3C0 8.47K *. 310 REM *****************************************************. 320 REM 330 REM 340 REM ------------------ MAIN PROGRAM ---------------------. 350 REM 360 REM 370 CLEAR :CL= 3:D4= 43008:GOTO 440 380 PLOT 27,4:PRINT "REA "0" A800 "H$:PLOT 27,27 390 PLOT 27,4:PRINT "WRI "B$" A800 "H$:PLOT 27,27 400 PRINT "D O N E":PRINT :RETURN 410 REM --------------------------------------------------. 420 REM MENU AND QUESTIONS ROUTINE. 430 REM --------------------------------------------------. 440 PLOT 14,12,6,CL:B$= "0186":FF= 0:JJ= 0 450 PRINT TAB( 10);"DIRECTORY d STORE & RETRIEVE d PROGRAM" 460 PLOT 15:GOSUB 480:GOSUB 500:GOSUB 520:GOSUB 540 470 GOSUB 560:GOSUB 580:GOTO 600 480 PLOT 3,0,5,6,CL:PRINT "1) SAVE PRESENT DIRECTORY ON "; 490 PRINT "SAME DISK.":RETURN 500 PLOT 3,0,7,6,CL:PRINT "2) RETRIEVE STORED DIRECTORY "; 510 PRINT "FROM SAME DISK.":RETURN 520 PLOT 3,0,9,6,CL:PRINT "3) RETRIEVE STORED DIRECTORY "; 530 PRINT "FROM 'DIR. DISK'.":RETURN 540 PLOT 3,0,11,6,CL:PRINT "4) SAVE PRESENT DIRECTORY ON "; 550 PRINT "'DIR. DISK'.":RETURN 560 PLOT 3,0,13,6,CL:PRINT "5) SEARCH -> SCAN DIRECTORY "; 570 PRINT "DISK FOR ALL FILES.":RETURN 580 PLOT 3,0,15,6,CL:PRINT "6) INITIALIZE DIRECTORY DISK." 590 RETURN 600 PRINT :PRINT :PLOT 11,6,15,15 610 PRINT "PLEASE MAKE PROPER SELECTION: "; 620 PLOT 6,6:INPUT "";SE:CL= 70 630 IF SE< 1OR SE> 6THEN PLOT 28,28,28:GOTO 600 640 ON SEGOSUB 480,500,520,540,560,580:PLOT 3,0,19,6,2 650 ON SEGOTO 690,770,1350,1130,1560,2000 660 REM ------------------------------------------------. 670 REM SAVE DIR. ON SAME DISK. 680 REM ------------------------------------------------. 690 PLOT 6,3:PRINT 700 PRINT "INSERT DISK YOU WISH TO SAVE DIR. FROM.":PRINT 710 INPUT "THEN PRESS ENTER : ";Q$:EL= 5:GOSUB 2300:GOSUB 1080 720 B$= "0":GOSUB 1010:GOSUB 1830:GOSUB 950 730 GOSUB 850:B$= "0186":GOSUB 380:GOTO 970 740 REM ------------------------------------------------. 750 REM RETRIEVE STORED DIR. FROM SAME DISK. 760 REM ------------------------------------------------. 770 GOSUB 810:GOSUB 1080:GOSUB 1010:GOSUB 1830:B$= "0186" 780 GOSUB 950 790 GOSUB 850:GOSUB 1040:GOSUB 800:GOSUB 400:GOTO 970 800 PLOT 12,6,3,27,4:PRINT "DIR":PLOT 27,27:PRINT :RETURN 810 PLOT 6,2:PRINT :INPUT "PRESS ENTER WHEN READY: ";Q$ 820 RETURN 830 REM ------------------------------------------------. 840 REM DEC. TO HEX CONVERSION ROUTINE. 850 REM ------------------------------------------------. 860 H$= "":XX= X:FOR DD= 3TO 0STEP - 1 870 IF DD= 0THEN X1= XX:GOTO 890 880 X1= INT (XX/ 16^ DD):XX= XX- X1* 16^ DD 890 IF X1< 10THEN X1= X1+ 48:GOTO 910 900 X1= X1+ 55 910 H$= H$+ CHR$ (X1):NEXT DD 920 RETURN 930 REM ------------------------------------------------. 940 REM BLOCK SIZE (C), CONVERTED TO BYTES (X). 950 REM ------------------------------------------------. 960 X= C* 128:RETURN 970 PRINT :PLOT 6,3:PRINT "WOULD YOU LIKE ANOTHER 'MENU'" 980 PRINT "JUST PRESS ENTER FOR YES: ";:INPUT Q$ 990 IF Q$= "N"OR Q$= "NO"THEN END 1000 GOTO 370 1010 PLOT 27,4:PRINT "REA "B$" A800 80":PLOT 27,27 1020 D4= 43008 1030 AS= PEEK (D4+ 1)+ 1:C= AS:RETURN 1040 PLOT 27,4:PRINT "REA "B$" A800 "H$:PLOT 27,27 1050 PLOT 27,4:PRINT "WRI "0" A800 "H$:PLOT 27,27 1060 RETURN 1070 PLOT 12 1080 PLOT 15,6,25:PRINT :PRINT "PLEASE WAIT":PRINT :PLOT 6,3 1090 RETURN 1100 REM -----------------------------------------------. 1110 REM SAVE DIRECTORY ON 'DIR. DISK'. 1120 REM -----------------------------------------------. 1130 PRINT :PRINT "INSERT DISK TO BE COPIED:":PRINT 1140 INPUT "THEN PRESS ENTER: ";Q$:JJ= 7:EL= 7 1150 PLOT 6,3:B$= "0":GOSUB 1010:GOSUB 1830:GOSUB 800 1160 GOSUB 950:GOSUB 850 1170 PLOT 27,4:PRINT "REA "B$" A800 "H$:PLOT 27,27 1180 PRINT :INPUT "WHAT IS THE NUMBER OF THIS DISK :";N 1190 JJ= 1:EL= 7:IF N< 1OR N> 64THEN 2260 1200 INPUT "WHICH SIDE IS IT. ( 1 OR 2 ). :";SD 1210 JJ= 2:EL= 6:IF SD< 1OR SD> 2THEN 2380 1220 PRINT :PRINT "INSERT SIDE ";SD;" OF DIRECTORY DISK" 1230 PRINT :INPUT "THEN PRESS ENTER:";Q$:JJ= 6:GOSUB 2160 1240 GOSUB 1250:GOTO 1300 1250 IF SD= SITHEN RETURN 1260 PLOT 6,1,15:PRINT "E R R O R! ";:PLOT 6,3:PRINT 1270 PRINT "YOU ARE ON SIDE";SI", NOT SIDE";SD", OF 'DIR."; 1275 PRINT " DISK'." 1280 PLOT 6,2:EL= 8:GOTO 2280 1290 IF JJ= 6THEN PRINT :GOTO 1390 1300 X= N* 6 1310 HX$= H$:GOSUB 850 1320 PLOT 27,4:PRINT "WRI "H$" A800 "HX$:PLOT 27,27 1330 PLOT 27,4:PRINT "WRI "0" A800 "HX$:PLOT 27,27 1340 GOSUB 800:GOSUB 400:GOTO 970 1350 PRINT :INPUT "PLEASE ENTER DISK NUMBER: ";N 1360 JJ= 3:EL= 7:IF N< 1OR N> 64THEN 2260 1370 PRINT :INPUT "PLEASE ENTER SIDE NUMBER: ";SD 1380 JJ= 4:EL= 7:IF SD< 1OR SD> 2THEN 2380 1390 PRINT :PRINT "INSERT SIDE";SD" OF 'DIR. DISK'":PRINT 1400 INPUT "THEN PRESS ENTER:";Q$:JJ= 5:EL= 7:GOSUB 2160 1410 GOSUB 1250 1420 X= N* 6 1430 GOSUB 850:PLOT 27,4:PRINT "REA "H$" A800 80":HX$= H$ 1440 PLOT 27,27:AS= PEEK (D4+ 1)+ 1:C= AS 1450 GOSUB 1830:GOSUB 950 1460 GOSUB 850:PLOT 27,4:PRINT "REA "HX$" A800 "H$:PLOT 27,27 1470 PLOT 27,4:PRINT "WRI "0" A800 "H$:PLOT 27,27 1480 GOSUB 800:PLOT 6,6 1490 INPUT "IS THIS THE CORRECT DIRECTORY :";W$ 1500 IF W$= "N"THEN 1800 1510 PLOT 6,5:PRINT "INSERT DISK";N;" SIDE";SD:PLOT 6,2:PRINT 1520 HX$= H$:INPUT "THEN PRESS ENTER: ";Q$:GOTO 1330 1530 REM --------------------------------------------. 1540 REM DIRECTORY DISK SEARCH ROUTINE. 1550 REM --------------------------------------------. 1560 PLOT 6,28:PRINT :PRINT "SELECT TYPE OF SEARCH ROUTINE:" 1570 PRINT :PRINT "1) - SELECTIVE SCAN. ":PRINT 1580 PRINT "2) - SEQUENTIAL SCAN. ":PLOT 6,6:EL= 7 1590 PLOT 3,30,20:INPUT "";ST:PLOT 6,3,3,0,26 1600 IF ST< 1OR ST> 2THEN GOSUB 2310:GOTO 1560 1610 ON STGOTO 1900,1620 1620 RS= 1:RE= 64:SD= 1 1630 BB= RS:X= RS* 6:Y= RE* 6:GOSUB 2310:GOSUB 1750:GOSUB 850 1640 GOSUB 850 1650 IF X> YTHEN 1730 1660 X= X+ 6:PLOT 27,4:PRINT "REA "H$" A800 300":PLOT 27,27 1670 GOSUB 1030:FF= 1:GOSUB 1830 1680 PLOT 27,4:PRINT "WRI "0" A800 300":PLOT 27,27:GOSUB 800 1690 PLOT 6,2 1700 PRINT "DIRECTORY FOR DISK";BB" SIDE";SD;"" 1710 IF PR= 1THEN 2410 1720 BB= BB+ 1:GOTO 1640 1730 BB= RS:X= RS* 6:SD= SD+ 1:PRINT 1740 IF SD= 3THEN PLOT 6,49:PRINT "SEARCH COMPLETED:":GOTO 970 1750 PRINT :PRINT "INSERT SIDE";SD;" OF DIRECTORY DISK" 1760 PRINT :PLOT 6,2:INPUT "THEN PRESS ENTER: ";Q$ 1770 JJ= 8:EL= 7:GOSUB 2160:GOSUB 1250:GOTO 1640 1780 PRINT "NO DIRECTORY STORED IN SECTION ";:PLOT 6,3 1790 PRINT H$;" FOR DISK";BB;" SIDE";SD:BB= BB+ 1:GOTO 1640 1800 PLOT 6,1,14:PRINT :PRINT "YOUR NUMBERS MUST BE INCORRECT" 1810 PLOT 6,3,15:PRINT :PRINT "T R Y A G A I N" 1820 PLOT 6,2:INPUT "PRESS ENTER WHEN READY ";Q$:GOTO 970 1830 IF AS< 1OR AS> 10THEN 1880 1840 IF PEEK (43010)< > 65THEN 1880 1850 RETURN 1860 PLOT 6,1:PRINT :PRINT "E R R O R";:PLOT 6,3 1870 PRINT " NO DIRECTORY FOUND":PLOT 6,2:GOTO 2280 1880 IF FF= 1THEN 1780 1890 GOTO 1860 1900 EL= 7:GOSUB 2310:PRINT :PRINT "WHICH SIDE OF 'DIR,"; 1910 INPUT " DISK'. ";SD:PRINT 1920 INPUT "ENTER DISK RANGE, EG.(6,12).";RS,RE 1930 EL= 3:GOSUB 2310:Y= RE* 6:BB= RS:X= RS* 6 1940 PR= 0:INPUT "ARE YOU USING A PRINTER. ";PR$ 1950 IF LEFT$ (PR$,1)= "Y"THEN PR= 1:PLOT 6,3:GOTO 1750 1960 GOTO 1750 1970 REM -----------------------------------------------. 1980 REM DIRECTORY DISK INITIALIZE AREA. 1990 REM -----------------------------------------------. 2000 J= 255:K= 1:L= 68:D3= 44032 2010 POKE D3,J:POKE D3+ 1,K:POKE D3+ 2,L 2020 PLOT 12,6,6:PRINT :PRINT 2030 PRINT "INSERT SIDE 1 OF DIRECTORY DISK" 2040 PRINT "THEN PRESS ENTER: ";:INPUT "";Q$ 2050 PLOT 27,4:PRINT "WRI "186" AC00 80":PLOT 27,27 2060 PRINT :POKE D3+ 1,2 2070 PRINT "INSERT SIDE 2 OF DIRECTORY DISK" 2080 PRINT "THEN PRESS ENTER: ";:INPUT "";Q$ 2090 PLOT 27,4:PRINT "WRI "186" AC00 80":PLOT 27,27 2100 PLOT 6,3,14:PRINT :PRINT "DIRECTORY INITIALIZED" 2110 PLOT 15,6,2:PRINT 2120 INPUT "PRESS ENTER TO CONTINUE: ";Q$:GOTO 370 2130 REM ----------------------------------------------. 2140 REM DIRECTORY DISK TEST AREA. 2150 REM ----------------------------------------------. 2160 PLOT 27,4:PRINT "REA "186" AC00 80":PLOT 27,27:PRINT 2170 D3= 44032 2180 IF PEEK (D3)= 255AND PEEK (D3+ 2)= 68THEN 2230 2190 PLOT 6,1:PRINT "E R R O R! ";:PLOT 6,3 2200 PRINT "NOT DIRECTORY DISK":PLOT 6,2:GOTO 2280 2210 IF KK= 1THEN 1220 2220 IF KK= 2THEN 1390 2230 IF PEEK (D3+ 1)= 2THEN 2250 2240 SI= 1:RETURN 2250 SI= 2:RETURN 2260 PLOT 6,1:PRINT :PRINT "E R R O R!":PLOT 6,3:PRINT 2270 PRINT "DISK NUMBER IS OUT OF RANGE (1-64).":PLOT 6,2 2280 INPUT "TRY AGAIN / PRESS ENTER:";Q$:GOSUB 2300 2290 ON JJGOTO 1180,1200,1350,1370,1390,1220,1130,1750 2300 REM ------------------------------------------------. 2310 REM ERASE LINE ROUTINE. 2320 REM ------------------------------------------------. 2330 FOR RO= 1TO EL:PLOT 28:NEXT RO 2340 FOR RO= 1TO EL 2350 PRINT " " 2360 NEXT RO 2370 FOR RO= 1TO EL:PLOT 28:NEXT RO:PLOT 6,3:RETURN 2380 PLOT 6,1:PRINT :PRINT "E R R O R!":PLOT 6,3:PRINT 2390 PRINT "THERE ARE ONLY TWO(2) SIDES TO A DISK.":PLOT 6,2 2400 GOTO 2280 2410 PLOT 27,18,4,27,13:PRINT CHR$ (28) 2420 PRINT "-------------------------------------------------"; 2425 PRINT "----------" 2430 PRINT "DIRECTORY FOR: DISK";BB" SIDE";SD 2440 POKE 33265,0:PLOT 27,18,4,27,7 2450 PRINT "DIR":PLOT 27,27:POKE 33265,0:GOTO 1720 2460 END