0 'SERIAL.BA Jeff Schneider CLUB 100 Library - 415/939-1246 BBS, 937-5039 NEWSLETTER, 932-8856 VOICE 1 CLS:PRINT"Serial Printer Driver":PRINT"By Jeff D. Schneider":FILES:MAXFILES=2:DIMA$(90),S$(80):PRINT@600,"File to print or 'E' to Exit";:INPUTF$:IFF$="E"THENMENU 2 IFRIGHT$(F$,3)<>".DO"THENF$=F$+".DO 3 ONERRORGOTO55:OPENF$FORINPUTAS#1:OPEN"COM:88N2ENN"FOROUTPUTAS#2:ONERRORGOTO0:CLS:RJ=0:LM=7:RM=72:TM=4:BM=5:TIT$="":DS=0:PN=1:PRINT"Hit for Defaults":PRINT 4 INPUT"Right Justify (N/Y)";RJ$:IFRJ$="Y"THENRJ=1:GOTO7 5 IFRJ$="" ORRJ$="N"THENRJ=0:GOTO7 6 GOTO4 7 INPUT"Left Margin (7)";LM180INPUT"Right Margin (72)";RM:IFLM>RMTHENPRINT"LM must be less than RM":GOTO7 8 WID=RM-LM:INPUT"Top Margin (4)";TM:INPUT"Bottom Margin (5)";BM:INPUT"Space Between Lines (0)";DS 9 PRINT"Page title after First page":INPUTTIT$:IFLEN(TIT$)>(WID-7)THENPRINT"TITLE TOO LONG":GOTO9 10 PRINT"PRESS A KEY WHEN READY TO PRINT 11 I$=INKEY$:IFI$=""THEN11 12 CO=0 13 PRINT#2,:MK=0:IFPN<>1THENPRINT#2,SPACE$(LM)TIT$SPACE$(WID-LEN(TIT$)-6)"Page "PNELSEPRINT#2, 14 LC=2:FORX=3TOTM:PRINT#2,:LC=LC+1:NEXTX 15 IFCO>0THENGOSUB45 16 FORX=(CO+1)TOWID:IFEOF(1)THEN34 17 A$(X)=INPUT$(1,1):IFA$(X)=CHR$(13)THEND$=INPUT$(1,1):GOTO19 18 NEXTX:GOTO24 19 IFX=1THEN21ELSEPRINT#2,SPACE$(LM); 20 FORY=1TO(X-1):PRINT#2,A$(Y);:NEXTY 21 IFDS<>0THENFORX=1TODS:PRINT#2,:LC=LC+1:NEXTX 22 PRINT#2,:LC=LC+1:IFLC>=66-BMTHENPN=PN+1GOTO37 23 CO=0:GOTO16 24 CO=0:IFA$(WID)=" "THENNWID=WID-1:GOTO28 25 FORX=WIDTO1STEP-1:CO=CO+1:S$(CO)=A$(X):IFA$(X-1)=" "THEN27 26 NEXTX:STOP 27 NWID=WID-(CO+1) 28 IFA$(NWID)=" "THENNWID=NWID-1:GOTO28 29 IFA$(1)=" " ANDA$(2)<>" "THEN46 30 IFRJ=1THENGOSUB47 31 PRINT#2,SPACE$(LM);:FORX=1TONWID:PRINT#2,A$(X);:NEXTX:PRINT#2,CHR$(13):LC=LC+1:IFDS<>0THENFORX=1TODS:PRINT#2,:LC=LC+1:NEXTX 32 IFLC>=66-BMTHENPN=PN+1:GOTO37 33 GOTO15 34 IFX=1THEN36ELSEPRINT#2,SPACE$(LM); 35 FORY=1TO(X-1):PRINT#2,A$(Y); 36 FORX=LCTO66:PRINT#2,:NEXTX:CLOSE1,2:CLS:PRINT"Finished Printing":INPUT"Print Another (Y/N)";YN$:IFYN$="Y"THEN1ELSEMENU 37 FORZ=1TOBM:PRINT#2,:NEXTZ:CLS:PRINT"HIT A KEY TO CONTINUE PRINTING 38 I$=INKEY$:IFI$=""THEN38 39 GOTO13 40 IFA$(W+1)<>" "THENRETURN 41 W=W+1:GOTO40:STOP 42 IFA$(W-1)<>" "THENRETURN 43 W=W-1:GOTO42:STOP 44 FORX=NWIDTO(W+1)STEP-1:A$(X+1)=A$(X):NEXTX:NWID=NWID+1:RETURN 45 AC=0:FORW=COTO1STEP-1:AC=AC+1:A$(AC)=S$(W):NEXTW:RETURN 46 FORW=2TONWID:A$(W-1)=A$(W):NEXTW:NWID=NWID-1:GOTO29 47 IFMK=0THENMK=1ELSEMK=0 48 IFMK=1THEN52 49 ST=2 50 FORW=STTO(NWID-1):IFA$(W)=" "THENGOSUB40:GOSUB44:A$(W+1)=" ":ST=W+3:IFNWID=WIDTHENRETURNELSE50 51 NEXTW:GOTO49 52 ST=NWID-1 53 FORW=STTO2STEP-1:IFA$(W)=" "THENGOSUB44:A$(W+1)=" ":GOSUB42:ST=W-1:IFNWID=WIDTHENRETURNELSE53 54 NEXTW:GOTO52 55 CLS:PRINT"FILE NOT FOUND":FORW=1TO500:NEXTW:RESUME1