10 MAXFILES=3:CLS:SCREEN,0:CLEAR600:B=63633!:DEFSTRC,F,S-W:DEFINTI,L-R:S=" ":DIMF(12):NM=1:I=1:SC=CHR$(27):VR=SC+"p":VN=SC+"q" 40 M=14:PS=2:LW=78:PG=6:P=1:ST="lpt:" 120 UN=SC+"E":UO=SC+"R":SP=SC+"D":SO=SC+"U":SH=SC+"W":SN=SC+"&" 160 GOSUB730:GOSUB1160 200 IFF(N)=""THENGOSUB1100:GOTO220 210 OPENF(N)FORINPUTAS1:LOCATE0,4:PRINTVR"Printing "F(N)+STRING$((10-LEN(F(N)))," ") 220 IFEOF(I)GOTO420 230 C=INPUT$(1,I) 240 IFC=CHR$(13)THENC=INPUT$(1,I):RF=1:GOTO280 250 IFPF=1ANDC=" "THENIN=PG:LL=LL+PG:PF=0:ELSEPF=0 260 IFC=" "THENIFW=""GOTO220:ELSEGOTO280 270 W=W+C:GOTO220 280 IFLEFT$(W,1)><"."ORW="."GOTO420 290 IFW=".u"THENUF%=1 300 IFW=".nou"THENUF%=0 301 IFW=".bold"THENBF=1 302 IFW=".nobold"THENBF=0 310 IFW=".c"THENCF%=1 320 IFW=".quote"THENQ=1:M=M+4:LW=LW-8:PT=PS:PS=1 330 IFW=".noquote"THENQ=0:M=M-4:LW=LW+8:PS=PT:PRINT#2,:LN=LN+1 340 IFW=".page"THENGOSUB620 345 IFW=".tp"THENIFLN+FTL%+(3*PS)>50THENGOSUB620 350 IFW=".x"THENS="" 360 IFW=".fn"THENGOSUB980 370 IFLEFT$(W,3)=".lm"THENM=VAL(RIGHT$(W,LEN(W)-3)) 380 IFLEFT$(W,3)=".sp"THENPS=VAL(RIGHT$(W,1)) 390 IFLEFT$(W,3)=".lw"THENLW=VAL(RIGHT$(W,2)) 400 IFLEFT$(W,3)=".in"THENPG=VAL(RIGHT$(W,LEN(W)-3)) 410 W="":IFRF=0GOTO220 420 IFRIGHT$(W,1)="."THENW=W+S 430 IFLL+LEN(W)+1>LWANDLEN(W)>1THENS=" ":GOTO490 440 LL=LL+LEN(W)+1 450 IFUF%=1THENW=UN+W+UO 455 IFBF=1THENW=SH+W+SN 460 IFRF=1OREOF(I)THENL$=L$+S+W:W="":PF=1:RF=0:S=" ":GOTO490 470 IFW<>""THENL$=L$+S+W 480 W="":S=" ":GOTO220 490 IFCF%=1THENIN=IN+(LW-M-LL)/2:CF%=0 500 PRINT#2,STRING$(M+IN," ")+L$+CHR$(13)+STRING$(PS,CHR$(10));:LN=LN+PS 520 IFLN+FTL%>50THENGOSUB1100 530 IFLN>51THENGOSUB620 540 LL=0:IN=0:L$="":C="" 550 IFEOF(I)ANDI=3THENGOSUB1150:IFF(N)=""THENPRINT#2,CHR$(12);:KILL"FN.DO":MENU 560 IFEOF(I)THENIFW<>""THENGOTO420:ELSECLOSE1:N=N+1:GOTO200 570 GOTO420 620 PRINT#2,CHR$(12);:IFFE<>"y"GOTO640 630 GOSUB680 640 IFP>0THENPRINT#2,STRING$(M+LW-2," ");:PRINT#2,P; 650 PRINT#2,STRING$(2,CHR$(10)):P=P+1:LN=0:RETURN 680 LOCATE0,4:PRINTVR" Ready? " 690 IFINKEY$><"y"GOTO690 700 LOCATE0,4:PRINTVR"Printing "F(N):RETURN 730 PRINTSC;"V":LOCATE0,5 740 PRINT"Texts in RAM: ";:FORX=1TO19 750 IFPEEK(B)=192THENPRINT" ";:FORY=3TO8:PRINTCHR$(PEEK(B+Y));:NEXTY 760 B=B+11:NEXTX 770 LOCATE0,4:PRINTVR" Select files ":PRINTVN:X=13:Y=3 780 GOSUB950:PRINTSTR$(N)")";:LINEINPUTF(N) 790 IFF(N)<>""ANDN<>12GOTO780 800 LOCATE0,4:PRINTVR;:INPUT" Parameters(y/n)";C$:PRINTVN; 810 IFC$="y"THENGOSUB870 820 GOSUB680:OPENSTFOROUTPUTAS2:GOSUB640:N=1:RETURN 870 N=0:X=20:Y=2:Z=4:LOCATE0,4:PRINTSC+"J";:GOSUB950 880 INPUT"Left margin";M:GOSUB950:INPUT"Line spacing";PS:GOSUB950:INPUT"Line width";LW:GOSUB950:INPUT"First page #";P:GOSUB950 920 INPUT"First FN#";NM:NM=NM-1:GOSUB950:INPUT"Paragraphing";PG:GOSUB950:INPUT"Output";ST:GOSUB950:INPUT"Page halt (y/n)";FE:RETURN 950 LOCATE(X*((N)MODY)),Z+((N)/Y):N=N+1:RETURN 980 OPEN"FN"FORAPPENDAS3:FTL%=FTL%+1:NM=NM+1:S="":NM$=SP+RIGHT$(STR$(NM),LEN(STR$(NM))-1)+SO+" " 1000 IFRIGHT$(L$,1)=" "THENL$=LEFT$(L$,LEN(L$)-1):LL=LL-1 1010 L$=L$+NM$+S:LL=LL+1:PRINT#3," "NM$; 1020 IFEOF(1)THENRETURN 1030 C=INPUT$(1,1):IFC="{"THENGOTO1030 1050 LC=LC+1:IFLC>=LWTHENLC=0:FTL%=FTL%+1 1060 IFC="}"OREOF(1)THENLC=0:PRINT#3,CHR$(10):FTL%=FTL%+1:CLOSE3:RETURN 1070 PRINT#3,C;:GOTO1020 1100 IFLN+FTL%>56THENRETURN 1110 IFFTL%=0THENOPEN"FN"FOROUTPUTAS3:CLOSE3 1120 WS=W:W="":PQ=PS:PS=1:I=3:FTL%=0:LN=0:OPEN"FN"FORINPUTAS3 1130 IFQ=1THENM=M-4:LW=LW+8 1140 RETURN 1150 CLOSEI:I=1:PS=PQ:W=WS:IFQ=1THENM=M+4:LW=LW-8 1155 IFF(N)><""THENGOSUB620 1160 OPEN"FN"FOROUTPUTAS3:PRINT#3,SP+STRING$(20,"_")+SO:CLOSE3:RETURN