home *** CD-ROM | disk | FTP | other *** search
- 10 ' *DISKPGM2.BAS NEW 05/28/83 Rich Schinnell Rockville,Md 20853
- 20 CLS:KEY OFF:TOT#=0 ' for DOS 2.0 only
- 30 PRINT "(C) Copyright 1983,, Richard Schinnell,Rockville, MD. 20853 (301) 949-8848
- 40 PRINT "This program will check each FILE on your disk for DATES,BYTES and
- 50 PRINT"the time it will take to transfer it at 300 baud (DOS 2.0+ only)"
- 60 PRINT"Place your printer on-line and put it to the top of a page please.
- 70 PRINT:LOCATE 10,1,1:COLOR 23,0:
- 80 LOCATE 10,1,1:COLOR 28,0:PRINT" What NAME do you wish to print on the printer as the"
- 90 PRINT" name of the disk ? (50 Character Title only allowed ":COLOR 7,0
- 100 LOCATE 18,1,1:PRINT "> ";:CUM1$=""
- 110 CUMRICH$=INKEY$:IF LEN(CUMRICH$)>0 THEN IF ASC(CUMRICH$)=13 THEN 200
- 120 IF LEN(CUMRICH$)<1 THEN 110
- 130 IF LEN(CUMRICH$)>1 THEN BEEP:GOTO 110
- 140 IF ASC(CUMRICH$)=8 AND POS(0)<4 THEN BEEP:CUM1$="":GOTO 180
- 150 IF ASC(CUMRICH$)=8 THEN CUM1$=LEFT$(CUM1$,(LEN(CUM1$)-1)):CUMRICH$="":LOCATE 18,POS(0)-1:PRINT " ";
- 160 CUM1$=CUM1$+CUMRICH$
- 170 IF LEN(CUM1$)>49 THEN BEEP:CUM1$=LEFT$(CUM1$,50):CUMRICH$=""
- 180 LOCATE 24,1,0:PRINT "you Have ";RIGHT$(STR$(50-LEN(CUM1$)),2);" characters left ";RIGHT$(STR$(LEN(CUM1$)),2);" used up so far ";
- 190 LOCATE 18,3,0:PRINT CUM1$;:LOCATE 18,POS(0),1:GOTO 110
- 200 TITLE$=CUM1$
- 210 COLOR 23,0,1:PRINT:PRINT" Which disk drive to you wish to check> : ";:COLOR 7,0
- 220 RICH$=INKEY$:IF LEN(RICH$)<>1 THEN 220
- 230 IF ASC(RICH$)>96 AND ASC(RICH$)<103 THEN RICH$=CHR$(ASC(RICH$)-32)
- 240 IF INSTR("ABCDEF",RICH$)<1 THEN BEEP:GOTO 210
- 250 DRIV$=LEFT$(RICH$,1)+":"
- 260 ON ERROR GOTO 640
- 270 FALSE=0:TRUE=NOT FALSE:DEFINT A-Z:L=0:CLS:CODE=43:DIM F$(175)
- 280 FILES DRIV$+"*.*"
- 290 CLINE1 = CSRLIN-3
- 300 D=0
- 310 LOCATE 1,1,1
- 320 FOR I = 2 TO CLINE1
- 330 FOR B = 1 TO 63 STEP 18
- 340 D=D+1
- 350 FOR N = 0 TO 11
- 360 T = SCREEN(I,(B+N)):F$(D)=F$(D)+CHR$(T)
- 370 NEXT N
- 375 T=SCREEN(I,B+N):IF CHR$(T)="<" THEN F$(D)="":D=D-1:GOTO 400
- 380 IF LEFT$(F$(D),1)=" " THEN D=D-1 :GOTO 411
- 390 F$(D)= DRIV$+F$(D)
- 400 NEXT B
- 410 NEXT I
- 411 ' STOP
- 412 FOR G = 1 TO 40
- 413 T = SCREEN(CLINE1+1,(G)):FRR$=FRR$+CHR$(T)
- 414 NEXT G
- 420 LOCATE 15,1:COLOR 26,0:PRINT "ALPHABETIZING THE FILE NAMES ":COLOR 7,0
- 430 ' THIS ALPHABETIZES THE ARRAY
- 440 FOR X=1 TO D-1:FOR Y=X+1 TO D:IF F$(Y)<F$(X) THEN SWAP F$(X),F$(Y)
- 450 NEXT Y:NEXT X
- 460 LOCATE 12,25:COLOR 28,0:PRINT " WORKING FILES ":COLOR 7,0
- 470 LPRINT:LPRINT" (C) COPYRIGHT,1983, RICHARD SCHINNELL,ROCKVILLE,MD"
- 480 LPRINT
- 490 LPRINT TITLE$;" Time ";TIME$;" Date ";DATE$
- 500 LPRINT
- 510 LPRINT "D:Filespec Date Bytes 300 BAUD 1200 BAUD 1200X BAUD"
- 520 LPRINT "------------- ---------- ------ MM:SS MM:SS MM:SS"
- 530 FOR P = 1 TO D
- 540 GOSUB 670
- 545 IF L#/1024 <> INT(L#/1024) THEN L#=(INT(L#/1024)+1)*1024
- 550 TOT#=TOT#+L#
- 560 NEXT P
- 570 LPRINT:LPRINT
- 580 LPRINT P-1;" FILES on ";TITLE$:LPRINT USING "###,### Bytes used on this diskette ";TOT#;
- 590 '
- 600 LPRINT:'
- 610 LPRINT :LPRINT FRR$:LPRINT:LPRINT
- 620 CLS:PRINT "YOU ARE BACK IN BASIC NOW "
- 630 END
- 640 PRINT "ERROR ";ERR;" HAS OCCURED IN LINE # ";ERL
- 650 IF ERR>23 AND ERR<27 THEN PRINT " PLACE YOUR PRINTER ON LINE PLEASE:
- 660 END
- 670 ' Subroutine to get filesize/date and compute transfer times
- 680 ' Written by Rich Schinnell Rockville,Md 20853
- 690 ' Copyright 1982, Free to anyone on a not-for-profit basis.
- 700 ' Not to be sold for profit, Can be given away only.......
- 710 ' All rights reserved.........E N J O Y ! ! ! ! ! ! ! ! !
- 720 OPEN F$(P) FOR INPUT AS #1
- 730 FCB1% = VARPTR(#1) 'SET PTR TO FCB FOR INPUT FILE
- 740 BYTESIZ1# = PEEK(FCB1%+17)+256*PEEK(FCB1%+18)+256*256*PEEK(FCB1%+19) +256*256*256*PEEK(FCB1%+20) 'Calculate file size in bytes
- 750 TDATE% = PEEK(FCB1%+21) OR 256*PEEK(FCB1%+22)
- 760 CLOSE #1
- 770 T = INT(BYTESIZ1#/30):M=INT(T/60):S=T-M*60:IF S<1 THEN S =1
- 771 IF S < 10 THEN S$="0"+RIGHT$(STR$(S),1) ELSE S$=RIGHT$(STR$(S),2)
- 772 T12 = INT(BYTESIZ1#/120):M12=INT(T12/60):S12=T12-M12*60:IF S12<1 THEN S12 = 1
- 774 IF S12 < 10 THEN S12$="0"+RIGHT$(STR$(S12),1) ELSE S12$=RIGHT$(STR$(S12),2)
- 775 BLK = INT(BYTESIZ1#/128)
- 776 T12X = INT(BLK * 1.8)
- 778 M12X=INT(T12X/60):S12X=T12X-M12X*60:IF S12X<1 THEN S12X =1
- 779 IF S12X < 10 THEN S12X$="0"+RIGHT$(STR$(S12X),1) ELSE S12X$=RIGHT$(STR$(S12X),2)
- 780 L# = BYTESIZ1#
- 790 DTYR% = (TDATE% \ (256*2) ) + 1980
- 800 DTI# = (TDATE% - (DTYR% - 1980) * (256*2))
- 810 DTMO% = DTI# \ 32
- 820 DTDA% = DTI# - DTMO% * 32
- 830 SDATE$ = "0M-0D-YYYY"
- 840 MID$( SDATE$,1,2 ) = RIGHT$( STR$(DTMO%+100) ,2)
- 850 IF VAL(LEFT$(SDATE$,2))<10 THEN MID$(SDATE$,1,1)="0"
- 860 MID$( SDATE$,4,2 ) = RIGHT$( STR$(DTDA%+100), 2 )
- 870 MID$( SDATE$,7,4 ) = RIGHT$( STR$(DTYR%), 4 )
- 880 T = INT(BYTESIZ1#/30):M=INT(T/60):S=T-M*60:L#=BYTESIZ1#
- 890 IF S <10 THEN S$="0"+RIGHT$(STR$(S),1) ELSE S$=RIGHT$(STR$(S),2)
- 900 'SDATE$= DATE file was last updated
- 910 ' l# = filesize in bytes ###### format
- 920 ' M = minutes to transfer at 300 baud
- 930 ' s$ = seconds to transfer at 300 baud leading zero s = seconds no zero
- 940 ' this method only works in intrepeted basic. If you are going to
- 950 ' compile a pgm then you can't use the varptr you have to peek at a
- 960 ' high memory value, I have found it if you wish to know it just give
- 970 ' Rich Schinnell a call and I will be glad to help you... Rich
- 980 PRINT USING "\ \ \ \ ###### ##:\\ ##:\\ ##:\\ ";F$(P);SDATE$;L#;M;S$;M12;S12$;M12X;S12X$
- 990 LPRINT USING "\ \ \ \ ###### ##:\\ ##:\\ ##:\\ ";F$(P);SDATE$;L#;M;S$;M12;S12$;M12X;S12X$
- 1000 RETURN