0 'CLUB 100 Library - 415/939-1246 BBS, 937-5039 NEWSLETTER, 932-8856 VOICE 1 'JUSTFY.BA by Micheal Loebal, Revised by Robert Benson (Ver 1.3) 10 CLEAR1000:MAXFILES=2:O$="LPT:":A=27967' (If run on the 200 A=33993) 12 CLS:PRINT:FILES:INPUT"File to be printed";F$:IFF$=""GOTO12 14 ONERRORGOTO16:GOTO18 16 IFERR=52ORERR=55THENRESUME12 18 OPENF$FORINPUTAS1:OPENO$FOROUTPUTAS2 20 CALLA,27:CALLA,36:IFR=1GOTO68:REM CALLA,27,36 disables software in the PTM-64 buffer 22 N=1:CLS:PRINT:INPUT"Number of copies needed";N:IFN<1GOTO20 24 P=12:CLS:PRINT:INPUT"Number of characters/inch";P:IFP>15ORP<8GOTO24 26 CALLA,27:CALLA,31:CALLA,(120/P)+1 28 T$="N":CLS:PRINT:INPUT"Justified(Y/N)";T$:IFT$="y"ORT$="Y"THENF=1:GOTO52 30 IFT$="n"ORT$="N"GOTO34 32 GOTO28 34 T$="N":CLS:PRINT:INPUT"Flush left(Y/N)";T$:IFT$="y"ORT$="Y"THENF=2:GOTO52 36 IFT$="n"ORT$="N"GOTO40 38 GOTO34 40 T$="N":CLS:PRINT:INPUT"Flush right(Y/N)";T$:IFT$="y"ORT$="Y"THENF=3:GOTO52 42 IFT$="n"ORT$="N"GOTO46 44 GOTO40 46 T$="N":CLS:PRINT:INPUT"Centered(Y/N)";T$:IFT$="y"ORT$="Y"THENF=4:GOTO52 48 IFT$="n"ORT$="N"GOTO28 50 GOTO46 52 TM=0:CLS:PRINT:INPUT"First page top margin setting";TM 54 BM=54:INPUT"Bottom margin setting";BM 56 IFBM132GOTO60 62 IFRM<=LMGOTO58 64 CALLA,27:CALLA,9:CALLA,RM:CALLA,27:CALLA,48 66 CALLA,27:CALLA,9:CALLA,LM:CALLA,27:CALLA,57 68 L=1:PG=1:IFTM>1THENFORI=1TOTM-1:PRINT#2,"":L=L+1:NEXTI 70 C=0:C$="" 72 IFEOF(1)THENCLOSE1,2:CALLA,12:N=N-1:GOTO76 74 GOTO80 76 IFN>0THENR=1:GOTO18 78 CALLA,27:CALLA,83:MAXFILES=1:FORZ=1TO14:FORA=620TO620:SOUNDA,2:NEXTZ:MENU 80 LINEINPUT#1,X$:X=LEN(X$) 82 IFX=255THENY=1ELSEY=0 84 IFF<3GOTO90ELSEIFC<>0GOTO90 86 IFLEFT$(X$,1)=CHR$(9)THENX=X-8:X$=RIGHT$(X$,X):GOTO86 88 IFLEFT$(X$,1)=" "THENX=X-1:X$=RIGHT$(X$,X):GOTO88 90 LL=RM-LM:IFX<=LL-CGOTO100 92 T=LL-C+1:C$=C$+LEFT$(X$,T):X=X-T:X$=RIGHT$(X$,X):I=LL+1 94 IFMID$(C$,I,1)=" "GOTO108 96 IFI=2THENPRINT#2,"This line is too long and is unbreakable.":END 98 I=I-1:GOTO94 100 C$=C$+X$:IFY=1THENC=LEN(C$):GOTO72 102 IFF=1THENB=2ELSEB=F 104 T$=C$:GOSUB112:IFL=BMTHENGOSUB150 106 L=L+1:GOTO70 108 B=F:C=LL+1-I:T$=LEFT$(C$,I-1):GOSUB112:C$=RIGHT$(C$,C):IFL=BMTHENGOSUB150 110 L=L+1:GOTO84 112 T=LEN(T$):IFB=2GOTO140 114 IFRIGHT$(T$,1)=" "THENT=T-1:T$=LEFT$(T$,T):GOTO114 116 EX=LL-T:IFF=3THENDE$=STRING$(EX," "):T$=DE$+T$:I1=1:I2=LL+1:GOSUB148:PRINT#2,"":RETURN 118 IFF=1GOTO126 120 IFEX=0THENI1=1:I2=T+1:GOSUB148:PRINT#2,"":RETURN 122 DE=FIX(EX/2):DE$=STRING$(DE," "):T$=DE$+T$+DE$:T=LEN(T$):IFDE=EX/2THENI1=1:I2=T+1:GOSUB148:PRINT#2,"":RETURN 124 K1=0:K2=FIX(60/P):GOSUB146:I1=1:I2=T+1:GOSUB148:K1=K2:K2=120/P:GOSUB146:T$="":GOSUB148:PRINT#2,"":RETURN 126 S=0:I=1 128 I=I+1:I=INSTR(I,T$," "):IFI>0THENS=S+1:GOTO128 130 IFS=0GOTO140 132 DE=EX*120/P:EX=DE-(FIX(DE/S))*S:DE=FIX(DE/S):K2=0:I1=1:I2=1:K1=0 134 I2=INSTR(I2,T$," "):IFI2>0THENGOSUB148:K2=K2+DE:GOTO142 136 I2=T+1 138 GOSUB148:PRINT#2,"":RETURN 140 I1=1:I2=T+1:GOTO138 142 IFEX>0THENK2=K2+1:EX=EX-1 144 GOSUB146:I1=I2:K1=K2:I2=I2+1:GOTO134 146 CALLA,27:CALLA,31:CALLA,2:PRINT#2,STRING$(K2-K1," ");:RETURN 148 CALLA,27:CALLA,31:CALLA,(120/P)+1:PRINT#2,MID$(T$,I1,I2-I1);:RETURN 150 CALLA,12:PG=PG+1:L=2:PRINT#2,"Page ";PG:PRINT#2,"":RETURN