Compucolor.org – Virtual Media

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

100 REM  	PRTFIL	32	2/9/81
110 PLOT 12:CLEAR 2000
120 PLOT 6,48,14,3,12,0:PRINT "   F I L E   N A M E   L I S T E R   ":PLOT 6,2,15,3,0,5
121 INPUT "DO YOU REQUIRE A SELECTIVE PRINT  Y/N? ";YN$:PRINT
122 IF YN$= "Y"THEN 840
130 TM= PEEK (32940)+ PEEK (32941)* 256:DR= PEEK (TM+ 1):DR$= MID$ (STR$ (DR),2)+ ":":PR= PEEK (TM+ 2)
140 FILE "T",610
150 FILE "R",1,"INDEX.INF",1:GET 1,1,9;N1,N2,DMY
160 M= INT (DMY/ 3200):D= INT ((DMY- M* 3200)/ 100):Y= DMY- (INT (DMY/ 100)* 100)
170 FILE "R",2,"FILER",1:GET 2,2304;S1$[1],S2$[1]:F1= ASC (S1$)+ ASC (S2$)* 256
190 R1= 1:R2= 1:T= - 1:F3= F1+ 1
200 PRINT "INDEX CONTAINS "F1" FILES.":PRINT
270 IF PR= 0THEN 380
280 INPUT "OUTPUT TO SCREEN OR PRINTER? ";YN$:PRINT
290 IF YN$= "S"THEN 380
300 IF YN$< > "P"THEN 280
310 PP= 1:INPUT "VERTICAL OR HORIZONTAL FORMAT? ";YN$:PRINT
320 IF YN$= "V"THEN 370
330 IF YN$< > "H"THEN 310
340 INPUT "NUMBER OF COLUMNS AVAILABLE ON PRINTER? ";N:PRINT
350 IF N< 0OR N> 132THEN 340
360 CD= INT (N/ 22):POKE 33289,N
362 INPUT "LINES PER PAGE? ";N:PRINT :N= N- 4
370 INPUT "PRESS ENTER WHEN PRINTER ALIGNED TO TOP OF FORM. ";YN$:PRINT :PLOT 27,13:SL= 5
380 PRINT :PRINT "ALPHABETIZED LISTING OF INDEXED FILES AT "D"/"M"/"Y"":PRINT
420 FOR I= 1TO F1
430 GET 2,I;NA$[6],TY$[3],VE$[1],RN$[1]
460 REM  INSERT SELECTIVE PRINT OPTIONS INTO LINES 461-469
463 REM  AND SEND DISCARDS TO LINE 560
464 REM  YOU MAY SELECT ON NA$,TY$,VE$,OR RN$
465 REM  E.G. 466IFTY$<>"BAS"THEN560
470 Z= ASC (VE$):GOSUB 780:IF LEN (B$)= 1THEN B$= "0"+ B$
480 EN$= NA$+ "."+ TY$+ ";"+ B$
490 DN= ASC (RN$):AL= INT ((DN- 1)/ 20):AL$= CHR$ (65+ AL):NN= DN- 20* AL:NU= INT ((NN- 1)/ 2):DS= NN- 2* NU
500 IF DS= 1THEN S$= "F":GOTO 520
510 S$= "B"
520 DI$= ""+ AL$+ MID$ (STR$ (NU),2)+ " "+ S$+ ""
530 IF PP= 0AND SL= 24THEN SL= 0:PRINT :INPUT "PRESS ENTER FOR NEXT PAGE. ";YN$:PRINT :GOTO 550
540 IF CD< > 0THEN GOSUB 730:GOTO 555
550 GOSUB 770
555 IF PP= 1AND SL= NTHEN PRINT :PRINT :PRINT :PRINT :PRINT :PRINT :SL= 1
560 NEXT I
570 PRINT :PRINT :IF PP= 1THEN POKE 33265,0
580 INPUT "ANOTHER PRINTING Y/N? ";YN$:PRINT
590 IF YN$= "Y"THEN 190
600 FILE "C",1,2:POKE 33289,64:PLOT 1
610 PRINT "FILE ERROR! ":PRINT :GOTO 600
620 IF PP= 0THEN 650
630 POKE 33265,0:INPUT "PRESS ENTER WHEN PRINTER ALIGNED FOR SECOND LIST. ";YN$
640 PLOT 27,13
730 T= T+ 1:IF T= CDTHEN T= 0
740 TT= 22* T
750 PRINT TAB( TT)EN$TAB( TT+ 15)DI$;:IF T= CD- 1THEN SL= SL+ 1:PRINT
760 RETURN
770 PRINT EN$TAB( 15)DI$:SL= SL+ 1:RETURN
780 B$= "":Z2= Z
790 Z1= Z2- INT (Z2/ 16)* 16:Z2= INT (Z2/ 16)
800 IF Z1< 10THEN B$= CHR$ (48+ Z1)+ B$
810 IF Z1> 9THEN B$= CHR$ (55+ Z1)+ B$
820 IF Z2= 0THEN RETURN
830 GOTO 790
840 PRINT "SELECTIVE PRINT LOGIC MUST BE ENTERED AS PROGRAM LINES FROM"
850 PRINT :PRINT "LINE 461 TO 469. THE PARAMETERS YOU MAY COMPARE ARE:-":PRINT
860 PRINT "FILE NAME - NA$ - A SIX CHR STRING;"
870 PRINT "FILE TYPE - TY$ - A THREE CHR STRING;"
880 PRINT "VERSION - ASC(VE$) - A ONE BYTE INTEGER;"
890 PRINT "DISC NUMBER - ASC(RN$) - (1-200).":PRINT
900 PRINT "UNWANTED FILES ARE SKIPPED BY 'GOTO 560' .":PRINT
910 PRINT "AN EXAMPLE IS SHOWN IN REM LINE 465":PRINT
920 PRINT "AFTER ENTERING THE LINE(S), TYPE RUN 130 <ENTER>."
930 PRINT :END