home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.whtech.com
/
ftp.whtech.com.tar
/
ftp.whtech.com
/
club100
/
prt
/
sprint.ba
< prev
next >
Wrap
Text File
|
2006-10-19
|
8KB
|
201 lines
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<RM+1THENRETURN
75 IFMID$(LB$,RM,1)=" "THEN82
76 IFMID$(LB$,(RM-1),1)<>" "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 IFLC<PLTHENFORI=LCTOPL-1:GOSUB44:NEXT
90 PN=PN+1:LC=0:IFPP=NOREOF(1)THENRETURN
91 PRINT:PRINT"Press any key to resume printing..."
92 IFINKEY$=""THEN92ELSERETURN
93 IFTM=0THEN95
94 FORI=1TOTM:GOSUB44:NEXT
95 GOSUB146'DO HEADER
96 RETURN
97 CH$=" ":IFPI=0THEN99
98 FORI=1TOPI:GOSUB69:NEXT
99 GOSUB174:IFLC=TM+HLORLC=0ORPF<2THEN102
100 GOSUB185:FORI=2TOPF*LS:GOSUB44:IFLC=>BM-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 IFPN<HPTHENRETURN
149 IFPNMOD2=1THEN152
150 IFHL(I1,1)<>0THENI2=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 IFPN<HPTHENRETURN
177 IFPNMOD2=1THENRETURN
178 HL=HL(I1,1):IFHL<>0THENRETURN
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