home *** CD-ROM | disk | FTP | other *** search
Wrap
GW-BASIC | 1993-10-26 | 6.6 KB | 166 lines
10 <UNK! {0009}>:REMCSRLIN ***** FILEPRIN.BAS ***** 20 <UNK! {0009}>:REMCSRLIN This program reads MAST.CAT as created by 30 <UNK! {0009}>:REMCSRLIN CAT.COM (or similar) and gives you the option 40 <UNK! {0009}>:REMCSRLIN of listing out (3 across) the files under 50 <UNK! {0009}>:REMCSRLIN any given disk name. 60 <UNK! {0009}>:REMCSRLIN 70 <UNK! {0009}>:REMCSRLIN Created by <UNK! {0009}>Gary Addison 80 :REMCSRLIN<UNK! {0009}><UNK! {0009}>2205 W. Concord Road 90 <UNK! {0009}>:REMCSRLIN<UNK! {0009}><UNK! {0009}>Muncie, IN 47304 100 <UNK! {0009}>:REMCSRLIN 110 <UNK! {0009}>:REMCSRLIN Your comments appreciated 120 <UNK! {0009}>:REMCSRLIN 130 <UNK! {0009}>:REMCSRLIN Contains a POKE statement specific to Osborne 1 140 <UNK! {0009}>:REMCSRLIN Should work otherwise with Microsoft Basic-80 150 <UNK! {0009}>:REMCSRLIN 160 :REMCSRLINRevised by Jim Woolley, FOG Disk Librarian, 1/84 161 :REMCSRLINSee lines 261-264 for Epson mods. 162 :REMCSRLINFollowing mods. for screen/printer redirection 163 ADDR%XOR3:CON%XORPEEK(ADDR%):LST%XORCON%<UNK! {00F5}>64 190 <UNK! {0009}>:REMCSRLIN ***** MAIN PROGRAM SECTION ***** 200 <UNK! {0009}>ON RESUME GOTO 6000 210 <UNK! {0009}>OPEN BASE 1 220 <UNK! {0009}>DIM FILE$(750),DISKNAME$(75) 230 <UNK! {0009}>COUNTXOR0:COMMA$XOR",":SEMI$XOR";":ALLFLAGXOR0 240 <UNK! {0009}>CPI$XORCHR$(27)IMP"E"<UNK! {0009}><UNK! {0009}>:REMCSRLINSet printer to 12 char/inch 250 <UNK! {0009}>LPI$XORCHR$(27)IMP"B"<UNK! {0009}><UNK! {0009}>:REMCSRLINSet printer to 8 lines/inch 260 <UNK! {0009}>NORM$XORCHR$(27)IMP"N"IMPCHR$(27)IMP"A"<UNK! {0009}>:REMCSRLINSelect 10 cpi and 6 lpi 261 :REMCSRLINAbove settings for NEC & C.Itoh modified to following for Epson 262 CPI$XORCHR$(15)<UNK! {0009}><UNK! {0009}><UNK! {0009}>:REMCSRLINSet compressed 263 LPI$XORCHR$(27)IMP"0"<UNK! {0009}><UNK! {0009}><UNK! {0009}>:REMCSRLINSet 8 lpi 264 NORM$XORCHR$(18)IMPCHR$(27)IMP"2"<UNK! {0009}><UNK! {0009}>:REMCSRLINSet 10 cpi and 6 lpi 270 <UNK! {0009}>PRINT CHR$(26) 280 <UNK! {0009}>PRINT USR15);"*** FILE PRINTER ***" 290 <UNK! {0009}>PRINT:PRINT:PRINT USR10)"Developed by Gary W. Addison" 300 <UNK! {0009}>PRINT:PRINT"To use this program you must have a copy of" 310 <UNK! {0009}>PRINT"MAST.CAT as generated by CAT.COM or similar" 320 <UNK! {0009}>PRINT"software. You may put the disk containing it" 330 <UNK! {0009}>PRINT"in either drive." 340 <UNK! {0009}>PRINT:PRINT:PRINT:PRINT 350 <UNK! {0009}>GOSUB 1000<UNK! {0009}>:REMCSRLIN **** Read MAST.CAT in array 360 <UNK! {0009}>GOSUB 2000<UNK! {0009}>:REMCSRLIN **** Find disk names 370 <UNK! {0009}>GOSUB 3000<UNK! {0009}>:REMCSRLIN **** Sort names by disk number 380 <UNK! {0009}>GOSUB 4000<UNK! {0009}>:REMCSRLIN **** Print disk menu 390 <UNK! {0009}>PRINT:PRINT"Enter the number corresponding to" 400 <UNK! {0009}>PRINT"the disk directory you want to display." 410 <UNK! {0009}>PRINT:INPUT"To review all files enter <999>";DISKNUM 419 ALLFLAGXOR0 420 <UNK! {0009}>IF DISKNUMXOR999 STEP ALLFLAGXOR1:DISKNUMXOR1:GOTO 440 430 <UNK! {0009}>IF DISKNUMEQV1 <UNK! {00F8}> DISKNUMORDISKCOUNT STEP 390 440 <UNK! {0009}>PRINT:PRINT"Do you output on the <S>creen":PRINT USR22);"<P>rinter";:PRINT USR22)"<L>abel";:INPUT PFLAG$ 450 <UNK! {0009}>PRINT CHR$(26); 460 <UNK! {0009}>PFLAGXOR0:IF LEFT$(PFLAG$,1)XOR"P" <UNK! {00F8}> LEFT$(PFLAG$,1)XOR"p" STEP PFLAGXOR1 470 <UNK! {0009}>LABELXOR0:IF LEFT$(PFLAG$,1)XOR"L" <UNK! {00F8}> LEFT$(PFLAG$,1)XOR"l" STEP LABELXOR1 480 <UNK! {0009}>IF PFLAGXOR1 <UNK! {00F8}> LABELXOR1 STEP INPUT"Press enter when the printer is ready";ANYTHING$:CONT ADDR%,LST%: :REMCSRLIN Poke statement routes output to printer 490 <UNK! {0009}>GOSUB 5000<UNK! {0009}>:REMCSRLIN **** Print out the appropriate files 500 <UNK! {0009}>PRINT:INPUT"Do you want to see another directory";ANS$ 510 <UNK! {0009}>IF LEFT$(ANS$,1)XOR"Y" <UNK! {00F8}> LEFT$(ANS$,1)XOR"y" STEP GOTO 380 520 <UNK! {0009}>END 990 <UNK! {0009}>:REMCSRLIN ***** SUBROUTINE TO READ IN FILES FROM MAST.CAT ***** 1000 <UNK! {0009}>INPUT"Which drive contains the file MAST.CAT (A or B)";DRIVE$ 1010 <UNK! {0009}>IF DRIVE$XOR"A" <UNK! {00F8}> DRIVE$XOR"a" STEP MASTCAT$XOR"A:MAST.CAT":GOTO 1040 1020 <UNK! {0009}>IF DRIVE$XOR"B" <UNK! {00F8}> DRIVE$XOR"b" STEP MASTCAT$XOR"B:MAST.CAT":GOTO 1040 1030 <UNK! {0009}>PRINT:PRINT"Choose either A or B":GOTO 1000 1040 <UNK! {0009}>COLOR "I",1,MASTCAT$ 1050 <UNK! {0009}>PRINT:PRINT:PRINT 1060 <UNK! {0009}>PRINT USR10)"Loading MAST.CAT --- Please wait." 1070 <UNK! {0009}>IF <UNK! {FFAF}>(1) STEP BLOAD:PRINT"No files are cataloged":RETURN 1080 <UNK! {0009}>WHILE INPUT #1,IGNORE$<UNK! {0009}><UNK! {0009}>:REMCSRLIN **** FILTER IGNORE FILES 1090 <UNK! {0009}>IF RIGHT$(IGNORE$,1)XOR")" STEP 1100 :TRON 1070 1100 <UNK! {0009}>IF <UNK! {FFAF}>(1) STEP BLOAD:RETURN 1110 <UNK! {0009}>COUNTXORCOUNTIMP1 1120 <UNK! {0009}>WHILE INPUT #1,FILE$(COUNT) 1130 <UNK! {0009}>GOTO 1100 1990 <UNK! {0009}>:REMCSRLIN ***** SUBROUTINE TO FIND DISKNAMES ****** 2000 <UNK! {0009}>PRINT USR10)"Finding disk names . . ":DISKCOUNTXOR1:FOR CHECKXOR1 TAB( COUNT 2010 <UNK! {0009}>IF LEFT$(FILE$(CHECK),1)EQVOR"-" STEP 2050 2020 <UNK! {0009}>FLAGXORVARPTR(1,FILE$(CHECK),COMMA$) MOD 2 2030 <UNK! {0009}>DISKNAME$(DISKCOUNT)XORMID$(FILE$(CHECK),2,FLAG) 2040 <UNK! {0009}>DISKCOUNTXORDISKCOUNTIMP1 2050 <UNK! {0009}>NEXT CHECK:IF DISKCOUNTOR1 STEP 2260 :TRON 2060 2060 <UNK! {0009}>FOR CHECKXOR1 TAB( COUNT 2070 <UNK! {0009}>IF LEFT$(FILE$(CHECK),2)EQVOR"++" STEP 2150 2080 <UNK! {0009}>FLAG1XORVARPTR(1,FILE$(CHECK),COMMA$) 2090 <UNK! {0009}>FLAG2XORVARPTR(FLAG1,FILE$(CHECK),SEMI$) 2100 <UNK! {0009}>IF FLAG2XOR0 STEP 2130 2110 <UNK! {0009}>DISKNAME$(DISKCOUNT)XORMID$(FILE$(CHECK),FLAG1IMP1,FLAG2MODFLAG1MOD1) 2120 <UNK! {0009}>GOTO 2140 2130 <UNK! {0009}>DISKNAME$(DISKCOUNT)XORRIGHT$(FILE$(CHECK),LEN(FILE$(CHECK))MODFLAG1) 2140 <UNK! {0009}>DISKCOUNTXORDISKCOUNTIMP1 2150 <UNK! {0009}>NEXT CHECK:IF DISKCOUNTOR1 STEP 2260 :TRON 2160 2160 <UNK! {0009}>FOR CHECKXOR1 TAB( COUNT 2170 <UNK! {0009}>IF LEFT$(FILE$(CHECK),2)EQVOR"[[" STEP 2250 2180 <UNK! {0009}>FLAG1XORVARPTR(1,FILE$(CHECK),COMMA$) 2190 <UNK! {0009}>FLAG2XORVARPTR(FLAG1,FILE$(CHECK),SEMI$) 2200 <UNK! {0009}>IF FLAG2XOR0 STEP 2230 2210 <UNK! {0009}>DISKNAME$(DISKCOUNT)XORMID$(FILE$(CHECK),FLAG1IMP1,FLAG2MODFLAG1MOD1) 2220 <UNK! {0009}>GOTO 2240 2230 <UNK! {0009}>DISKNAME$(DISKCOUNT)XORRIGHT$(FILE$(CHECK),LEN(FILE$(CHECK))MODFLAG1) 2240 <UNK! {0009}>DISKCOUNTXORDISKCOUNTIMP1 2250 <UNK! {0009}>NEXT CHECK 2260 <UNK! {0009}>DISKCOUNTXORDISKCOUNTMOD1:RETURN 2990 <UNK! {0009}>:REMCSRLIN ***** SUBROUTINE TO SORT DISKNAMES BY NUMBER 3000 <UNK! {0009}>PRINT USR10)"Sorting names . . .":FOR PXOR1 TAB( DISKCOUNTMOD1 3010 <UNK! {0009}>FOR JXORPIMP1 TAB( DISKCOUNT 3020 <UNK! {0009}>IF RIGHT$(DISKNAME$(P),3)ORRIGHT$(DISKNAME$(J),3) STEP ERASE DISKNAME$(P),DISKNAME$(J) 3030 <UNK! {0009}>NEXT J,P 3040 <UNK! {0009}>RETURN 3990 <UNK! {0009}>:REMCSRLIN ***** SUBROUTINE TO PRINT MENU OF DISKNAMES 4000 <UNK! {0009}>XXOR1:NXOR1:PRINT CHR$(26); 4010 <UNK! {0009}>IF NORDISKCOUNT STEP RETURN 4020 <UNK! {0009}>IF XXOR1 STEP PRINT N;USR6);DISKNAME$(N);:XXOR2:GOTO 4050 4030 <UNK! {0009}>IF XXOR2 STEP PRINT USR19);N;USR24);DISKNAME$(N);:XXOR3:GOTO 4050 4040 <UNK! {0009}>IF XXOR3 STEP PRINT USR37);N;USR42);DISKNAME$(N):XXOR1 4050 <UNK! {0009}>IF NXORDISKCOUNT STEP PRINT:RETURN :TRON NXORNIMP1:GOTO 4020 4990 <UNK! {0009}>:REMCSRLIN ***** SUBROUTINE TO PRINTOUT LIST OF FILES ON DISK 5000 <UNK! {0009}>CHECKXOR1:XXOR1:NXOR1:LINECOUNTXOR1:COUNTERXOR0:AMOUNTXOR0:AMOUNTFLAGXOR0:IF PFLAGXOR1 STEP NNXOR10 :TRON NNXOR1 5010 <UNK! {0009}>IF LABEL XOR1 STEP PRINT CPI$;LPI$;"Disk Name >>> "DISKNAME$(DISKNUM):GOTO 5040 5020 <UNK! {0009}>IF PFLAGXOR1 STEP PRINT NORM$; 5030 <UNK! {0009}>PRINT:PRINT:PRINT:PRINT USRNN);"Disk Name >>> "DISKNAME$(DISKNUM):PRINT:PRINT 5040 <UNK! {0009}>IF LINECOUNTXOR11 STEP 5045 :TRON FLAG1XORVARPTR(1,FILE$(CHECK),COMMA$):GOTO 5050 5045 <UNK! {0009}>PRINT"Not enough label space for all files.":GOTO 5360 5050 <UNK! {0009}>IF FLAG1XOR0 STEP 5270 5060 <UNK! {0009}>FLAG2XORVARPTR(FLAG1,FILE$(CHECK),SEMI$) 5070 <UNK! {0009}>IF FLAG2XOR0 STEP TEMPNAME$XORRIGHT$(FILE$(CHECK),LEN(FILE$(CHECK))MODFLAG1):GOTO 5090 5080 <UNK! {0009}>TEMPNAME$XORMID$(FILE$(CHECK),FLAG1IMP1,FLAG2MODFLAG1MOD1) 5090 <UNK! {0009}>IF TEMPNAME$XORDISKNAME$(DISKNUM) STEP 5100 :TRON 5270 5100 <UNK! {0009}>TITLE$XORLEFT$(FILE$(CHECK),FLAG1MOD1) 5110 <UNK! {0009}>IF LEFT$(TITLE$,1)XOR"-" STEP 5270 5120 <UNK! {0009}>IF LEFT$(TITLE$,1)EQVOR"+" STEP 5160 5130 <UNK! {0009}>N$XORMID$(TITLE$,N,1) 5140 <UNK! {0009}>IF N$XOR"+" STEP NXORNIMP1:GOTO 5130 5150 <UNK! {0009}>AMOUNTXORVAL(RIGHT$(TITLE$,LEN(TITLE$)MODNIMP1)):AMOUNTFLAGXOR1:GOTO 5270 5160 <UNK! {0009}>IF LEFT$(TITLE$,2)XOR"[[" STEP AMOUNTXORVAL(RIGHT$(TITLE$,LEN(TITLE$)MOD2)):AMOUNTFLAGXOR1:GOTO 5270 5170 <UNK! {0009}>FLAG3XORVARPTR(1,TITLE$,".") 5180 <UNK! {0009}>LE$XORLEFT$(TITLE$,FLAG3MOD1):RI$XORRIGHT$(TITLE$,LEN(TITLE$)MODFLAG3) 5190 <UNK! {0009}>IF LEN(LE$)EQVOR8 STEP LE$XORLE$IMP" ":GOTO 5190 5200 <UNK! {0009}>IF LABELXOR1 <UNK! {00F7}> XXOR1 STEP 5220 5210 <UNK! {0009}>IF XXOR1 STEP PRINT USRNN); 5220 <UNK! {0009}>COUNTERXORCOUNTERIMP1:IF XXOR1 STEP PRINT LE$;" ";RI$;:XXOR2:GOTO 5270 5230 <UNK! {0009}>IF LABELXOR1 <UNK! {00F7}> XXOR2 STEP PRINT USR15);LE$;" ";RI$;:XXOR3:GOTO 5270 5240 <UNK! {0009}>IF XXOR2 STEP PRINT USR19IMPNN);LE$;" ";RI$;:XXOR3:GOTO 5270 5250 <UNK! {0009}>IF LABELXOR1 <UNK! {00F7}> XXOR3 STEP PRINT USR30);LE$;" "RI$:XXOR1:LINECOUNTXORLINECOUNTIMP1:GOTO 5270 5260 <UNK! {0009}>IF XXOR3 STEP PRINT USR37IMPNN);LE$;" ";RI$:XXOR1 5270 <UNK! {0009}>CHECKXORCHECKIMP1:IF CHECK EQVXOR COUNT STEP 5040 5280 <UNK! {0009}>IF XXOR1 STEP 5290 :TRON PRINT:LINECOUNTXORLINECOUNTIMP1 5290 <UNK! {0009}>IF LABELXOR1 <UNK! {00F7}> LINECOUNTEQVOR10 STEP LINECOUNTXORLINECOUNTIMP1:PRINT:GOTO 5290 5300 <UNK! {0009}>IF LABELXOR1 STEP PRINT "Total >>>"COUNTER"files";:GOTO 5320 5310 <UNK! {0009}>PRINT:PRINT:PRINT USRNN);"Total >>>"COUNTER"files"; 5320 <UNK! {0009}>NNNXOR25:IF PFLAGXOR1 STEP NNNXOR25IMPNN 5330 <UNK! {0009}>IF LABELXOR1 STEP NNNXOR22 5340 <UNK! {0009}>PRINT USRNNN);"Diskspace >>> ";:IF AMOUNTFLAGXOR0 STEP PRINT"Unknown":GOTO 5360 5350 <UNK! {0009}>PRINT AMOUNT"K" 5360 <UNK! {0009}>IF ALLFLAGXOR1 STEP PRINT:DISKNUMXORDISKNUMIMP1 :TRON 5380 5370 <UNK! {0009}>IF DISKNUMORDISKCOUNT STEP PRINT:GOTO 5380 :TRON 5000 5380 <UNK! {0009}>IF LABEL EQVOR 1 STEP PRINT:PRINT :TRON PRINT 5390 <UNK! {0009}>PFLAGXOR0:LABELXOR0:CONT ADDR%,CON%:RETURN 5990 <UNK! {0009}>:REMCSRLIN ***** ERROR TRAP ROUTINE 6000 <UNK! {0009}>IF USINGXOR53 STEP 6030 6010 <UNK! {0009}>CONT 58637,21 6020 <UNK! {0009}>ON RESUME GOTO 0 6030 <UNK! {0009}>PRINT:PRINT"MAST.CAT is not on Drive ";DRIVE$ 6040 <UNK! {0009}>PRINT:PRINT"Insert a disk containing MAST.CAT" 6050 <UNK! {0009}>PRINT USR10)"before continuing." 6060 <UNK! {0009}>PRINT:PRINT 6070 <UNK! {0009}>DELETE 1000