100 ' $LINESIZE:132 $PAGESIZE: 60 110 ' $TITLE: 'FILECOPY.BAS' $SUBTITLE: 'Author:Webb B. Blackman,Jr.' 120 ' Compiled version:FILECOPY.EXE requires use of BASRUN.EXE 130 'IMMMMMMMMMMMMMMMMMMMMMMMMMMMMQMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM; 140 ': A File Copying Program 3 FILECOPY.BAS Version 1.7 : 150 'GDDDDDDDDDDDDDDDDDDDDDDDDDDDDEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD6 160 ': (C) Copyright 1983 3 CREATED 03/28/82 UPDATED 03/24/83 : 170 ': Webb B. Blackman,Jr. 3 Written for the IBM Personal Computer : 180 ': 10330 Qualla Road 3 with one disk drive/48K RAM/IBM PC : 190 ': Chesterfield, VA 23832 3 DOS 1.1 and EPSON Printer(Graftrax+) : 200 ': (804) 790-1007 3 Author: Webb B. Blackman,Jr. : 210 'HMMMMMMMMMMMMMMMMMMMMMMMMMMMMOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM< 220 CLS:KEY OFF: S=0: MPN=99999!: PWIDTH=80: GOTO 450 230 'Alpha Entry 240 A% = 1:GOTO 270 250 'Number Entry 260 A%=0 270 Y% = CSRLIN:X%=1+POS(0):TT$="":TTA$="":I%=0 280 T$ = INKEY$:IF T$="" THEN 280 290 IF T$ =CHR$(13) THEN IF A%=0 THEN 390 ELSE 380 300 IF T$ =CHR$(8) THEN 350 310 IF T$ =CHR$(0)+CHR$(75) THEN 350 320 IF T$=CHR$(44) THEN TTA$=TTA$+T$:TT$=TT$+CHR$(32):GOTO 340 330 TT$ =TT$ + T$:TTA$=TTA$ + T$ 340 I%=I%+1:LOCATE Y%,X%:PRINT TTA$:GOTO 280 350 I% = I% -1:IF I% < 0 THEN I%=1 360 TTA$ = MID$(TTA$,1,I%):TT$ = MID$(TT$,1,I%) 370 LOCATE Y%,(X%+I%):PRINT " ":GOTO 280 380 DAT0$ = TTA$:RETURN 390 DAT0# = VAL(TT$):RETURN 400 'Box 410 CLS:LOCATE 2,2,0:PRINT CHR$(201)+STRING$(75,205)+CHR$(187); 420 FOR I%=1 TO 20:LOCATE 2+I%,2:PRINT CHR$(186):LOCATE 2+I%,78:PRINT CHR$( 186);:NEXT 430 LOCATE 23,2,0:PRINT CHR$(200)+STRING$(75,205)+CHR$(188); 440 RETURN 450 'Title 460 GOSUB 400:LOCATE 5,31:PRINT "<<< File Copy >>>" 470 LOCATE 12,30:PRINT "Webb B. Blackman,Jr." 475 LOCATE 14,27:PRINT "(Modified by Dick Bowers)" 480 LOCATE 17,32:PRINT "March 24, 1983":LOCATE 20,34:PRINT "Version 1.7" 490 GOSUB 2000:GOTO 600 500 'Heading 510 IF SF$="Y" OR SF$="y" THEN GOSUB 3000:GOTO 540 520 IF PN <> 0 AND S<>2 THEN LPRINT CHR$(12); 530 IF S=2 THEN S=1 540 PN=PN+1 550 IF PN>MPN THEN CLOSE #1: LPRINT CHR$(12): COLOR 7,0,0: GOTO 600 560 LPRINT 570 LPRINT:LPRINT TAB(5);CHR$(14);FIL$;".";EX$;CHR$(20); 580 LPRINT "--printed on ";DATE$;" at ";TIME$;"--Page";PN 590 LPRINT:LPRINT:GOTO 920 600 'Selection 610 GOSUB 400:LOCATE 3,27,0:COLOR 16,7,0:PRINT "<<< Filecopy Selection >>>" :COLOR 7,0,0 620 LOCATE 6,5,0:PRINT "Selection:" 630 LOCATE 8,10,0:COLOR 16,7,0:PRINT "S";:COLOR 7,0,0:PRINT "elect File,";: COLOR 16,7,0:PRINT "R";:COLOR 7,0,0:PRINT "eset Printer,";:COLOR 16,7,0 :PRINT "P";:COLOR 7,0,0:PRINT "rint File,";:COLOR 16,7,0:PRINT "E"; 640 COLOR 7,0,0:PRINT "nd : ";:COLOR 0,7,0:PRINT " ";:LOCATE 8,54,0: SL$=INKEY$:COLOR 7,0,0 650 IF SL$<>"S" AND SL$<>"s" AND SL$<>"R" AND SL$<>"r" AND SL$<>"P" AND SL$ <>"p" AND SL$<>"E" AND SL$<>"e" THEN 620 660 IF SL$="S" OR SL$="s" THEN GOSUB 980:GOTO 610 670 IF SL$="R" OR SL$="r" THEN GOSUB 1070:GOTO 610 680 IF SL$="E" OR SL$="e" THEN CLS: LPRINT CHR$(27)+"@":END 690 'Print File 700 PN=0 710 GOSUB 400: LOCATE 6,5,0: PRINT"Print:";:LOCATE 8,10,0: COLOR 16,7,0: PRINT"W";:COLOR 7,0,0: PRINT "hole File,";:COLOR 16,7,0:PRINT"S";: COLOR 7,0,0:PRINT"elected Pages,";: COLOR 16,7,0: PRINT"Q";:COLOR 7,0,0 720 PRINT"uit ";:COLOR 0,7,0:PRINT" ";:LOCATE 8,42,0: GOSUB 230: P$=DAT0$: COLOR 7,0,0 730 IF P$="Q" OR P$="q" THEN 600 740 IF P$="W" OR P$="w" THEN 800 750 IF P$="S" OR P$="s" THEN 770 760 GOTO 710 770 GOSUB 400: LOCATE 8,10,0: PRINT "Initial Page Number: ";:COLOR 0,7,0: PRINT " ";:LOCATE 8,32,0: GOSUB 250: IPN=DAT0#:COLOR 7,0,0 780 LOCATE 10,10,0:PRINT "Number of pages (9999 = All Remaining): ";: COLOR 0,7,0:PRINT " ";: LOCATE 10,51,0: GOSUB 250: MPN=IPN+DAT0#-1: COLOR 7,0,0 790 GOSUB 4000 800 GOSUB 400:LOCATE 3,27,0:COLOR 16,7,0:PRINT "<<< Filecopy Printing >>>": COLOR 7,0,0 810 LOCATE 6,10,0:PRINT "1. Adjust the paper in the printer so that" 820 LOCATE 7,10,0:PRINT " the perforations are at the paper bail." 830 LOCATE 9,10,0:PRINT "2. Put the printer ONLINE at this time." 840 LOCATE 11,10,0:PRINT "3. Press the ESC key to abort printing of file." 850 GOSUB 2000 860 GOSUB 400:LOCATE 3,28,0:COLOR 16,7,0:PRINT "<<< Filecopy Listing >>>" :COLOR 7,0,0 870 LOCATE 8,10,0:COLOR 23,0,0:PRINT " Press the ESC key to abort printing. 880 LNUM = 1 890 LINE INPUT #1,L$ 900 IF EOF(1) THEN CLOSE #1:LPRINT L$:LPRINT CHR$(12);:COLOR 7,0,0:GOTO 600 910 IF LNUM = 1 THEN GOTO 500 920 LPRINT L$ 930 IF INKEY$ = CHR$(27) THEN CLOSE #1:COLOR 7,0,0:GOTO 600 940 LNUM=LNUM+INT((LEN(L$)+PWIDTH-1)/PWIDTH) 950 IF LEN(L$) MOD PWIDTH =0 THEN LNUM=LNUM+1 960 IF LNUM > 54 THEN LNUM = 1 970 GOTO 890 980 'Select File 990 GOSUB 400:LOCATE 3,28,0:COLOR 16,7,0:PRINT "<<< File Entry Mode >>>": COLOR 7,0,0 1000 LOCATE 6,5,0:PRINT "Drive (A or B) :";:COLOR 0,7,0:PRINT " " ;:LOCATE 6,27,0:GOSUB 230:COLOR 7,0,0:DV$=MID$(DAT0$,1,1) 1010 IF DV$ <> "A" AND DV$ <>"B" AND DV$<>"b" AND DV$<>"a" AND DV$<>"C" AND DV$<>"c" THEN 1000 1020 LOCATE 8,5,0:PRINT "Enter File Name :";:COLOR 0,7,0:PRINT " ";:LOCATE 8,27,0:GOSUB 230:COLOR 7,0,0:FIL$ = DAT0$ 1030 LOCATE 10,5,0:PRINT "Enter File Extension :";:COLOR 0,7,0:PRINT " " ;:LOCATE 10,27,0:GOSUB 230:COLOR 7,0,0:EX$ = DAT0$ 1040 OPEN "I",1,DV$+":"+FIL$+"."+EX$ 1050 GOSUB 2000 1060 RETURN 1070 'Reset IBM Printer 1080 GOSUB 400:LOCATE 3,27,0:COLOR 16,7,0:PRINT "<<< Reset IBM Printer >>>": COLOR 7,0,0 1090 LOCATE 6,5,0:PRINT "IBM Printer Enhancements are:" 1100 LOCATE 8,10,0:COLOR 16,7,0:PRINT "N";:COLOR 7,0,0:PRINT "ormal or ";: COLOR 16,7,0:PRINT "C";:COLOR 7,0,0:PRINT "ompressed Print ? ";:COLOR 0,7,0:PRINT " ";:LOCATE 8,40,0:GOSUB 230:TYP$=DAT0$:COLOR 7,0,0 1110 IF TYP$ <>"N" AND TYP$<>"n" AND TYP$<>"C" AND TYP$<>"c" THEN 1100 1120 LOCATE 10,10,0:COLOR 16,7,0:PRINT "I";:COLOR 7,0,0:PRINT "talics ? Y/N ";:COLOR 0,7,0:PRINT " ";:LOCATE 10,40,0:GOSUB 230 :I$=DAT0$:COLOR 7,0,0 1130 IF I$<>"N" AND I$<>"n" AND I$<>"Y" AND I$<>"y" THEN 1120 1140 IF TYP$="C" OR TYP$="c" THEN 1170 1150 LOCATE 12,10,0:PRINT "Emphasized Print ? Y/N ";:COLOR 0,7,0:PRINT " ";:LOCATE 12,40,0:GOSUB 230:E$=DAT0$:COLOR 7,0,0 1160 IF E$<>"N" AND E$<>"n" AND E$<>"Y" AND E$<>"y" THEN 1150 1170 LOCATE 14,10,0:PRINT "Double Width Print ? Y/N ";:COLOR 0,7,0:PRINT " ";:LOCATE 14,40,0:GOSUB 230:D$=DAT0$:COLOR 7,0,0 1180 IF D$<>"N" AND D$<>"n" AND D$<>"Y" AND D$<>"y" THEN 1170 1190 LOCATE 16,10,0:PRINT "Double Strike Print ? Y/N ";:COLOR 0,7,0:PRINT " ";:LOCATE 16,40,0:GOSUB 230:DP$=DAT0$:COLOR 7,0,0 1200 IF DP$<>"N" AND DP$<>"n" AND DP$<>"Y" AND DP$<>"y" THEN 1190 1210 LOCATE 18,10,0:PRINT "Enter the desired line width: ";:COLOR 0,7,0:PRINT " ";:LOCATE 18,39,0:GOSUB 250:PWIDTH=DAT0#:COLOR 7,0,0 1220 IF PWIDTH < 1 OR PWIDTH > 232 THEN 1210 1230 LOCATE 20,10,0:PRINT "Single Sheet Feed ? Y/N ";:COLOR 0,7,0:PRINT " ";:LOCATE 20,40,0:GOSUB 230:SF$=DAT0$:COLOR 7,0,0 1240 IF SF$<>"N" AND SF$<>"n" AND SF$<>"Y" AND SF$<>"y" THEN 1230 1250 LPRINT CHR$(27)+"@"; 1260 IF TYP$="C" OR TYP$="c" THEN LPRINT CHR$(15); 1270 IF D$="Y" OR D$="y" THEN LPRINT CHR$(27)+"W"+CHR$(1); 1280 IF E$="Y" OR E$="y" THEN LPRINT CHR$(27)+"E"; 1290 IF DP$="Y" OR DP$="y" THEN LPRINT CHR$(27)+"G"; 1300 IF SF$="Y" OR SF$="y" THEN LPRINT CHR$(27)+"8"; 1310 IF I$="Y" OR I$="y" THEN LPRINT CHR$(27)+"4"; 1320 WIDTH "LPT1:",PWIDTH 1330 GOSUB 2000:RETURN 2000 'continue statement 2010 LOCATE 23,26,0:COLOR 16,7:PRINT "Press Space Bar To Continue"; 2020 T$=INKEY$:IF T$="" THEN 2020 ELSE IF T$=CHR$(32) THEN COLOR 7,0:CLS ELSE 2010 2030 RETURN 3000 'single sheet entry 3010 LOCATE 8,10,0:COLOR 23,0,0:PRINT STRING$(37,32) 3020 LOCATE 8,10,0:COLOR 23,0,0:PRINT " Please adjust a single sheet of " " 3030 LOCATE 9,10,0:COLOR 23,0,0:PRINT " in the printer and hit any key. " 3040 T$=INKEY$:IF T$="" THEN 3040 3050 LOCATE 8,10,0:COLOR 23,0,0:PRINT STRING$(37,32) 3060 LOCATE 8,10,0:COLOR 23,0,0:PRINT " Printing Single Sheet of File " 3070 LOCATE 8,10,0:COLOR 23,0,0:PRINT STRING$(37,32) 3080 LOCATE 9,10,0:COLOR 23,0,0:PRINT STRING$(37,32):RETURN 4000 S=2 4010 CLOSE #1 4020 OPEN "I",1,DV$+":"+FIL$+"."+EX$ 4030 PN=1: LNUM=1 4040 IF PN>=IPN THEN LNUM=1: PN=PN-1: RETURN 4050 IF EOF(1) THEN CLOSE #1: GOTO 600 4060 LINE INPUT #1,L$ 4070 LNUM=LNUM+INT((LEN(L$)+PWIDTH-1)/PWIDTH) 4080 IF LEN(L$) MOD PWIDTH =0 THEN LNUM=LNUM+1 4090 IF LNUM>54 THEN LNUM=1: PN=PN+1 4100 GOTO 4040 Press 0 IF LEN(L$) MOD PWIDTH =0 THEN LNUM=LNUM+1 4090 IF LNUM>54 THEN LNUM=1: PN=PN+1 4100 G