Compucolor.org – Virtual Media

Listing of file='DIRSRT.BAS;01' on disk='vmedia/comtronics-sector.ccvf'

1000 REM  ******* DIRECTORY MOVE SORT PROGRAM **************.
1010 CLEAR 5000:DIM PG$(150),B$(150):P= 1:JL= 0
1020 PLOT 12,6,2,15,13,10,10,10:PR= 0:DS= 0
1030 INPUT "DO YOU WISH TO DISPLAY SORTED 'DIR.' FILES: ";FL$
1040 IF LEFT$ (FL$,1)= "Y"THEN 2120
1050 INPUT "ARE YOU USING A PRINTER WITH THIS PROGRAM: ";PR$
1060 IF LEFT$ (PR$,1)= "Y"THEN PR= 1:REM  ** PR=PRINTER FLAG **.
1070 INPUT "DO YOU WISH TO STORE THIS LISTING ON DISK: ";DS$
1080 IF LEFT$ (DS$,1)= "Y"THEN DS= 1:REM  ** DS=DISPLAY FLAG **.
1090 GOTO 1670
1100 HL= 29448
1110 A$= "":FOR X= 1TO 10:A= PEEK (HL):A$= A$+ CHR$ (A)
1120 HL= HL+ 2:NEXT X
1130 IF MID$ (A$,1,7)= "MENU  ."THEN P= P- 1:A$= "":JL= JL+ 1:GOTO 1160
1140 IF A$= "<FREE SPAC"THEN RETURN
1150 PG$(P)= A$+ DN$+ "/"+ RIGHT$ (SN$,1):B$(P)= PG$(P)
1160 P= P+ 1:HL= HL+ 108:GOTO 1110
1170 LN= LEN (PG$(I))
1180 IF LN= 14THEN 1220
1190 GK$= GK$+ PG$(I)+ "   *   ":JK= JK+ 1
1200 IF JK> 2THEN 1250
1210 RETURN
1220 GK$= GK$+ PG$(I)+ "    *   ":JK= JK+ 1
1230 IF JK> 2THEN 1250
1240 RETURN
1250 GK$= MID$ (GK$,1,62):PRINT GK$:GOTO 1320
1260 IF HY= 30THEN HY= 1:GOTO 1280
1270 HY= HY+ 1:RETURN
1280 IF DS= 1THEN PLOT 8:GOTO 1300
1290 PLOT 12,6,2,15:RETURN
1300 PLOT 27,4:PRINT "SAVE DIRFIL.DSP 7000 1000":PLOT 27,27
1310 PLOT 6,2,12,15:RETURN
1320 IF PR= 1THEN PLOT 27,18,4,27,13:PRINT GK$:POKE 33265,0
1330 GK$= "":JK= 0:GOTO 1260
1340 K= 0:JK= 0:GK$= "":HY= 1:HN= 0
1350 PLOT 6,2,12,15
1360 I= 1
1370 FOR J= 2TO P
1380 IF B$(I)< B$(J)THEN 1400
1390 I= J
1400 NEXT
1410 IF PG$(I)= "9999"THEN 1430
1420 GOSUB 1170
1430 B$(I)= "ZZ":K= K+ 1
1440 IF K= PTHEN 1460
1450 GOTO 1360
1460 HY= HY+ 1:PRINT GK$:GOSUB 1260:HY= HY- 1:GOSUB 1320:GOSUB 1300
1470 IF PR= 1THEN PLOT 27,18,4,27,13:PRINT :JX= 1:GOTO 1490
1480 PRINT :PRINT :JX= 0
1490 PRINT "TOTAL PROGRAMS: ";P- 1
1500 PRINT "TOTAL   MENU'S: ";JL:PRINT :PRINT "E N D"
1510 POKE 33265,0:IF JX= 1THEN 1480
1520 END
1530 PG$(P)= "9999":GOTO 1340
1540 H$= "0123456789ABCDEF":HX$= "":L$= "":E$= "":D7= D5
1550 Q= INT (D5/ 16):E= ((D5/ 16)- Q)* 16
1560 IF INT (Q)< 1THEN E= D5
1570 E$= MID$ (H$,E+ 1,1):L$= L$+ E$
1580 IF Q> .9THEN D5= Q:GOTO 1550
1590 FOR K= 4TO 1STEP - 1:HX$= HX$+ MID$ (L$,K,1)
1600 NEXT K:RETURN
1610 D4= 31104:AS= PEEK (D4+ 1)+ 1:C= AS:RETURN
1620 IF SD= SITHEN RETURN
1630 PLOT 6,1,15:PRINT "E R R O R!! ";:PLOT 6,3:PRINT
1640 PRINT "YOU ARE ON SIDE";SI", NOT SIDE";SD", OF 'DIR.";
1650 PRINT " DISK'."
1660 PLOT 6,2:GOTO 2100
1670 PLOT 12,6,2,15:PRINT :PRINT "SELECT SEARCH ROUTINE: "
1680 PRINT "(1) - SELECTIVE  SCAN:"
1690 PRINT "(2) - SEQUENTIAL SCAN:"
1700 PLOT 3,22,1:INPUT "";ST
1710 IF ST< 1OR ST> 2THEN 1670
1720 ON STGOTO 1990,1730
1730 RS= 1:RE= 64:SD= 1
1740 BB= RS:D5= RS* 6:Y= RE* 6
1750 GOSUB 1870
1760 GOSUB 1540:D5= D7
1770 IF D5> YTHEN 1850
1780 PLOT 27,4:PRINT "REA "HX$" 7980 300":PLOT 27,27
1790 GOSUB 1610:FF= 1:GOSUB 1920
1800 PLOT 27,4:PRINT "WRI "0" 7980 300":PLOT 27,27
1810 PLOT 12,6,2,15,27,4:PRINT "DIR":PLOT 27,27
1820 PRINT "DIRECTORY FOR   DISK";BB"   SIDE";SD;""
1830 DN$= STR$ (BB):SN$= STR$ (SD):GOSUB 1100
1840 BB= BB+ 1:D5= BB* 6:GOTO 1760
1850 BB= RS:D5= RS* 6:SD= SD+ 1:PRINT
1860 IF SD= 3THEN 1530
1870 PRINT :PRINT "INSERT SIDE";SD;" OF DIRECTORY DISK"
1880 INPUT "THEN PRESS ENTER: ";Q$:PLOT 12
1890 GOSUB 2020:GOSUB 1620:GOTO 1760
1900 PRINT "NO DIRECTORY STORED IN SECTION ";:PLOT 6,3
1910 PRINT HX$;" FOR DISK";BB;" SIDE";SD:GOTO 1840
1920 IF AS< 1OR AS> 10THEN 1970
1930 IF PEEK (31106)< > 65THEN 1970
1940 RETURN
1950 PLOT 6,1:PRINT :PRINT "E R R O R";:PLOT 6,3
1960 PRINT "  NO DIRECTORY FOUND":PLOT 6,2:GOTO 2100
1970 IF FF= 1THEN 1900
1980 GOTO 1950
1990 PLOT 3,0,5:INPUT "WHICH SIDE OF 'DIR. DISK': ";SD
2000 INPUT "ENTER DISK RANGE,IE.(6,12):";RS,RE
2010 Y= RE* 6:BB= RS:D5= RS* 6:GOTO 1870
2020 PLOT 12,27,4:PRINT "REA "186" 7980 80":PLOT 27,27
2030 D3= 31104
2040 IF PEEK (D3)= 255AND PEEK (D3+ 2)= 68THEN 2070
2050 PLOT 6,1:PRINT "E R R O R!  ";:PLOT 6,3
2060 PRINT "NOT DIRECTORY DISK":PLOT 6,2:GOTO 2100
2070 IF PEEK (D3+ 1)= 2THEN 2090
2080 SI= 1:RETURN
2090 SI= 2:RETURN
2100 INPUT "TRY AGAIN / PRESS ENTER:";Q$:PRINT
2110 GOTO 1870
2120 PRINT :INPUT "WHAT PAGE WOULD YOU LIKE TO SEE: ";DP$
2130 PRINT :INPUT "PRESS ENTER WHEN READY: ";F$
2140 PLOT 6,0,12,15
2150 PLOT 27,4:PRINT "LOAD DIRFIL.DSP;"DP$:PLOT 27,27
2160 PLOT 6,3,15,3,0,30:PRINT "(1)=NEXT PAGE / (2)=QUIT ";
2170 GOSUB 2210
2180 IF MM= 49THEN PLOT 12:GOTO 2200
2190 END
2200 DP= VAL (DP$):DP= DP+ 1:DP$= STR$ (DP):PLOT 6,0:GOTO 2150
2210 POKE 33278,0:POKE 33279,80
2220 MM= PEEK (33278)
2230 IF MM= 49THEN RETURN
2240 IF MM= 50THEN RETURN
2250 GOTO 2220
2260 END