0 'SPRINT.BA - Author unknown 1 'Club 100 Library - 415/939-1246 BBS, 937-5039 NEWSLETTER, 932-8856 VOICE 2 ' *** SPRINT.BA *** 3 CLEAR1000:CLS:MAXFILES=3:GOSUB144 'INITIALIZE 4 GOSUB139 'GET USER OPTIONS 5 IFSP=YTHENGOSUB138:GOTO7'RS-232 6 OPEN"LPT:"FOROUTPUTAS2 7 GOTO9 8 LC$=CH$:IFEOF(1)THEN134 9 CH$=INPUT$(1,1):IFCM=-1THEN12 10 IFCH$<>CHR$(152)THEN12 11 IFCM=1OREOF(1)THEN134ELSEGOSUB104:CM=1:LC=0:GOTO9 12 IFLC$<>"\"THEN17 13 'LOOKFORHEADER/FOOTERBLOCKS 14 IFCH$<>"["THEN17 'NOT A BLOCK 15 CH$=INPUT$(1,1):IFCH$="H"ORCH$="F"THENGOSUB36ELSEER=1:GOTO195 16 LC$="\":GOTO9 'DONE COPYING H/F 17 IF LC$<>CHR$(10)ANDLC$<>CHR$(175)ANDLC$<>"\"THEN25 18 IFCH$<>">"THEN25 19 'HANDLE FORMAT LINES 20 LINEINPUT#1,FM$:GOSUB49:GOSUB133:CH$=CHR$(10):GOTO8 21 FP=INSTR(FM$,S$):IFFP=0THENRETURN 22 FV=VAL(MID$(FM$,FP+LEN(S$))):FC$=MID$(FM$,FP+LEN(S$),1):IFS$="H="ORS$="F="ORS$=",F="THENRETURN 23 IFFC$="Y"THENFV=1ELSEIFFC$="N"THENFV=0 24 RETURN 25 IFCH$=CHR$(13)THEN8 'IGNORE CR 26 'HANDLE CURRENT CHARACTER 27 IFCH$<>CHR$(10)THEN30 28 IFLP>1THENLP=LP-1 29 GOSUB104:GOTO8 'NEW LINE 30 IFCH$=CHR$(175)THENGOSUB97:GOTO8 'NEW PARAGRAPH 31 IFCH$<>"\"THEN34 32 IFLC=0THENGOSUB93 33 GOSUB84:GOTO8 34 GOSUB69 'PUT CHAR IN LINE BUFFER 35 GOTO8 'LOOP FOR NEXT CHAR 36 ER=1:I1=0:IFCH$="F"THENI1=1 37 CH$=INPUT$(1,1):IFCH$="O"THENI2=0ELSEIFCH$="E"THENI2=1ELSEIFCH$="S"THENI2=2ELSE195 38 CH$=INPUT$(1,1):IFCH$<>">"THEN195 39 LINEINPUT#1,HF$(I1,I2,0):FORI=1TO16:HF$(I1,I2,I)="":BC=1 40 CH$=INPUT$(1,1):IFCH$="["THENBC=BC+1ELSEIFCH$="]"THENBC=BC-1 41 IFBC=0THENHL(I1,I2)=I-1:I=16:GOTO43 42 HF$(I1,I2,I,I)+CH$:IFCH$<>CHR$(10)THEN40 43 NEXTI:IFCH$<>"]"THENER=2:GOTO195ELSERETURN 44 IFP=NTHENRETURN 45 IFCM=0THEN48 46 IFVL=-1THENPRINT#2,CHR$(13);ELSEPRINT#3,CHR$(13); 47 IFLF=YTHENIFVL=-1THENPRINT#2,CHR$(10);ELSE PRINT#3,CHR$(10); 48 LC=LC+1:RETURN 49 IF LEFT$(FM$,1)="*" THEN RETURN 50 FM$=" "+FM$:S$="PL=":GOSUB21:IFFP<>0THENPL=FV 51 S$="LM=":GOSUB21:IFFP<>0THENLM=FV 52 S$="RM=":GOSUB21:IFFP<>0THENRM=FV 53 S$="TM=":GOSUB21:IFFP<>0THENTM=FV 54 S$="BM=":GOSUB21:IFFP<>0THENBM=FV 55 S$="LS=":GOSUB21:IFFP<>0THENLS=FV 56 S$="PF=":GOSUB21:IFFP<>0THENPF=FV 57 S$="J=":GOSUB21:IFFP<>0THENJ=FV 58 S$=" C=":GOSUB21:IFFP<>0THENC=FV 59 S$=",C=":GOSUB21:IFFP<>0THENC=FV 60 S$="FR=":GOSUB21:IFFP<>0THENFR=FV 61 S$="VC=":GOSUB21:IFFP<>0THENVC=FV 62 S$=BP=":GOSUB280:IFFP<>0THENP=FV":S$="WS=":GOSUB21:IFFP<>0THENWS=FV 63 S$="H=":GOSUB21:IFFP<>0THENIFFV<>0 THENH$=STR$(FV)ELSEH$=FC$ 64 S$=" F=":GOSUB21:IFFP<>0THENIFFV<>0THENF$=STR$(FV)ELSEF$=FC$ 65 S$=",F=":GOSUB21:IFFP<>0THENIFFV<>0THENF$=STR$(FV)ELSEF$=FC$ 66 S$="PN=":GOSUB21:IFFP<>0THENPN=FV 67 S$="PI=":GOSUB21:IFFP<>0THENPI=FV 68 RETURN 69 IFLP=0THENMID$(LB$,1,LM)=SPACE$(LM):LP=LM+1 70 IFCH$<>CHR$(9)THEN73 71 CH$=" ":PO=8-((LP-1)MOD8):FORI=1TOPO:GOSUB83:IFLP=RM+1THENI=PO 72 NEXT:GOTO74 73 GOSUB83 74 IFLP" "THEN78 77 XC$=MID$(LB$,RM,1):GOTO81 78 II=RM:FORI=RM-1TOLM+1STEP-1:IFMID$(LB$,I,1)=" "ORMID$(LB$,I,1)="-"THENII=I:I=1 79 NEXT:IFII=RMTHEN77 80 XC$=MID$(LB$,(II+1),(RM-II)):MID$(LB$,(II+1),(RM-II))=SPACE$(RM-II) 81 LP=RM-1:GOSUB104:MID$(LB$,LM+1,LEN(XC$))=XC$:LP=LM+LEN(XC$)+1:RETURN 82 LP=RM-1:GOSUB104:RETURN 83 MID$(LB$,LP,1)=CH$:LP=LP+1:RETURN 84 IFHF=1THENRETURN 85 IFVL>-1THENGOSUB191 86 GOSUB185:IFLC=BM-HLTHEN88 87 K=BM-HL-LC:FORI=1TO K:GOSUB44:NEXT 88 GOSUB157'DO FOOTER 89 IFLCBM-HLTHENI=PF 101 NEXT 102 GOSUB185:IFLC=>BM-HL-LSANDWS=YTHENGOSUB84 103 CH$=" ":RETURN 104 IFP=NORCM=0THENLP=0:GOTO126 105 IFLM>=RMORTM>=BMORBM>PLTHENER=4:GOTO195 106 IFVC=NTHEN109 107 IFVL=-1THENOPEN"VCTEXT"FOROUTPUTAS 3:VL=0 108 GOTO111 109 IFVL=-1THEN111 110 CLOSE3:IFVL=0THENVL=-1 111 IFMID$(LB$,LP,1)<>" "THEN113 112 LP=LP-1:IFLP=0THEN127ELSE111 113 IFC=NTHEN115 114 L=(RM-LP-1)\2:PB$=SPACE$(LM)+SPACE$(L)+MID$(LB$,(LM+1),(LP-LM)):LP=LEN(PB$):GOTO127 115 IFFR=NTHEN117 116 PB$=SPACE$(LM)+SPACE$(RM-LP-1)+MID$(LB$,(LM+1),(LP-LM)):LP=RM-1:GOTO127 117 IFJ=NORCH$=CHR$(10)THEN126 118 R=RM-1-LP:IFR<1THEN126 119 FORI=LM+1TORM:IFMID$(LB$,I,1)<>" "THENL=I:I=RM 120 NEXT:IFINSTR(MID$(LB$,L,(LP-L))," ")=0THEN126 121 JP=LP 122 JP=JP-1:IFJP=LTHEN121 123 IFMID$(LB$,JP,1)<>" "THEN122 124 JP=JP-1:IFMID$(LB$,JP,1)=" "THEN124 125 JP=JP+1:LL=LEN(LB$):LB$=LEFT$(LB$,JP)+" "+MID$(LB$,(JP+1),(LL-JP-1)):LP=LP+1:R=R-1:IFR<>0THEN122 126 PB$=LB$ 127 IFLC=0ANDHF=0THENGOSUB93 128 IFLP=0THEN131 129 FORI=1TOLP:IFVL=-1THENPRINT#2,MID$(PB$,I,1);ELSEPRINT#3,MID$(PB$,I,1); 130 NEXT 131 FORIX=1TOLS:GOSUB44:IFHF=0THENGOSUB185:IFLC=>BM-HLTHENGOSUB84:IX=LS 132 NEXTIX 133 LB$=SPACE$(140):LP=LM+1:RETURN 134 IFLP>LM+1THENGOSUB104 135 IFLC<>0THENGOSUB84 136 CLOSE:ONERRORGOTO137:KILL"VCTEXT.DO" 137 MENU 138 OPEN"COM:87I1D"FOROUTPUTAS2:RETURN 139 FILES:PRINT:INPUT"Print which file";FN$:OPENFN$FORINPUTAS1:PRINT:INPUT"Pause between pages (Y/N)";A$:IFA$="Y"ORA$="y"THENPP=Y 140 PRINT:INPUT"Print to (S)erial or (P)arallel port";A$:IFA$="S"ORA$="s"THENSP=Y 141 PRINT:PRINT"Need a line-feed character":INPUT"with each carriage return (Y/N)";A$:IFA$="Y"ORA$="y"THENLF=Y 142 PRINT:INPUT"Did you put 'copy markers' in the text (Y/N)";A$:IFA$="Y"ORA$="y"THENCM=0ELSECM=-1 143 PRINT:PRINT"Please wait...":RETURN 144 DEFINTA-Z:Y=1:N=0:VL=-1:PL=66:TM=6:BM=60:VC=N:H$="1":F$="1":PN=1:PI=5:LC$=CHR$(92):LB$=SPACE$(140):DIM HF$(1,2,16),HL(1,2):LP=1 145 LM=12:RM=72:LS=1:PF=1:J=Y:C=N:FR=N:P=Y:WS=Y::RETURN 146 IF H$="N" THENRETURNELSEI1=0 147 HP=VAL(H$):IFHP=0THEN153 148 IFPN0THENI2=1:GOTO163 151 IFHL(I1,2)<>0THENI2=2:GOTO163ELSERETURN 152 IFHL(I1,0)<>0THENI2=0:GOTO163ELSE151 153 IFH$="Y"THEN149 154 IFH$="O"THENF$="E":GOTO152 155 IFH$="E"THENH$="O":GOTO150 156 RETURN 157 IFF$="N"THENRETURNELSEI1=1 158 HP=VAL(F$):IFHP<>0THN1920 159 IFF$="Y"THEN149 160 IFF$="O"THENF$="E":GOTO152 161 IFF$="E"THENF$="O":GOTO150 162 RETURN 163 X1=I1:X2=I2:GOSUB185:Z=HL:GOSUB174:IFZ+HL>BM-TMTHENER=4:GOTO195 164 I1=X1:I2=X2:FM$=HF$(I1,I2,0):X1=LM:X2=RM:X3=LS:X4=PF:X5=J:X6=C:X7=FR:X8=P:X9=WS:XP=LP:XB$=PB$:ZB$=LB$:GOSUB145:GOSUB49:HF=1:FORZ=1TO16:LB$=HF$(I1,I2,Z):IFLEN(LB$)=0THENZ=16:GOTO173 165 IFLEFT$(LB$,1)=CHR$(13)THENFORZZ=1TOLS:GOSUB44:NEXT:GOTO173 166 LB$=SPACE$(LM)+LB$:PB=INSTR(LB$,"[P>"):IFPB=0THEN172ELSEER=3 167 PE=INSTR(PR,LB$,"]"):IFPE=0ORPE=PB+3THEN195 168 FORI=PB+3TOPE-1:IFMID$(LB$,I,1)<>"#"THEN195 169 NEXT:LB=PE-PB+1:ND=LB-4:IFND<1ORND>5THEN195 170 PN$=STR$(PN):PN$=RIGHT$(PN$,LEN(PN$)-1):IFLEN(PN$)>NDTHENPN$=RIGHT$(PN$,ND) 171 LB$=LEFT$(LB$,PB-1)+PN$+MID$(LB$,(PE+1)) 172 LP=INSTR(LB$,CHR$(13))-1:GOSUB104 173 NEXT:LM=X1:RM=X2:LS=X3:PF=X4:J=X5:C=X6:FR=X7:P=X8:WS=X9:LP=XP:PB$=XB$:LB$=ZB$:XB$="":ZB$="":HF=0:RETURN 174 HL=0:IFH$="N"THENRETURNELSEI1=0 175 HL=0:IFF$="N"THENRETURNELSEI1=1 176 IFPN0THENRETURN 179 HL=HL(I1,2):RETURN 180 HL=HL(I1,0):IFHL<>0THENRETURNELSE179 181 IFH$="Y"THEN177 182 IFH$="0"THEN180 183 IFH$]"E"THEN178 184 RETURN 185 HL=0:IFF$="N"THENRETURNELSEI1=1 186 HP=VAL(F$):IFHP<>0THEN176 187 IFH$="Y"THEN177 188 IFH$="O"THEN180 189 IFH$="E"THEN178 190 RETURN 191 CLOSE3:VL=-1:IFLC=0THENRETURN 192 GOSUB185:FORI=1TO(BM-LC-HL)\2:GOSUB44:NEXT:OPEN"VCTEXT"FORINPUTAS3 193 VC$=INPUT$(1,3):PRINT#2,VC$;:IFNOTEOF(3)THEN193 194 CLOSE3:RETURN 195 PRINT:IFER=1THENPRINT"Header or footer begins: [";CH$ 196 IFER=2THENPRINT"Header or footer too long." 197 IFER=3THENPRINT"Page number format error." 198 IFER=4THENPRINT"Margin format error." 199 CLOSE:END