[comp.text] New DVI-LaserJet Converter

mah@hpuviea.UUCP (Michael Haberler) (02/15/89)

# This is a shell archive.  Remove anything before this line,
# then unpack it by saving it in a file and typing "sh file".
#
# Wrapped by Michael Haberler <mah@hpuviea> on Wed Feb 15 15:55:39 1989
#
# This archive contains:
#	BLURB.Z		KIT.Z		Makefile.Z	README.Z	
#	commands.h.Z	dvi2lj.1.Z	dviprint.csh.Z	findfile.h.Z	
#	history.Z	make.Z		testpage.tex.Z	
#

unset LANG


rm -f /tmp/uud$$
(echo "begin 777 /tmp/uud$$\n \nend" | uudecode) >/dev/null 2>&1
if [ -f /tmp/uud$$ ]
then
	rm -f /tmp/uud$$
	unpacker=uudecode
else
	echo Compiling unpacker for non-ascii files
	pwd=`pwd`; cd /tmp
	cat >unpack$$.c <<-'EOF'
	#include <stdio.h>
	#define DEC(c)	(((c) - ' ') & 077)
	main()
	{
		int n;
		char dest[128], a,b,c,d;

		scanf("begin %o ", &n);
		gets(dest);

		if (freopen(dest, "w", stdout) == NULL) {
			perror(dest);
			exit(1);
		}

		while ((n=getchar()) != EOF && (n=DEC(n))!=0)  {
			while (n>0) {
				a = DEC(getchar());
				b = DEC(getchar());
				c = DEC(getchar());
				d = DEC(getchar());
				if (n-- > 0) putchar(a << 2 | b >> 4);
				if (n-- > 0) putchar(b << 4 | c >> 2);
				if (n-- > 0) putchar(c << 6 | d);
			}
			n=getchar();
		}
		exit(0);
	}
	EOF
	cc -o unpack$$ unpack$$.c
	rm unpack$$.c
	cd $pwd
	unpacker=/tmp/unpack$$
fi

echo x - BLURB.Z '[non-ascii]'
$unpacker <<'@eof'
begin 644 BLURB.Z
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
$T"\% .6!
 
end
@eof

chmod 644 BLURB.Z

echo x - KIT.Z '[non-ascii]'
$unpacker <<'@eof'
begin 644 KIT.Z
M'YV01N2\:0."3AT[:<J$"'(ER94J5V+$<"$D"14G1:B$P%BE21 G3D!<*4,&
M1),P>4" H $"1@X=-&*8+#(%1(P<.' HD%)F3)DT=DCJ "$F)1HX!Q.&V2&2
M)(N5)E&"R-GR94P=,&2V*3-'0<"!0PTB5,C0(42)%"UBU,C1(\B=90S*<=,"
M2A@Z:(;R$)MP8<.'$2=6O)AQ8Y&.'YWX@.L3J% 09@02Y%L&Q)TT>$'4J3,&
M#M.19)ZR/)F2*@P<.FK P$J#\<^@9(86+9BTC(O-G3^3C)H2ZNG4JV&PO)G3
MM>/8D"6#:)/&#1T7/N>"0,'<>0JB*:.[L1,&SVW.<*9/E/&B"ALZ<M+@D>$"
M1@LA*10D2%,R2)#3,F[<T!T:*NFI.+2$&@TVZ" 1""O ( ,,,!@'FVPI5?><
M=M-IQQT>UZ% @PLQD#<#AS3$-U]]0<A00PTVQ,"?:+P!*"!,!<(P X(*,JA 
M$US-$<899;20!'(\Y 2#:C3 8 .!+MAG(HHQ "$A=&7,M1A/C3V('0@6=M=4
M2?_Y-F -,,T@7V0#@=!68D"4!1A:@ZT%V1MR+!=&&FQ$"426>(" 4!@@R#''
M&'.XH  6[V'F1EPM3%&&&V1$.=29(*7YUUF"J941" H0<5<90U%11QE/R=@B
M50MB!>8,+#U$A0)4O#'44;6%$4(;8:"AP! #;>7<4$-(\<044[A)*YUZIL&G
M1TDP48040 RQK!-6!(&% @ID\48=(,R!QK5LE"1'3Z]5%@899&"6QAMNA,$&
M&RF9\<:Z;USFQAF0T<F5#@JHI"^K9>!!1[UUSH&OOD18D80,6& !PA#YJE3P
MP0F#@$024U#QA!19-+SP$TVX141-2&AL1!).$#&RLA)K3 5-5$ 1Q!%%@+#R
9M/JJI,"W9X0A!QE=M0#"&77,04<89E"K !).
 
end
@eof

chmod 644 KIT.Z

echo x - Makefile.Z '[non-ascii]'
$unpacker <<'@eof'
begin 644 Makefile.Z
M'YV0(Q2,2%"$3!HZ(,+,20@'CIPW#M.$H5,&1 L0>=[4 =$F#9LR8<Y4['@&
M#4([8>3D<2%0 1,E1I@$.3(E 8B;.'M8)/)201(A36+.G((SY\Z?36;@B"%#
M@9$G3J@$D5(D2-&;/;B(>%%GCIP7;-Z,"<,&;!HQ+RCB>6'FC1LZ<[2"4*!@
MB%":-J_J;$'D:=2I57N00.%7*M4@*2P^44"DR!0J>8OJY.H5K%BR+\2D<:.@
M21 GC1]'-DKY:]BQ9=N$<?-"M9L8"I 0D5+S*@B=8]ZT<4UFC@LT(+@H2$ \
M@9G-9(Y__.W3R>,@3)B,Q@IB\QPZ9-FX)#+]-H@Q8Q1 D?+DB)0@3;KK)&,G
MC0PV:K;?K:W7Y4_ZDCL'65+$2!(F1=BF4Q-AK%&&<F4H\(002N!G%'ONX8&'
M"V^()T424:D' AMP*# %$D5$IV%FF[TP!QH>2C&$@]1!*(.$+H2G0'8Z$.<B
M?""X>%8;<REPHQHUN@AC>,0--L00B1DY7Y(HO+1DCNV]..$8%KT!I7OP#9< 
M$&6,@8:5(I#A5ADBT*6C&&WHH*612(*@I$PT,8G4DT).6>65,NRH)9=>@BFF
M&V32-<9'J^FP W% R,%C"V:XB<*"#2:6FQP)*C#H&V*(488<AFZIJ$6-#@;I
M%$R.5]YY34CZ!J4@8'?&'&:6 4<9;I#1*1!MK-%&HXPZZAE__@&8&'E/4"$8
M"L12D0)=77[9Z9;-6CF8;+0Q.86*I-*%7!EX/ O$&*XNU,(=>#A*+:F.7KOB
ML@I8AQT;; 0999:(1@M"$FY<E]UF9SAJJGGH);:9HZ$INV<+U\F1!AS^D@=P
MJGNFT>@6!#NF+ @AZ.0""%WLT"H:M :G)0J?]CI8P2F\,-B_J*;@\6 8/A==
MJ0ZW7/%C*;@,PG%[VHNOOO#RR]%J<(14T<"#>0::Q<L2-P;#/[H0@Z^?H4Q7
M1&]YN_*%43%YKK78LANN#K9=->ULZ ZF+JD>?QNNN6B#O2Y==<!!QD1EU)C 
MR4RKC ++ =/%-\Y^ YXJV6J'[2@3]WD=]UR()KU?$8F9C,*O_?U'.0C)'IML
M8@4?BW)U^;ZKW0BH^Q@EC&^0G=MNJ_7V&PBEO;#9H'6048:)="CLQAFSUWX[
M&[GO/D<:9[A!UNS")2"\&[CK;F(><YB(O/)L!-_55\,7WUH87FZVNQERA-%&
M&<P/]WSTNZL6/J FAF%'&5_H2Y'VE74OO?MHB,]6^>=+G_.V9SOH$6]_X.L?
M_.8@/_K9#WW 6=\!C4>]Z<T!-=D#3O,DZ+WK&.0-^..> ;T'KCS,*H0%9)\%
M7U T  J0@])#0UI,6 ;?1)" ^J-@]>A 0QN*;(#Y&R$"W[>[%IH/A3E\@0SG
M0#WW/<2'&\2A$'5H02>^P8<P;%\"_3<'.&3PAUG\'A%9F)(CWC"(*N0?%[WX
M0BFJ<(G76]X91?C&%ZS!(64H0QO@0(?9':=6"&HC&B>X0OLA<8HKI$,:SB<&
"Y@"J
 
end
@eof

chmod 644 Makefile.Z

echo x - README.Z '[non-ascii]'
$unpacker <<'@eof'
begin 644 README.Z
M'YV01N2\:0."3AT[:<J$"'(ER94J5V+$<"$D"14G1:B$P%BE21 G3D!,J>,&
MA)(P)67( *%21XP<()H4T0+B)8X<"J24&5,FC9TR9'2 $),'!!HX!Q.&V2&2
M) N6*T^6O G590X=-7" :%-&CX*  X4:1*B0H4.($BE:Q*B1HT>0.<L8E..F
M!90P=- (Y3$VX<*&#R-.K'@QX\8B'3\Z\1&7IT^@0LT()-BW#(@[:?*"J%-G
M#!RF(]T\56D2)0BJ+6/8T$'C1N.>/X,.+5K9!6?/H$F63KDR]>K6-7/<?/U8
MMN2!6].XH>.")UT0*-HHIY-B-@CG;NR$P6.[,QSH$V6\J,*&CIPT>&2X@-%"
M2 H%"=*0 1$D"(P:-G#@R"T:ZN[3,,D0 U8RZ"!##2"L $,,,,! 7&Q"$97<
M<LV5\1P*V&F'1W4HT.!"#.+-\"$-[\4W7WT,UC!##/R-%I5IJ U80X$RP*0@
M@PXV4<8<<X1Q1ADM)"$;#S<MJ)(,]ZF'XGTK B$=A=@QII-C$%J7X79-E225
M?P(2Z)(-\!U'D%N* 6%68&D1QA8(9KPAQU9AI,&&A4!<B0<("(4!@AQSC#&'
M"PI@T5YF;LC5PA1EN$&&A4*1"9*9@*$UV%H9@:  $7B5(51H+OX7HPXPW #J
M#" \1(4"5+PAU%%)E1%&"&V$@88"0PS$U7)"#2'%$U-,L6:L<N*9AIX>)<%$
M$5( ,02R3E@1!!8*C"2&&CO1(109",F !W=SU-%&K'+DH8 "6;Q1!PASH&$N
M&_/)L1-LEH5!!AF9I?&&&V&PP09M:%C6IKYO8.;&&6S*N:,."H"@L,()*TR$
M%4G(@ 46( RQ,'1C#*0<P<H5A(:[EL$1AAQTS/'>P@]'/#$(2"0Q!15/2)%%
MPQ4_T<1;1$S!,LU&).$$$3T?N_/"5!3Q,A1!'%$$"$5#BS+$$E/LT1)%T,QP
2"V?4,0<=89@!0J'>HN3&N H 
 
end
@eof

chmod 644 README.Z

echo x - commands.h.Z '[non-ascii]'
$unpacker <<'@eof'
begin 644 commands.h.Z
M'YV0+U2 (&(E"8@A3YHT">*$R!00*EXH&$&FC)DT;LJ  #&E")4A7V"(W$BR
M)(R2( *"H),'3IDY9>B &(,FC)PP8^B4D0/B9!@W9$"T>6-'HYPT9]#(C#BQ
MXL6,&SM^_!)#Q@V4&ZM>+:F2I4N8,FG:Q*F3IU80/X,.+0KB:-*E$BE:Q*B1
MH\<86%%6Q8&R:\N7,='.K'DSYTZT0(42-8I4*<2X3NE&]2@C;\FJ.?H*_,'Y
M<=.Y4.U2F6&99(P9)[EN[LQ4[M.Z4FF4SCH#KVH0G']X=BU9]!<I59@4R7NZ
M\FVO@&6&:5N'C<:TBMFZ==PZ<F@H5:C8+GV:]/&_8 6++5QVM_6ZV*D8YSY#
M]NW<YD&CS^Z=?0W-N%E#EK\QO7OV-N '7W7\@9#>;\$-A]5I6Y'DUU>!+2='
M<QH1^-I&3CP!Q6RT\76;&V^ \(9+-]&1QAMNQ'<A"$)HR"$(IV5VFQAEG(&1
M&QB=(:(9(, 1QAD5[K=B$2YR& ,-J3DH4!E Y;ACCS\&^=F*V$V!A)$T;+>1
M2G.$P18=:&@T1AURR,&D3'"\,4<:)J(XAXJ]05'D;$>NMZ5 9LY!QQMF]FBF
M'2?6\6:::[;IQIL6]B9%$D<@H1UW--1W9W2,O05G:(LVJAZD_TTZH)"*,NJH
MI'K1<-][^DT9JJ:=EAH@JKHE&MH52=))0X.3KE6I8V+D 8(.=^AP:5U7: FI
MATI2VE9CRB46'K#"RDJLG9#*F.RGJLY*JF4QU%!K2JO%"NJLK7);@[$J8<M;
M:%A\:RZU*NFZK*6]_HI'M./6A86QYI(:[V+S.@;=L_<.NQ$6U)K;:KJIKJOO
MML35<.JU#9]W<+D1OTJQN-G61<035SC![V4UX JNLF2\<4>*TF[T<<@)DXRL
MIQ47^+(3$)M6@[4T<^RPRR [@;%I-GS+L,\6@Y"%N\39@*Y \J:\,@CUZI '
MOAUOE,7("]H +]0 2YWBP(%9C?7/2L?<M;_A&JQTSGK9L'#;+2L]=-P3]^RV
M%DQWK7&N8:N<8M5ZG)VT%ES';?*_;(F-6%#/%KZWVG'/?+*ZA\-]F0T\7U[S
MBEK<?=D-1M.=[T9&/.$$%2'U'<,-3X,0WIAEG@F"&2C*M&=/;J>^^A<VY"Q#
M>_C-3J:9;LB$>_(KA7A2W4:LGOA&P^=]LO&U,[\\7%F#$/VFLPW_]\E3A-'&
M<V]^'P,+()2!QQAEP*%[3<K)H6,:;U;6JTZ(GN[]ZIH#P? 6)Y#RG0\MZ9,>
M^]P'/_FMA'YHL1\(\ <"TNSO);U;G>@$. /+J<2 Z/N?=A;XOOC-+PSUN]^;
M9'/!_G4/"S"<'@<[IQ+WZ>10)TK1[G3@ H(8! Y':0.;TE 4%Z(-A@CCD R0
MA!\FI&$-&D'B^JA6!YG @ <]6 ,/;""Q&02H;D@,X!)CYT0H@D"*[!-#%7N"
M12WJ@ XDD($7=+!$'9! !SYP&Q(WN,2O]>@--S11&-C !E^Q 44ZLB&3UH2B
MYOVJAP51P(LF.1L@ID&()BIB!EE'A"(8861+9!L(+ 8FC9SO)TYZ X^6LST0
MN*$.;: 13Z#WNTX:(69+G%M^D%:@[WW!EA!;HO6.MLE?>A)C2QP?,>L&!2DH
M*'RWP@\0RV ^,3C';7*: A642 ,/"H10=*CF-6ED(S?@R TZ8N83M/F%;&X3
M)4NDX3?5%,Y87I-)9' 24RRC$A#4 2CR(<,7QO"&-K0A+6\*G[=8((-S,;0&
.,GCH#!Y*@X?>ARD*4  2
 
end
@eof

chmod 644 commands.h.Z

echo x - dvi2lj.1.Z '[non-ascii]'
$unpacker <<'@eof'
begin 644 dvi2lj.1.Z
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
<DA(RH2@\8!1H  1H # <01DN4 <+" <^H  ""023
 
end
@eof

chmod 644 dvi2lj.1.Z

echo x - dviprint.csh.Z '[non-ascii]'
$unpacker <<'@eof'
begin 755 dviprint.csh.Z
M'YV0(T* >"$FC9L78^:@ ='"C((1"::,D9,&#AT0=-Z @$/1S44R=M* ,).&
M39DY(-ZX 1$&!)LP<\K(45.&CHN'"9JX ($DC!B9)N6 F/$BQPL<-UB D!+&
M#9DW;7B&&;,&)9$R<&Y";,&23!B+9,J0&?E&J!48+FC$ $'C* Z<;<+D >&F
MC%B,=\J$66/P#%FA=-"D09FWS)H3*-]83*,2I0F7!LML[$A'YD,%==S$O&A'
MII@W,15L!I%YC9F79T37'%FR3 \1(E1?S!RG3IJ:KUO$B3TZ9A@Y8]# "1/X
M->_5<^C\5G[1N&P0:/2&E4/2I//1<<]<7\VQ#)LW8<ALOUC[-IWQ(.24Z2PG
M)OJ,P\^XAOW<S9L[O]V@Q_/&C!GT>?3W'WVC\2>'=@2N%N"!Z+$!1UC)-0C'
M&(K=-H>$<[3F46YS''>1@^Q]YAY]"IA1EE[!L71@'6V4X1$(*(! @@H@I*  
M"#B"<(=@)L$(PEHVYB@D"'/<D08=*<9(PF]GL.CB14$.*>48,$DF0@MVB*"#
M @DD,!IMMN%V999<>KF:@QF:M"%]78X&HF>@S=?"';%U*89Z>W$I))4Q@7!E
M&"IH>:.4A.+8FU[ "4<<&CTLN6*+'I5YIUYKZ)DCGU8V%.B6A1;:FW)R,-<H
MDTY&:B>>E2:P9Y5^MH#&IH-V.N1HT84G4W6N.=HDI'1(BJJE.&+::ANPRBHE
M=F%HIVNIO9Y**; @"'LE'((:.RMWZGT7WJB//NGKLZI>RNJ5<11K;8ZCE8?;
MLKQ^FV>XP8[;@AS5GFOH:NJQYQZ[WCK[[JI]7DF'N?:.!E^RN9+:KK^I IPI
MG9S:2^1J]N$GAW[\FIK I/^*&W +6!!\;H%E*:MPOQO_"F^T\F8ALK6C+6AR
MMQISW+#'F>+QLK$D^\?MKBC;#*VT+>2QLZPQ"_@SL^[>'._'9!S=J9L/GG1>
MQLVF#*[#K;HAM:=G3ECA24LOK'6>UA*]J9"QGEM&<!I5X<8:%:]T6K(Z@,"%
M"%COW3;,JY5VMU\]^$F"X*C)>+)'L4D,@M K2PMKFZOA6G;0OQ;J(AE%_HWN
M:HLWQQ 89>#!D>&ABP!"WB>TX (7*+B@ A<IG  &"'SP\7CF.6ZN@.\*@%22
M&C*":9Z,OB4Z7&#(@\J<C+5.AZN,V>G-)0G=:3L6">I>1$*^,O5)PL'RR5AQ
M?C+RYY^, :YO?0(ME/%"'7/(\0(=;<#Q@O!LJ$$""3@B :Z>@X<"-BHYQ*&?
M M)@!AB1H(!X $$/"B>#%& D.F[@TMO0H!$1<,$-==J@1L00GO34I X7(Q)S
MZ#<2.4 %!/Q3@U+L$YB^3,8@E2'#[]@0F@0PT($0E&#A8F#!P+BH3"+TTP?K
M)*0$)-$)*FF!$8@3!C: 0"8N; \,46A#"KE!7XQQ@U(X@D,;-B4/^,F#!GE8
M!B3"38D@=",'03 $E8!1)2E9PQ@ITQ<-.H6!7*+21>97O_OE;W\AZ=__<.<2
M.#!$)6)XI!S"<(< .@A"WG,0A>!@(1FA24.9A$.(XO2[/SI$#E%A2 ,):3_\
(Z2^&BU2  @#"
 
end
@eof

chmod 755 dviprint.csh.Z

echo x - findfile.h.Z '[non-ascii]'
$unpacker <<'@eof'
begin 644 findfile.h.Z
M'YV0(]*X&<.F#IDR('C,H2-'X!D7:'PH"#BPX,&$<_+,>4$G#YPR<R!*I$C0
M($*%&E\L#$-'I *!=$"LI(,BQ0X%('+F5"#FS1LV"LP()".431D4<%BB8>&&
MA9DW;NBT"7.&:9@V95(H&(,FC!P02>F@V3*%BI0I2;04Z;(CYPL5(* DP5*$
M"5BE(%2\V-KUJQNR9M&J9:O3+5PW5Q&^,0/B:=2\>]E /=,8JE2J;0OK? MB
MZADW:82.89D&*F2^7D$@Q@KX;-JUF3F;J<.&C>K$(!;'Q6*W*$(0*.24H5-'
MCILR9%*<WH-3)]?4DD>S^1)V;%G7@V\6?OX5;G4X=%CDA4.>CG:="^74&1-S
MILSS.6&"D#,&/@CYPN?\K$.GM!O[(#27TW<Q]2 30V/ D0<*T84Q774L5&>3
M@/.!M%]_IAF( DPIH.#896>\4(,+,("P @PNU* <@!22\08(S&DV8'D@&)@>
M5W(@I11X((AWP@XG@#"AC/<QAA2-(1CH1!5,,*%<C$3FI )Y/!IX A<P_$BA
MC%32L<(* &K6QY9;YC0'' U%908*JY7!@@@E;$0&'&F40,8+<;H QQHB1+AC
M>/E=Z!]30\H8&G#!C5'C@2RQF1@+)LR10@I)PO!DF9J=F28=:[;Y9IPOS%GG
MG7G"@0<;?1+(0J %8=B4&X5&622B]"TZDZ-802HII3U8"B.F46H*4Z>/PKF1
MJ6R4P :I(>V9ZI].6>89H6'*>B@*B=I*1Z.>1CIII9?**JZP:N+JIK$O(*LL
MLWJ>^JQ8X$4;U;2P5BMN3K7:N"U-W4IJ+Y%CWANPC /KA.FU]/70JW+"$6<<
M"F95442LA97!QAP($;AHEP#V <(=:*1A%' $)KEDDQ0'6!AG#1?G!@AER"''
M&U]A-<<<85"%D%X4DLNIN6]^J-H;,3U5AQMDZ)!0G#Z\P(.H=NZ@[K)-Y\G#
AGE*?ZD.?P(H+(:O\#?HAO2DKT/+#1@3!Q!03WS2F @H 
 
end
@eof

chmod 644 findfile.h.Z

echo x - history.Z '[non-ascii]'
$unpacker <<'@eof'
begin 644 history.Z
M'YV01N2\:0."3AT[:<J$"'(ER94J5V+$<"$D"14G1:B$P%BE21 G3D T>>,&
MA)(P)67,  $CA@X8.$06T0(B1@X<.11(*3.F3!H[9<CH "$F#P@T< XF#+-#
M)$D6(%2:1 D")TN7,&[HJ'$#1)LR>A0$'#C4($*%#!U"E$C1(D:-'#V"U%G&
MH!PW+:"$H8-F* ^S"1<V?!AQ8L6+&3<6Z?C1B0^Z/7\&'6I&($' 94#<2<,7
M1)TZ8^ TG5+'#509,J:6M(I:A\J7."#[!"J4J%',+CZ''EU:==34K5_#K'DS
MY\[(M"E;]IK&#1T7/>^"0-&F.9T4MD%$=V,G#)[<H.%,GRCC114V=.2DP2/#
M!8P60E(H2)"&#(@@06!PI8&#M^G?OK'F4@TU;%4#""NT! ,,LDE66U',.0==
M&=*AL%UW>&"' @TNQ%#>#!W2(!]]]N$7@WXU] <":?^A%F .40U8('\(*LA@
M$V7,,4<89Y310A*U\8!32ZC)@*(+)J*( Q#52;C=8\?--EEV%WJW8F\GI02<
MC#K0(,-\E0T$0ER- 9$686P=]A8(9KPAAU=AI,$&A4!4B0<("(4!@AQSC#&'
M"PI@ 1]G;M35PA1EN$$&A4.1"9*9@ZUEF%L9@:  $7N5,12+IZ66954PRH"5
M5C%T]1 5"E#QQE!(*55&&"&T$08:"@PQT%?.#36$%$],,<6:LLJ)9QIZ>I0$
M$T5( <00R3IA11!8*$":&&KP1,=09" D Q[?H9'&''2XF8<""H!@KKGEGJON
MNNRJVT023B1!1!%3[)H$%%0D\41(1CPA!0A$6)&$#%A$NVZJWLX!PK<@Z+EH
MG^K!04<:)('PAAD-@Y!M&MJ1!)0<=% XW<8]@$!%&5B<H/"B"/6TL*)EP)'H
MHLXI\$8=="1%!YMNRGI=06CLM6=I"E<,Q1 *HX %%7- %033%K\YQD!P[)6&
M&'-B5]JB;S8QQ0M$] IHP ,7O+#"86"=6;@@P"$0&:!EYA-?(K.<ALN+R@RS
M<QTORO.;="N !!0M,!'&'!0J4=<*4?\-=&9)"-'$##AX.%T;;RS*1DW8Y3US
M<V=87)*>;L<L4)\YSN&F G-L1L<8:#2\\]1MP"'GVFE\Y8*Y5*"1&1EOC%$'
MKG187?'4;FP'>L>UWPY"ZYS!GJ,"#+,1?*;V-??X\S?+T1.@!Y--,!;:425&
M9F.$P<:<]KD>.]T\K__&9FZ$_H;$%+LQAP[IGMM_"V$H&/G.188TR,%:XBK(
M&PH2AC5DIDW.45B8VO _,;2K> YL6QAD]J8V==" X-)@C]BT'/6%["Z9*I^.
MZA*RZ9"$#4:AG(?D<ZX6H,QLY[I9SG#&IML-96Z^>Q,9U ,4'52-+UQP0QB^
M8C&,Z5!G9KA=_]I%Q7:Y26-E:%EF4# 'T,3N<"!@@\1B !4WU&%S=1D##:MH
M+A0LR@QA../.&#9$R1AQ+VA(XA(S<S&-(:2'<VJ8HD!0!CR$+(+YFR(53^ "
M-JCA!(YCP^$H5*V=H<0^C(1#[2#I01#(4 9K!$$+T"! =?DN#%R+8B#9=KZ.
MV2XH1"F#!]<F!Y3,09(3JU@?-]8"599!D>U"01YN5KZ2(&Z089"#&#A32SD8
MA7:R4I3"V 8_22).#FZS#H5"V<M2GBN;?)M@+,^@O3Y6;83<PL/_Z.!-<X%S
M9VR;61-%F)ET_J\-[833&=R0ABBF+Y=N^!\>\GD&ZXE!?2# 0PLN9@;$S;$D
M;2"(+G&F,WK^+P\$-2A"\[!0,S2T+B_SBD1+\D0>GO.7-7P3N\)UAH)FYH ?
M0]P+W/"&G<&40HB+&M<<5U(Z )-=;I1E'-&SIRSBM P],$(0F#"%(CCNDU"Y
M*9^02@4I5,&IG62"$K@IGI7603H,Y1G?2F<]5/XO#NV*0QT2LK/[4<AX :WA
M'=I%4\TDDY_UFX,B%9 $C-4UF6<87J+H@+8#/D]F8^AG'F"IISF@P4T[\YT8
M 9D9.GX+#I)<+!G IZY4W6&!*D,LL=@ 26A>LK"5K=V<B ?+3L+OD_P[V+FX
M, ?1JF\/ONQ!'8MX1#3,=(]]^.FZI@8'H]26)_U,B'U\J<#MO9-".Q"NNH H
M,J",(5QR:$'CEDD'6<&A!6>H)1R\Y2<00*$)4&!>-,F@5]F:B[:V9<,>W)00
MY\"U!U907QW*$%PVFLNA](Q:?8L'T.;" "IDC I49A!=_^ZIIBELD_SH9S^*
M\I!MDI1F^F3FE<S)[76<92,18O:Y^HFN;>KA6P$/>-W\A6"O5^#,^WQ'V9(=
M-[$(/1GY3#O()!PE#$!A4P-A";\YI&&?>_DJ'\V@@#8810QOT)%F9 P"?KJ,
M+W=;P\O6L+LDS%%A1E;M;6BL2?'P>+E7#(,"X/ &&)ZA8D,, X4%F;V=6>\-
M:P#S5[-IY/K!L,I)KB4;0HRNWF7&;6\([Q(U"#+''7#%ULK?/.'7T^;"[[EO
M<I\.J><<"GVE@"FL[1O:3%F[*NR N)3,G].39:-<TC.(0QL(]#4$*C"!*!2;
M0PO2MSY &;IM%/)@-%W6QTL+1-$$85C:= @"&S2W*XA#'GN!_::3GEC-3YMR
M9W#0!#3H(:2OK5QJ,+>H+G]Y:&[ J_U(^M6.N2&*@:TE0!60)_,.H05O(;2E
MAO#5 SIGU9\5Z\Z$O1?4/J\.<& SR*8$!2S<^D0MH;-Y'5Z3!;5GK[]&-+(;
MIB/!3I/&$K;>G&V'AS*P@;G@D@-H[+)%^,$NF6&X+DX5L#61J;6F.6J88=>[
M%W&E(+:=59?JOB*0FO[4!4C_J0C@@ <VB" &-5B0=!O6!CF<R 5,9\/4QU#U
MJV=]ZDC7M[F6WO2GVX &,YCZ$JT. ZPW?>M=;_O7V1CVHR?]8#-8$!EL1UF%
MI:\DK:P#XMI'9:J@L@QJ3:&L]IG<?TH:!2UHPP@\%'6+X8\D*= WPA[89I$O
M[^6UE#F?IJ.^S17;=Q(=@_#>I#UC)[J6;< .<\Z AIV=3P'IL24N87D'@?CY
MR6/.3!#JE80DM* (0A@"$9)P[^$/H?CNCJFDX9;BT"&\K 6LGP)>#;P[N '[
MRSO@C2<&%!@"W7\A,%<AQR!)GTF:S=91P!;,-2<S[&P.B3>L&$+O0)]R@?ZR
M='_6%#LH<%!CD&<#*!]=8"[J07OWEW^9L7\QUW\*L < :'_:\55_)H$'6!<*
MP ?F\C$3PVM$D4P*T <,>&2UEX%RL('\YX$'TU?; WHQ=T(*TWH@!T*STV;#
M4Q+ 4V4UU3%R('YL-DC4Y#L&A"<4<E!:]S!C$#$%%D5W C_WIG&PUS"+DG@A
M T.:EW''=H5_%TO,8SOLHVVQ4QU/&&47LS-#  ([,6@K<46[]R:"MSR!TP)+
M-8:W\R;W U!=AC'#5 <_%F1_E85UD$+W1CMD*#)"$XAO8F0MY&-_QSKRI#ZJ
M,X-4<SOV,35^4V\^$BR#-FN 2$Q!$V3I<3-JHS#NHS'S\WUO@$J@LV9S,DG/
M(T],I"=F8#T)EP>:]P0E<8IUD(IM,XLY=4"HU$-\LH,1-5A% T\T=C[D1%(8
M4V3=TQ-K]H5+M#M/0#=RL!DYA3S%<UU>40::IUU'('C%@S%.4 ;#@Q)Q!0(Q
M!C)]$C3VUT7\)'W% U(QEBCID@3Z,S$&,7#[]2;^2'  -0<?DS9S4QK6UV/O
MUC-P!3WR^'+VERY!T (GD@,P  )64%]*9)%U< :'DU,RT (V )(I1RS3401?
MY5:AA"Y%$ 12X 0OH"89T2B+(1<A(31G(BD*()-0$ 1#42CMF&XE(&=I< =U
M< =LP5V%0@= X(UC8 =M@"12$)0*T -:N95<V95>^95@&99B.99?>2F9,A0R
M<"!!$)+H2!PX< ,(9@-;@0,Z8!/P6 6H,A9M@)., 1+FPI.14AC2$HS5<EV-
M4@9SA6JODE,HT'9YAQV[I"W<LE=(P#$HP&:'-#'JTSF2J5""1R%U=S"&9EC*
M5F6(6536M$6."0.0.8TTMC$O\$D2!YN#HU4KH #((X*@:3(T5BB):7*+^4"O
MPG(W^(L@UWGSLSSP%T'GAR[:Q1D-HWHQ0UC;XYOFM02@\C<^,QU2@&=9E@90
M004A"65"8P6D9@,(=A,U !5.\ :[,P-KQ!="\YD*TP9>%$:IHS'?HF7@XB8\
MLD7+QD,Q\ (TT!E]U'!, '$QT'<IP (*\)SGQF8Z<C6KM$ WIE@9HS*L9F+F
MA$=S $FLE!F(DTS2@V: XSOI@J#:=450L 2]=#MST!27YJ$Z)Z(Q W,A8Q\0
M@CAHV&8DT30/NC"6))T2@S82=#LV9$B)8F050UUODDE-!TE7E$EK< (.JEWP
M8Y!%XYJ'MAXF]Z)SDC0JJJ!0,:865Z8NBA-K%(:ME$S<U4QR8A3547)DT&"$
M= :[,P1-( 4G4DQBJ#UF"@.I89!0H:?P,@1(X*>M!*AIF@-7NCU+=#-\TT?]
M64LCA(.9<31G4U1PTQ/VD2/Q]6=WX#OOV*)@FG/)E!F?20:/2A6ED3L*5SQ\
M(P8A24)B C\3TR2A\Q6'HV3$HS!!HS#GDRA%A3FT\:@?<U"YVF%^PZ8VNC/U
M=F9LT!Q\='DET0)V !7R^5#"UE[;\YER !6C>C>Q T'4F:IA](J+LEDPEAGH
M6H<F!C^[)3)!5%G&R7D3MCP.A7" <@6948KNBF+6T0+7]#'3$3E-8&]X2 78
ML:V;BCR%(G/VH4N%\CSUD1GN@WLT)IOU9A-& @,O<#AYD#QHX'LWHS"Q"A6O
M5C&4QHT6ZS>KJ">T2K(V@S%'L[ *4V\(J[#K^!SPJ*HY=;,Z=F+P\S1_ @*5
M6:EW4WKC4GJ31F,JZDL*,X@16 ;$RK)DEF)T0+ 48K#: W$E:9 *<#[+$W,]
ML4++M1SRBA M,*]\:+#P\Y2?)0=<ME?^6)VGN:]P !6O CM/FZE(\V.R-@>R
MLCZUV%9<VF$AM*H*8*KF>K1"8%RB909YL#RKZ'*W<DG36K%]*&F1F0;;HDXG
M $!,\ 1#L%3]X@14, 4[T%128 7)DKJK"TFC2B&94;JGRP2R.P42Y[JP*P6[
M6Z-XHC[UH0#F"FG715\YPK<Q5ZXD<6XCZCV^LUPZ&%*XB[K[LKK;-TC])*2;
M2E,#)ZGVP8WVNB+)\KN[JXW?9UPF!SQM\&>K*G!ZA:YFFSJP5&\WFV^\F1ER
MZR9:AGVFQJEQDSW&R3!W$ ;C$F?@LK3KDP?:2F/'!4NP*A! 03R;&J [DW<E
MH'DR&(A4^S(GE"/PM$ L)B5X.U?2]Q3#&)RUB$S/\U@@HP#@FQEA5XZ!!2YA
MP&1DN<,\W,,^O)5F&3)#83GM6<'G\R8V\98()@-UB14;>2IB81E\J9-_N3,]
M*9C34IC7,B:GJ9BTV)@N, ,QT)I^!+K< @)(=W )!UEHPP:7:)TK1K#IL7)*
MAG&]B9C5A5/YLZ7V-K0H\&I#EQDZUK9$A%/8@:X%E)*TFJ-F:+S/B[(\9!T+
MY##]9 :VJV(&A$#.]#QS?%U*!C3S&6O@AJ+(BUU&H41?H3!20"]/P 1XJ2].
MP+OR%D2@7!(><03Q8@3,]S2P/ 5=2&-M9A^EG$ I1\>&A<.*DDSM<SC-:2E"
M-Q 4,FIT$ 1V)W8@0'9.!W52QT9KYW5OQT9<QW9NIW7@W"2P@W5K '9WQR[8
M;'9HIW9Q-\YP)\YS5T5T0 =>E\YTM\[K$IJ=]6MPG,G)N\G%[,F&=6=Y%D9I
MX$#-/$6!7'1T( 35K'1$  5)( )YQR#<',_U3$7A[,WD7$5<UQSG# ?Z7$7^
MO"XB4-$7/0,RD!,;3<_?+-(</=-4=,_YK,[6G-+H\H8L$<8+VD5K+(]$45.Q
M4]#$"170R3 2:F1JTUP72KG;IT&=@0*C&P92:JUW"@)7_=#2' 0[X-4U)00G
MD'EV;*,D&CMNLE/E5+'#O,G?<GYCG*YXYC@L7<-<8*[HO"ZU:UB,A'20Q#!E
M$#I100,:;2Z@1-=:UDEW'79Y_;SC[&!71$49W3_PJ=B.DW5XK=<FS=?URM5A
M%]@*,]@U\;'](R*8W4F:[=B<W722K5+M(@.&G94_7-NV7=M!K"DU 3!@409M
M<,1N"9<U00--_!)/C)=[Y=..F1K-P1FCE09ZD'/:HU61YV'.I;6,.$CB5Q<W
M:$GV)S(JYP;1)5EPH(JD:GEO-3$F=KDTIE5?<MOP'=]BF=M#'!,C%MV_+3))
M+-PQ0)?];=QWB2H'H]QAO!+AK8HRQFPH(:>9TW@1Z1DP\R95P$]W8@73,3CF
M@04I$%T3_ :T,8XZ\I\2=$75,:$F]KB (M\JON+T#0('DB6'N,E)C -0 0/$
M;>,O00,!'L5D,28YV1A5?!^!*1&#22W6<IB_28RJZ0*&3<8;$[J4R3%&Y4Q0
M1@9Y\&*B26./-:UD@, &Y^'9/;Z?33NH:II)SL)@W.3S)#X% RA>)K@%$7"R
MH@97U.$5S(P6 [=9FT44(WBH&9P-'0;8\>9"':L*<P)(4 5'4 201'(FIQU!
M$WHV&%UB@!W0"3QE?C[W+#(2ZMPD8;GD%3L, ZN0A1([$RSKZSCAYB& HD;F
M]9\"%HW?.S]$N['B)G%8>[M*D!H+2M+EJK8T5G^6I"C]TX K&!0C='J'MD&@
MJ0!D@!U34+ASPH<6-G P.AU:>10JR.E:JZ\R$Q1F?3#'*.C ]&MN"P)K0%-W
MH##JWC!0=F$E:[4%D0<RP\<T*'K[ TS:M2+2#NDPA^_"BWT2[!P+E*7/*\?^
MF>Q,9L]9JTURL#M7<-Z-U>_W?D(6HWI?59S;$S*&Y* ,CSZ17H,BPS#$I5P@
M3"%*U,"C?&C8+0?2=81\5.WTM#N_QEW>Q<>$Z[05/W-5A*ZYIS_5L>D3F^HD
M<64%W_"=]O#Z;BZ&(P<CM/.CAZX"3\ P/XZ8L\G*KC&%[/(]CTR&]?.$RQF,
MW*3->_&KAQ(N@ZD%44B6A#;254O@(C**-EYW8VE(?T)BM^]($)(@_^\V.!U0
M;][DNB>'8_'-89"2%JS2U5C0G1E7OS9!4Q(N?0,VT!5%$3)S<,B&98Q#3TAE
M'SQGGSP/9!DO_YK[*7$^7TM +_:,=6J%+_?B15Y':VBN=D#2!;[I>GCVP4'1
M-%A_)LG;\Q57;Q19[[::QRX1;Q1HP/<@, 0AC^\_ $QOSC!JQ1ER([+-1=)L
M4 =^,_>R#\(+-+004C4'&(OL8O,;! +>?S?%R39#B^*S=@)!UGNL;TS0C&*O
MMT3>JBYLDYL4LC/KK[STB$(A;UK+<B "M63.'('20R$<& @("'MD;FF9XN/Q
MUL44^#OJ!@0LP/71  D)B %_%2?B/"[49XA2"!4P @E+:@$3%-"]/-@!XQML
M V!U&-+TD&J=T#@F]N$6 :&0$>[6Q:\)@*/M<,2IHE+V&%]TFR<0IW%\+.S4
MM]" RAHDJ@.8+#6_\__B1*HC'0)!;5R&!>) 8L;CR"G:0_B)B^/G S\;NK)?
MSF&T_)G4 $TJQ@'+ ]-D@6@_[I<9@&!(T3%Y#P14@3X3.N +<D$H;&,.^@U,
M@T7T!LW80>5FZ4$!G*'>0@?\L(/ +_"10741!+*%J1-Q?RN,[ 6+EZJ:&>?8
M7T4%T72J I/U("&["T)V V^0F+WA4ZH("IAEX"U'\* "XSE88>:9-1$JRCBU
M"E6+4,I-8WL2QP[&+/4W:G8?3$D(=T!DL)2Z0,M(0ND344_(:KD!L9/8AI:1
MB6X?IP[&/O;'<;S7-<PYDA 7SKI62$4B5NI()K=!#B:/[><WON'+:!-HX]TY
M(VVX0;X?II(N[^]V0#R)I_ZVX1CP=_5#NE$G=WA%' NS"T\HXVPLOJ?&-HS1
M$$()(X325+M)>"Y\C SL$^X(E@2RMO%8P@7:&"36X\U\1 +&?NA@G;F#* .8
M  _A\:O,#1%4>0A-8827X401S0444'([$/()C<8BJ[J<'+ /M@G.X;Y$<3-H
MC]5+(&QC *8W7Z@NEDGH@'L6#PAJGF-4Z4#AN0M6/\8^;$1$HP417&?H= !E
M>?01E1.FQ,[=.B5VP"@(FS/B,-0 0PI32@CK?3?[QT0V5\Z1@<.J)&"6F!,4
M@$GO(0FA T*0A"Y5<D+1]#N%]V>!+*9TJ/7DC$(K%*,-#]0@456O@(D+-'6P
MQ@[9.LMA7;!+8YPS<"2Q3*N)D2/"SGT@ P4$H# M8(*YN(,>TR6)R^&E/).1
M$%\5=0)^CLZ-P;DWL^G>D;IX?-'I[+60/^;&%HAK:6];A>;1&/$C1RY8GGLK
MADO3G1!@HD,06B9\+KM/Q$W%380=>L>HFR8JQUW9F<44ODY49F!) D%F4(4@
MH..J!@<I"+4$#FY'C8$=GH#,PXIY48!YJNP '+7)^C@R@Z5M1!E/EP%1@ <!
M)E"F,Q0ZR )+,$WFVQV5,#7F#Z:U/<X=PP".[&?* 9-VISUPX/) ?^+!#E8]
MK:(<,\,GV376[5L DT<SP!I&PA$(>"!W9(H-9!324@FX-E%A(UF;E2A8),1>
M&0) 9CB5A=>T]9SC:*0#@82[/ ^1T^PLHEN9-1\,]UF'M]$BV48T.66GB5:=
M@3]!VU:<E[QM+<YR&($RL']BG%&8<36.B<V '. :CEM>DF(^KB^%!-DAY-0"
M%B-,1XZ+G;DOUG9HP%S[7%#N8%0F0O(Q\D"5NW)VBPZHC(*0.SC/F] 3ULF+
MY11 R2U*I)D387&1296$-#?&C-=P4C(:S^#E*Q.SG A+0S,7VL7(,!Y_8NHV
M$ OA=,$&(HF^=*%=9%9I\%M]Q#IUKA^U5Z! K)0#PT93I(M?$W*2TXD[,J!2
M>/&J+O)H<*0Q4AU*!&L8EYZHS&BCP6!%+#% HH 8X&Q.BL*P'O4#*H C*PAF
MIAQ"68O61.(4CU2T1BJ&GC@:+^!I6$IK D\"SM38?FW X%BB!=(=N-R)F7#K
M 4[ #FK%)=W+2FF4S<7_-9J-46HLUA'L(Y6&N7R3;F=B(A@9$"XH(%?E'#@2
M]TX45>B3K*F--(=%<2=0C8%A<B'S7+! F%$R'QW(?$G.S).(FZ' 1MK#@7 P
M[:+MG!V<N2[:S@TX;$Q/"=#,*M(>N@+/[)DNH :LA*-I+MJ.1MHKO&,YFARK
M$638S!7A( 1']+V,:$B+M,<[\796RT1M#ZV2+NC(?K%[RT[0S(G-82$&B^]A
M?]@!8D6:BJ'V,-\.>C?(LI:T@'3AA\3A9SDC)/%9KHU)9K&J@R1Y$_WR;(*1
MXV@B;UWW"ASNI.4]+)(0L1@9A&@L%&*T/$9W-4B@R:MR/!7C?)"Y;)@N$B22
M3!0\H6ZY%P.WF'Z4\")"/XI".<KM8>=\&S,".OMN)-# +32M!N#. (OYX_-D
M+FGB.!Q*(YQ!S\\&*9)<-_-HI4U,)M0IZ^6B5W0\2Z7.D3%?800)KY<3$.U#
MNPN$G:9'<#UUD4RP9UVX&YPE=]8+-V1R=L>!8!BJDI^PRG^C%E^?Q[1EZ_,-
M[0X=QS@UH=-CBN9"#&XR<M,^]\HZFBN[4G_@SG]H(>Y'0LA\0R&JG;+A =SZ
M2,G+.6SCG=!*\O%&J!4((!_6AK[(.NT!/ @+K<P"6"2*5"P4&D(;D/8@H35E
M_YD+)  OJ,!0: 'DX]6T !1:>N:'PO!@; / S*ADYT))2DEP1%-'8"4]0B(9
MK\NJ62 QH#F\@"A:$L1)-0E 0H@ EL@DBF@0PKI:>^""N5 !>D$%@M*B<P%C
ME'R0MQ]*3-@&O/EDF\:_]#7(M^R(Z)%YH7ZGW_@^]C7"K)FZ0 $C 5S\OMI1
MZL+)%=$J(U$[@,L<L4; RW1X,S]'B>X,3<-#MML]TXRZCDY"HW*",7R)YG%^
M$!&6)-!\ARKYD%9[A5,.<4"FDJ!5L(50:8[<LT>,KP6R=+26K:(@ZR**)*, 
M@V$*GPB@E7>"BX"4.\%0  RJH9J#,\"(T!<*46)/,ZM?10H(S97I:35(Y1NP
M#E6&@O(\46(4A.G.('X>Q9A.3?*33%OH'2T)8="9*A)H2IW:'36MGM>4;YB1
M_,8GH.:8> )C%)2U%6ME<-I=^L@IQP02208LUUFV$2V+I3D"=YJ+*W!7ED<J
MVQ$]PN!@1VD*U>@ \(AD_^A53"R, 2ZXAM);%X?Q<1R06>+YYL IHW4-,2@(
MM#GR')SG?2 *M4KM*2*< 5?FR>*1GTOK(#F.MW;*]H@,W50'Q%C!DHQ)8V8J
M(TN<& N,!#*-J8I\3V \DSUPWR&*A+0Y#MA=<*CG,*+"N?Q8.]G5P4 4@T0'
M.A;(DA,7QB@21"]PA!45Y) 9^N1$,"\X<63FU%_BB(2,': O+207 9DKPD6J
M41EX 8I($T&%SY H.-&'42,V#!WEL"[Y)1MK#VMQ+D()G)$S>1-H'$N8 76)
MB1F)':>7IAB0HY-7C,AEL3QY0/\<GV1RB8U2JI.#(01JE13Z<]W!D!(DR2&;
M/@(10%KIA;K!$<.9!_A':PT=4HC(!(VV@O&:9>TJ"?02!' 4X D;+8;,JQBE
MPU,II_^D !#/(=*-NC2$+-<!20KOE6DR) $&!0RVH? U34QF. &^36+D@48G
MXC26T)"!X,M;F)A%1D]:P#P]8D4#G5X'S>-8^RL/@ZS.!E%(#-\&W-#D;W@)
M+L%R0+'.&B>I&&@=<C&@R&DQ)&=:&5.?O&RJ=:^,F&0":T1&\>M,6D\R=) K
M C^N1AN03:^FFJB!7K)$XE1#(W!H9YX\N3,V)3-'W  S]R]11+Z>\*M47;!;
ML02T9E7(K=?05$#4Y%^GZ<QL3LM38%K MTD?].FZ.;SF@C5[1L/H'XCCY-A-
M.@D_Y$D?P8+8E,Z) 0@I:Y 'XE KA35@;=F3TC^8&G:;6/#N!CZ6=4=Z, >'
M<EF?R0R<D7<(D0!*PT)1YV+U^!MHI5^6#.U,>K/1VDR-TF#QLAXAI XJR/8P
MQ3R[9SN)V9)4Q_-;=!%&JGF,[*PI"2;SPHI#IJ8+92>5M:4U1VI40>V16+S'
M\$!F9ZM_\,@>NXJ HWPJ"=Q2?N'(DS(4S%V13 _#Z13>@?X!]=0?#!DO? Q^
ME J^@&!P %\PC8!L@50,<W5B!F. .1S] T3VPWK(#5=FW#M&7Q;*@(RR%2II
MS*MH00GA34C*G',Q^H?K03:W$*!I4S[421\9M0DP#(-4N8QI%?1@"82 G'\)
M<S#:>5*I8)VQF;+!:A+>+:4H:+P7P\!]+.96S PBLT ^TPS4B;C6V8S ]\AF
MSX7HC",Y)8=9O#1DXAQAPBAJ6P,=>CZ_M4'4H^HC-ABC"1+;Y#GRO"LJD9 D
MX5S:6R@KRN35K[50\@3@XIKNDOZR7K&M>IB&S&8,,VM=T^SV((@+SUP<7.? 
M7,*+#R5\MH,,P) 'QO*PJ<4DACFG^XR.08("YA:X""53U^(=."%C0/Z,ZI@H
MB.LH.I,_I$]_3,)94LA(D(Z+<V%L^-S)RGU?E-IV4'ZB4]$5F.M&ZJ$WKCRY
MNW?-A:.5G"GV.(W*T/%.F,V%M%_V@5_94Z0U/Z:<4LN%$^JI?<\%\DZV&OR 
M G>#X\$),X)0W"4(T"HOX$N<BU4T$0[$5\!3F]<+Y;]D\Y" )1M%JZ1JREW<
M6E83-*Z]?5>#Y]KT#VN# DI#F,J&7*T%Q('2,CRUK@=-H%M5&G;89Y=8<9@.
M\Z_@-RQ!UHWT*9*8HRJ^;3*S\KB]U& _*V"RDZ(53QHF/5EAEQP-0&T9-GR<
MVPY+;RLDB#UW_=/$HE@C]&-9+&]],3!6QZE6$$8ESQ;W8"(Z%NW9S@CB8S.#
M(ZENBT+(^EP16V2/K)E3+Z_&+C)92=,";BO/Q:!W3QF27JW59GT0*IH3UH: 
M/C"AP3"TBT (26C [:K'-; \M$MY!:XZR-V:6Z"@%__3V!5SQ(K2H$9ZPL<<
M1O#HD3XK"'PW\]@_LFMD41].)'%Y2^$U446EYS$Q0>/N*M#^L4#,!6R1LDMT
M6)4WJ#!6Z>Q#A755X*T& 9+"07K.^%P76#&EJI+-D78;)"8$?C/J/>8>5V.$
MWL!/20J.!1.E03,2@1@AQ4+#>(\,GPO=VF+-#R06&?UI#;^PJ_N&1X@(, )%
MH @0 1$@<:#'Z_ =/]7Q0A24<%W91-C$3YL%%!)"<-0<]HMY(U9.ZJ?TX>RH
M5=&5):-Z1\_QL6*$8FTL65"@$!5P79!88%:'/2,B1L6*6+V=S446+C:ER.5T
MDB2Q',MDI(M3,"^6;@3/N3 [P!$?>Z#_.!>^5L0VC D#?4OP")ZV5R1!QHYW
MTK96ZAZ;#F'".>Q-OOL&6H !TC+Q> *U@'#12WS/[Z289^ 6OCE6@T$72"O)
MD%ZK)$2'XM$<B.TD(:6.=_;RPUD;(+$B5<@<WG/>SI,MO-3TQ_\KMP#T7!B[
MWYF-.2<AJ1UTP"ATW(QL+HYKQN#(? .'$;559&TVT@:.R-?D7)6$]!J3#S&L
MN\;FD26T@)EL,30RL2(="0'FWN0G;,'<K#81<S>P>.QD&?-3J()1*<(]PKZ*
M9.CT3CX.4SO*\[ $'2 CDX&M2.*RPKQ4,>J/3^:PE+!6O%CZD@V\P51<ZT;?
M([M8EO(]6!N& 6RQAT++(!]Y"9^426CN7G".N%CON"1(P!'W* T7(BTC0>B%
MJ,5ES!2MTVTEH%65RF"ZE>&8V;*/^,&DQY,Q+:7&BMS "2"'Z*[=U2Z7!9UD
MA0.I3_<IH/(1[VJ=M,JL\3&W=2>N#W.,+LX%D 0*0H-Y7M14=+$6BK4:"A&/
M6$W![4M"FB[]),-\J"042O\Y0J36YYT]*TATWC]S&.(V6?^;1;ZQ#[\)^^2W
M@&-EL,Y(DA?M%4\+T))L]5VRV'<I[QCS ;0HKKLCJS^X?R#E[5%I^@@(Q806
M@BK,HEG*R53?"&&.Z"$.]@ANU#]640E6R-0&6E+(1#:M,@B6*1K6RE)&FT_V
M!IO(\D7(&:-J-)HOBRVA\*:"5Z&CE^!CRW#(!LE G@[A@CA;"D\; +<F.]R8
MURZJF;S^.3@*AQ(PP'$JQ!B!/KNI_"".D2^Y)6S\BB#0!(I 'Q!7GTU*.P$J
M[504']\]3L RQ/(6//);= ?;XV!GU:[ 0!+&$TR8O/H6K&:1O1^<B ,SQEAM
+-#,,4( 7Q<IDR 46
 
end
@eof

chmod 644 history.Z

echo x - make.Z '[non-ascii]'
$unpacker <<'@eof'
begin 644 make.Z
M'YV01N2\:0."3AT[:<J$"'(ER94J5V+$<"$D"14G1:B$P%BE21 G3D!,J>,&
MA)(P)67( *%2APP8()H4T0(B1@X<.11(*3.F3!H[9<CH "$F#P@T< XF#+-#
M)$D6+%>>+(DSJDL8.F"L;%-&CX*  X<:1*B0H4.($BE:Q*B1HT>0.LL8E..F
M!90P=- ,Y3$VX<*&#R-.K'@QX\8B'3\Z\1&WY\^@0\T()-BW#(@[:?*"J%-G
M#)RF(]U 56D2)8BJ+6/@T$'#1F.?0(42-5K9!6?/H$F63KDR]>K6-6_FW.DX
M=N3)(-JD<4/'14^Z(% H9YYB-HCG;NR$P6.[,YSH$V6\J,*&CIPT>&2X@-%"
M2 H%"=*0 1$D"(P:-V#,R"TZZN[3.; 4@PXUS.#2#""L $,,,,#PVF.R%97<
M<LUA%QUVVN%1'0HTN!"#>#-X2,-[\<U7'X,UT! #?Z-)91IJ Q9X58(+-JA 
M$V7,,4<89Y310A*R\8#3@BJ]5* +)]ZG(A#355@&78P1!QMDUF&XG5,E3>6?
M##$:J!5\D@T$@EN* 6%68&D1QA8(9KPA1W)AI,'&DT!8B0<("(4!@AQSC#&'
M"PI@T5YF;LC5PA1EN$'&DT.1"9*9@*$UV%H9@:  $7B5,51H+?X'8U8Y9&4#
M" ]1H0 5;PR%E%)EA!%"&V&@H< 0 W'%W%!#2/'$%%.L":N<>*:AIT=),%&$
M%$ ,<:P35@2!A0(CB:$&3W0,109",N#!':QKE*&  BV$*^ZXY)9K[KGHIJNN
MN3=.0<2N.ISZQG4#P2&G9=>FD2UW8VRFZ),Q33$$"#NQ 4(-ZX'@YL$>Q@O"
MPP\KP(02+5CQY!QIO.&&PQ!;"O$8!K<0!!,@M'#%2BT<,4?)_;;PQ)TM$#$Q
M""7$ $*^^SH'P@X[*  Q&\NM<3.VVK)@- @OS$%'&&.LH4,.#3H(<1EXE $'
MTT+CK*T+5..++1MJ<%VUSQTKD(003<R PX<57YSQQF1#'#?()8]<\LDEJ\QR
MR2^73,39::^]4LU#Z[MUOSS'#;0;61.-A]%0);UTTT]''7?75S==>,Y=;YZ&
M&&V([6W'EJYK^NFHIRZN E4XD006\8X 9[=FW,OFPGEYG48+=+S1 @IJ?P@"
M'WR  '9UM9?W)* C7%J$$4E@-$4/,9.$WJQ&,!'$$=.[''?$8;#!AK78?DX0
MSF!_;RG.YI-O.+]L+D=&\F6X@ :];<"JZ)^R)C!&OR38PQ"RM[TI] $$ 23"
M\Z)7! /Z#7#!0]F\V >ZS1U.?0I GQK<E[-^U4Y1]+,?_O1'!O[!YW\(%" !
7N7? !"Y0>@>,V<Q:,,&OJ<&"_,+@MP#<
 
end
@eof

chmod 644 make.Z

echo x - testpage.tex.Z '[non-ascii]'
$unpacker <<'@eof'
begin 644 testpage.tex.Z
M'YV0)4#0*3.'#IPP9\JX&(@'1 L08^24"3.0# @9-4!,*0-G8!LQ9>2 B)$#
M1PT% 8>\@9-'3IHS:.B 0#$DQ<B2&<7D <&$()LT97B&:0/GC1PZ*%&"H$)0
MYALS(-"\N0,BS)@Q=>10+,-F)QR7;@:*E/CU#9DZ8PB"().F31DW<]*\@0MB
M#IPR8]*8 4I&J4ZA3+& >%/'8&$7"D H5JR "YDW6-V&+9B'39D]88ZF&6.Y
M3^.#"2E;WE.&*)T\GA<SYF*63%PRI3.?2>-&,8R.C<O8>?LZMIS9M6\CY=)&
M-NV#<NZD(4,'S4C:C8O_/IYY#D<0PA.K;DQGI73@V'%S03.1#/F7,<,/)Q_&
M]?7L7+K#F;,F#1SUVA<W-O/F3?,RZ,D$'W_^T6<??O&5@<=_ 8*0 W0)+J@<
M<\[9X$(-$%I'AV5NG-'<'ES4X48:&[[E(1I][!$#;9YQX489=XQ!6%@A[4%@
MBR !M\=CD;U%1XO(T09;6 CF2-L><&Q&1U9E]($"#"S D$)C<T1D'QUQZ5'&
M9X4]R4(+.:0 HAE:N27&&WB@8&$-+(2Y1Q\MME$'&W38UV4++L3P)0TNV) "
M"GCJ*>4>.:3(Q4\O>AF#F"[( &=T<]8)QYTNP,!F"WS64,.?@48I9@PP&(IH
M&8HR&L.C7&@HHXABV=A?BJ<2%ZF== ":YYXNS+"IK8**62B(Q:U1QIEXY*?:
ML<@FJZR7@W*161AB;.;J&W Z2P9SD,W8ZHTJHBHGG;2JV2>N?J)PZZ"_'DH;
MJ5 NND>CWLXZ::UK7LIGN>=^&BJ(HY;Z[JDMJJIMC=S&^JVD75IH ZZZ_IDO
MH88&.RR:QBIK\<6*,2NFLUI%.\:TU;:'[:HTR@%RMW'*V^4,>;*9YY]0O@PQ
MO^NBT.N[CJ8,[KPHL"P#"Y7N&K.[H(I:\\UYHBHPJP2_VJVL.Z_L @U +^JE
MS.E*3&S%&'=]K,8@/NLQR'U8._+ )A<<;]2ULAS#I3F\[&6@OAJ=*-(Y0\IV
MSXU^&;>E,'\I<]$TW^WIOTJ700?)VSIML,IM3^VWW%#2/3-Q80B[M=><(PLV
MQ]!*>V/9(G?'>-/4HIR;&V0@J223+=JQ%QML1$?LF^/-7CL71KJQ1QNTV8=0
MDWO0P*("5) ' IE#!3670&BD,0<(H 4UAU1S6@02""38P 7S'Y^ZAZ,GG !"
M?&VIE4/Y)+B@V!7DN:' 5[15-%AM).#PO5;AITB^^>ASR_1B$ /V42\,=Y$#
M"Z 7%.:YI2[88X/VG/<B!=!F#,XATQO: (*)8+"#9$C(8*#RGP,FT 5<X,(6
M0-61+B!/>7*84TBF1Q$&+H\P(BE#"-6B'-J!0$B;V4I4I@(".7WP*3:LW@_G
MH( Z6 =:EG'?4I3'!MD$I4YC6 ,-)<*]/!D0@9FA V*X\);6 6]$U6L1&G1'
;G-NE9CM<D%T::&<[-+UI=:WC41TD\Z.**>"/
 
end
@eof

chmod 644 testpage.tex.Z

rm -f /tmp/unpack$$
exit 0
-- 
Michael Haberler		mah@hpuviea.uucp 
Hewlett-Packard Austria GmbH, 	...mcvax!tuvie!hpuviea!mah
Lieblgasse 1 			...hplabs!hpfcla!hpbbn!hpuviea!mah
A-1220 Vienna, Austria		Tel: (0043) (222) 2500 x412 (9-18 CET) 	

joe@Pacer.UUCP (Joe Kelsey) (02/24/89)

I have taken the recently posted DVI-LaserJet converter and modified
it to support .gf fonts and to function as a spooler.  The .gf
modifications were based on the mitdevices/dvi2ps code in the standard
TeX distribution.  You need to have the files findfile.[ch] and gf.c
from that directory in order to compile with .gf support.  If you do
not have a standard TeX distribution, then I'm sure I or someone else
can post the appropriate files.

I also have modified the program to function in a spooling environment
better.  If you #define FILTER, then it sends output to stdout instead
of to a .lj file.  It also disables the automatic .dvi extension
requirement since spool files rarely have that!  I also modified all
diagnostic output to go to stderr to prevent corruption of the spooled
output.  I have modified the standard HP-supplied .PCL3 spooler model
to support a TeX mode spooling.  If anyone is interested in that, let
me know and I'll supply diffs.  I have only tested this stuff on a
LaserJet II, so I have no idea whether or not it works on the IBM
3812.  I tried to duplicate the .gf changes for the LaserJet on the
3812, but someone else will have to test it.  It is also set up now so
that you have to #define USEPXL if you want the old code.  I also did
not modify the findfile code taken from the dvi2ps converter to
support the .pk files or the alternate versions of .pxl files that the
old code supported, although that would not be hard to do.

Following this are my changes to dvi2xx.c.  If you cannot handle a
context diff, but would rather have the actual source, drop me a line
and let me know.

/Joe

*** dvi2xx.c.orig	Mon Feb 20 15:33:29 1989
--- dvi2xx.c	Thu Feb 23 10:25:43 1989
***************
*** 55,60
   *                       when -d cmdline option specified
   *      #define IBM3812  produce output for the IBM3812 pageprinter
   *      #define LJ       produce output for the HP Laserjet+
   */
  /**********************************************************************
   ************************  Global Definitions  ************************

--- 55,62 -----
   *                       when -d cmdline option specified
   *      #define IBM3812  produce output for the IBM3812 pageprinter
   *      #define LJ       produce output for the HP Laserjet+
+  *	#define FILTER	 produce output on stdout for use as a printer
+  *			 spooler filter.
   */
  /**********************************************************************
   ************************  Global Definitions  ************************
***************
*** 96,103
  #define  TRUE      (bool) 1
  #define  FALSE     (bool) 0
  #define  UNKNOWN         -1
! #define  FIRSTPXLCHAR     0
! #define  LASTPXLCHAR    127          /* was 255 * change NPXLCHARS too !!  */
  /*#define  FONTAREA       "fonts"      /* "/usr/lib/tex/fonts"               */
  #ifdef   hpux
  #define  MAXOPEN        (NOFILE - 8)

--- 98,109 -----
  #define  TRUE      (bool) 1
  #define  FALSE     (bool) 0
  #define  UNKNOWN         -1
! #define  FIRSTFNTCHAR     0
! #ifdef USEPXL
! #define  LASTFNTCHAR    127          /* was 255 * change NFNTCHARS too !!  */
! #else
! #define  LASTFNTCHAR	255
! #endif
  /*#define  FONTAREA       "fonts"      /* "/usr/lib/tex/fonts"               */
  #ifdef   hpux
  #define  MAXOPEN        (NOFILE - 8)
***************
*** 104,110
  #else
  #define  MAXOPEN         12          /* limit on number of open PXL files  */
  #endif
! #define  NPXLCHARS      128          /* was 256  change LASTPXLCHAR too !! */
  #define  STACK_SIZE      100          /* DVI-stack size                     */
  #define  STRSIZE        255          /* stringsize for file specification  */
  #define  NONEXISTANT     -1          /* offset for PXL files not found     */

--- 110,120 -----
  #else
  #define  MAXOPEN         12          /* limit on number of open PXL files  */
  #endif
! #ifdef USEPXL
! #define  NFNTCHARS      128          /* was 256  change LASTFNTCHAR too !! */
! #else
! #define	 NFNTCHARS	256
! #endif
  #define  STACK_SIZE      100          /* DVI-stack size                     */
  #define  STRSIZE        255          /* stringsize for file specification  */
  #define  NONEXISTANT     -1          /* offset for PXL files not found     */
***************
*** 174,184
  #define  RESOLUTION        300
  #define  hconvRESOLUTION   300
  #define  vconvRESOLUTION   300
! #define  CHAR_WIDTH_LARGE  100         /* limit for loading into printer font */
! #define  CHAR_HEIGTH_LARGE 127             /* y_offset reaches the same size! */
! #define  EMITFILE_EXTENSION    ".lj"        /* default extension of emit file */
! #define  MAX_FONTS_PER_PAGE 16            /* maximum number of fonts per page */
! #define  HANDLE_MAX_FONTS  255        /* max nr of fonts handled (rasterfont) */
  #define  EMITC(c)      putc(c,outfp)             /* output a single character */
  #define  EMITL(l,d)    EMITB(l,d)                     /* EMIT-logical = EMITB */
  #define  XDEFAULTOFF    RESOLUTION-54 /* y default offset on page 1 inch (LJ2)*/

--- 184,195 -----
  #define  RESOLUTION        300
  #define  hconvRESOLUTION   300
  #define  vconvRESOLUTION   300
! #define  CHAR_WIDTH_LARGE  100	/* limit for loading into printer font */
! #define  CHAR_HEIGTH_LARGE 127	/* y_offset reaches the same size! */
! #define  EMITFILE_EXTENSION    ".lj" /* default extension of emit file */
! #define  MAX_FONTS_PER_PAGE 16	/* maximum number of fonts per page */
! #define  HANDLE_MAX_FONTS  255	/* max nr of fonts handled (rasterfont) */
! #define	 MAXFONTSTORAGE	(395*1024) /* standard user memory */
  #define  EMITC(c)      putc(c,outfp)             /* output a single character */
  #define  EMITL(l,d)    EMITB(l,d)                     /* EMIT-logical = EMITB */
  #define  XDEFAULTOFF    RESOLUTION-54 /* y default offset on page 1 inch (LJ2)*/
***************
*** 217,222
  extern 	char *sys_errlist[];
  extern	int	errno;
       
  #include "findfile.h"
       
  /**********************************************************************/

--- 228,249 -----
  extern 	char *sys_errlist[];
  extern	int	errno;
       
+ #ifndef USEPXL
+ /* interface to gf.c */
+ extern FILE *gfin;
+ extern int checksum;
+ extern long tfm_wd[], char_pointer[];
+ extern char char_exists[];
+ extern int num_cols, num_rows, num_bytes, x_offset, y_offset;
+ extern unsigned char bits[];
+ extern int gettochar();
+ extern void readbits();
+ extern void readpost();
+ extern void seekpost();
+ extern int seekchar();
+ #endif
+ 
+ #ifndef unix
  #include "findfile.h"
  #endif
  
***************
*** 218,224
  extern	int	errno;
       
  #include "findfile.h"
!      
  /**********************************************************************/
  /*************************  Global Procedures  ************************/
  /**********************************************************************/

--- 245,252 -----
  
  #ifndef unix
  #include "findfile.h"
! #endif
! 
  /**********************************************************************/
  /*************************  Global Procedures  ************************/
  /**********************************************************************/
***************
*** 277,282
  /**********************************************************************/
       
  struct char_entry {                         /* character entry */
  	unsigned short  width, height;      /* width and height in pixels */
  	short   xOffset, yOffset, yyOffset; /* x offset and y offset in pixels*/
  	struct {

--- 305,311 -----
  /**********************************************************************/
       
  struct char_entry {                         /* character entry */
+ #ifdef USEPXL
  	unsigned short  width, height;      /* width and height in pixels */
  	short   xOffset, yOffset, yyOffset; /* x offset and y offset in pixels*/
  #endif
***************
*** 279,284
  struct char_entry {                         /* character entry */
  	unsigned short  width, height;      /* width and height in pixels */
  	short   xOffset, yOffset, yyOffset; /* x offset and y offset in pixels*/
  	struct {
  		bool isloaded;
  		union {

--- 308,314 -----
  #ifdef USEPXL
  	unsigned short  width, height;      /* width and height in pixels */
  	short   xOffset, yOffset, yyOffset; /* x offset and y offset in pixels*/
+ #endif
  	struct {
  		bool isloaded;
  		union {
***************
*** 294,302
  struct font_entry {        /* font entry */
  	long    k, c, s, d;
  	int     a, l;
! 	/*   char n[STRSIZE]; */  /* FNT_DEF command parameters               */
! 	/*   long font_space; */  /* computed from FNT_DEF s parameter        */
! 	long    font_mag;         /* computed from FNT_DEF s and d parameters */
  	/*char psname[STRSIZE];*/ /* PostScript name of the font              */
  	char    name[STRSIZE];    /* full name of PXL file                    */
  	FILE * font_file_id;      /* file identifier (NO_FILE if none)        */

--- 324,332 -----
  struct font_entry {        /* font entry */
  	long    k, c, s, d;
  	int     a, l;
! 	char n[STRSIZE];	/* FNT_DEF command parameters               */
! 	long font_space;	/* computed from FNT_DEF s parameter        */
! 	long    font_mag;	/* computed from FNT_DEF s and d parameters */
  	/*char psname[STRSIZE];*/ /* PostScript name of the font              */
  	char    name[STRSIZE];    /* full name of PXL file                    */
  	FILE * font_file_id;      /* file identifier (NO_FILE if none)        */
***************
*** 300,305
  	/*char psname[STRSIZE];*/ /* PostScript name of the font              */
  	char    name[STRSIZE];    /* full name of PXL file                    */
  	FILE * font_file_id;      /* file identifier (NO_FILE if none)        */
  	long    magnification;    /* magnification read from PXL file         */
  	long    designsize;       /* design size read from PXL file           */
  	struct char_entry ch[NPXLCHARS];   /* character information           */

--- 330,336 -----
  	/*char psname[STRSIZE];*/ /* PostScript name of the font              */
  	char    name[STRSIZE];    /* full name of PXL file                    */
  	FILE * font_file_id;      /* file identifier (NO_FILE if none)        */
+ #ifdef USEPXL
  	long    magnification;    /* magnification read from PXL file         */
  	long    designsize;       /* design size read from PXL file           */
  #endif
***************
*** 302,308
  	FILE * font_file_id;      /* file identifier (NO_FILE if none)        */
  	long    magnification;    /* magnification read from PXL file         */
  	long    designsize;       /* design size read from PXL file           */
! 	struct char_entry ch[NPXLCHARS];   /* character information           */
  	struct font_entry *next;
  	int     ncdl;              /* #of different chars actually downloaded */
  	int     plusid;            /* Font id in Printer                      */

--- 333,340 -----
  #ifdef USEPXL
  	long    magnification;    /* magnification read from PXL file         */
  	long    designsize;       /* design size read from PXL file           */
! #endif
! 	struct char_entry ch[NFNTCHARS];   /* character information           */
  	struct font_entry *next;
  	int     ncdl;              /* #of different chars actually downloaded */
  	int     plusid;            /* Font id in Printer                      */
***************
*** 377,390
  bool   EvenPage = FALSE; /* Document starts with an even Page */
  long   LastPtobePrinted = 0;
       
- /* deactivated features */
- /**********************/
- /*int    nif = 0;     */        /* number of files to include              */
- /*char  *Ifile[100];  */        /* files to include                        */
- /*int    nps = 0;     */        /* number of PostScript commands to send   */
- /*char  *PScmd[100];  */        /* PostScript commands to send             */
- /**********************/
-      
  long    allocated_storage = 0; /* size of mallocated storage (statistics) */
  long    power[32] ;
  long    gpower[33] ;

--- 409,414 -----
  bool   EvenPage = FALSE; /* Document starts with an even Page */
  long   LastPtobePrinted = 0;
       
  long    allocated_storage = 0; /* size of mallocated storage (statistics) */
  long    power[32] ;
  long    gpower[33] ;
***************
*** 400,405
  	/* raster if fonts/page>MAX_FONTS_PER_PAGE*/
  #endif
       
  #ifdef IBM3812
  char    PMPformat[20];
  long    used_fontstorage = 0;

--- 424,431 -----
  	/* raster if fonts/page>MAX_FONTS_PER_PAGE*/
  #endif
       
+ long    used_fontstorage = 0;
+ 
  #ifdef IBM3812
  char    PMPformat[20];
  char    CharString[CHARSTRINGMAX];
***************
*** 402,408
       
  #ifdef IBM3812
  char    PMPformat[20];
- long    used_fontstorage = 0;
  char    CharString[CHARSTRINGMAX];
  unsigned int CharStringPos = 0;
  #define CharStringOut \

--- 428,433 -----
  
  #ifdef IBM3812
  char    PMPformat[20];
  char    CharString[CHARSTRINGMAX];
  unsigned int CharStringPos = 0;
  #define CharStringOut \
***************
*** 473,478
  		"%s: DVI format = %d, can only process DVI format %d files\n\n",
  			    G_progname, i, DVIFORMAT);
  	}
  	if ((outfp = fopen(EmitFileName, WRITE_BINARY)) == NULL) {
  		Fatal("opening output file: fopen(%s) : %s",EmitFileName,sys_errlist[errno]);
  	}

--- 498,506 -----
  		"%s: DVI format = %d, can only process DVI format %d files\n\n",
  			    G_progname, i, DVIFORMAT);
  	}
+ #ifdef FILTER
+ 	outfp = stdout;
+ #else
  	if ((outfp = fopen(EmitFileName, WRITE_BINARY)) == NULL) {
  		Fatal("opening output file: fopen(%s) : %s",EmitFileName,sys_errlist[errno]);
  	}
***************
*** 476,481
  	if ((outfp = fopen(EmitFileName, WRITE_BINARY)) == NULL) {
  		Fatal("opening output file: fopen(%s) : %s",EmitFileName,sys_errlist[errno]);
  	}
  
  #ifndef unix
  	AssureBinary(outfp);

--- 504,510 -----
  	if ((outfp = fopen(EmitFileName, WRITE_BINARY)) == NULL) {
  		Fatal("opening output file: fopen(%s) : %s",EmitFileName,sys_errlist[errno]);
  	}
+ #endif
  
  #ifndef unix
  	AssureBinary(outfp);
***************
*** 490,500
  	if ( G_header )
  		CopyFile( HeaderFileName );
       
- 	/*****************************/
- 	/*for( i0=0; i0<nif; i0++ )  */    /* copy all included files */
- 	/*    CopyFile( Ifile[i0] ); */
- 	/*****************************/
-      
  #ifdef IBM3812
  	PMPout(1, "\307");              /* unload all fonts */
  	PMPout(1, "\310");              /* unload all macros */

--- 519,524 -----
  	if ( G_header )
  		CopyFile( HeaderFileName );
       
  #ifdef IBM3812
  	PMPout(1, "\307");              /* unload all fonts */
  	PMPout(1, "\310");              /* unload all macros */
***************
*** 500,505
  	PMPout(1, "\310");              /* unload all macros */
  #endif
  #ifdef LJ
  	if (ResetPrinter)
  	    EMIT(outfp, "\033E");
       

--- 524,530 -----
  	PMPout(1, "\310");              /* unload all macros */
  #endif
  #ifdef LJ
+ #ifndef FILTER
  	if (ResetPrinter)
  	    EMIT(outfp, "\033E");
       
***************
*** 508,513
  	if (ncopies>1)
  	    EMIT(outfp, "\033&l%hdX",ncopies);
  #endif
  	if (DoublePage) {
  	     StartPrintPages = PrintPages;
  #ifdef IBM3812

--- 533,539 -----
  	if (ncopies>1)
  	    EMIT(outfp, "\033&l%hdX",ncopies);
  #endif
+ #endif
  	if (DoublePage) {
  	     StartPrintPages = PrintPages;
  #ifdef IBM3812
***************
*** 518,524
  	if (Reverse) {
  #ifdef DEBUG
  		if (Debug)
! 			printf("reverse\n");
  #endif
  		ReadPostAmble(TRUE);
  		fseek(dvifp, ppagep, 0);

--- 544,550 -----
  	if (Reverse) {
  #ifdef DEBUG
  		if (Debug)
! 			fprintf(stderr, "reverse\n");
  #endif
  		ReadPostAmble(TRUE);
  		fseek(dvifp, ppagep, 0);
***************
*** 534,540
  		command = (short) NoSignExtend(dvifp, 1)   ;
  #ifdef DEBUG
  		if (Debug)
! 			printf("CMD:\t%d\n", command);
  #endif
  		/*      switch (command=NoSignExtend(dvifp, 1))  {*/
  		switch (command)  {

--- 560,566 -----
  		command = (short) NoSignExtend(dvifp, 1)   ;
  #ifdef DEBUG
  		if (Debug)
! 			fprintf(stderr,"CMD:\t%d\n", command);
  #endif
  		/*      switch (command=NoSignExtend(dvifp, 1))  {*/
  		switch (command)  {
***************
*** 918,923
  #ifdef IBM3812
  	PMPout(10, "\373\010PMP.init");  /* re-init printer  */
  	PMPflush;
       
  	if (used_fontstorage > MAXFONTSTORAGE) {
  		Warning("\n\7used font_storage of 3812: %ld Bytes (of %ld)\7",

--- 944,950 -----
  #ifdef IBM3812
  	PMPout(10, "\373\010PMP.init");  /* re-init printer  */
  	PMPflush;
+ #endif
       
  	if (used_fontstorage > MAXFONTSTORAGE) {
  		Warning("\n\7used font_storage of %s: %ld Bytes (of %ld)\7",
***************
*** 920,927
  	PMPflush;
       
  	if (used_fontstorage > MAXFONTSTORAGE) {
! 		Warning("\n\7used font_storage of 3812: %ld Bytes (of %ld)\7",
! 				   used_fontstorage, MAXFONTSTORAGE);
  		Warning("Try to format file in separate runs!");
  	} else
  		qprintf(

--- 947,954 -----
  #endif
       
  	if (used_fontstorage > MAXFONTSTORAGE) {
! 		Warning("\n\7used font_storage of %s: %ld Bytes (of %ld)\7",
! 			PRINTER, used_fontstorage, MAXFONTSTORAGE);
  		Warning("Try to format file in separate runs!");
  	} else
  		qfprintf(stderr,
***************
*** 924,933
  				   used_fontstorage, MAXFONTSTORAGE);
  		Warning("Try to format file in separate runs!");
  	} else
! 		qprintf(
! 		   "\nAll done, used font_storage of 3812: %ld Bytes (of %ld)",
! 					used_fontstorage, MAXFONTSTORAGE);
! #endif
  #ifdef LJ
  	EMIT(outfp, "\033E");
  	if (PrintTestPage) EMIT(outfp, "\033z");

--- 951,959 -----
  			PRINTER, used_fontstorage, MAXFONTSTORAGE);
  		Warning("Try to format file in separate runs!");
  	} else
! 		qfprintf(stderr,
! 		   "\nAll done, used font_storage of %s: %ld Bytes (of %ld)",
! 			 PRINTER, used_fontstorage, MAXFONTSTORAGE);
  #ifdef LJ
  #ifndef FILTER
  	EMIT(outfp, "\033E");
***************
*** 929,934
  					used_fontstorage, MAXFONTSTORAGE);
  #endif
  #ifdef LJ
  	EMIT(outfp, "\033E");
  	if (PrintTestPage) EMIT(outfp, "\033z");
  #endif

--- 955,961 -----
  		   "\nAll done, used font_storage of %s: %ld Bytes (of %ld)",
  			 PRINTER, used_fontstorage, MAXFONTSTORAGE);
  #ifdef LJ
+ #ifndef FILTER
  	EMIT(outfp, "\033E");
  	if (PrintTestPage) EMIT(outfp, "\033z");
  #endif
***************
*** 932,937
  	EMIT(outfp, "\033E");
  	if (PrintTestPage) EMIT(outfp, "\033z");
  #endif
       
  	if (!G_quiet) {
  		printf( "\nDynamically allocated storage: %ld Bytes \n",

--- 959,965 -----
  	EMIT(outfp, "\033E");
  	if (PrintTestPage) EMIT(outfp, "\033z");
  #endif
+ #endif
       
  	if (!G_quiet) {
  		fprintf(stderr,"\nDynamically allocated storage: %ld Bytes \n",
***************
*** 934,940
  #endif
       
  	if (!G_quiet) {
! 		printf( "\nDynamically allocated storage: %ld Bytes \n",
  				    allocated_storage);
       
  #ifdef TIMING

--- 962,968 -----
  #endif
       
  	if (!G_quiet) {
! 		fprintf(stderr,"\nDynamically allocated storage: %ld Bytes \n",
  				    allocated_storage);
       
  #ifdef TIMING
***************
*** 943,949
  		    -start_time;
       
  		if (ndone > 0) {
! 			printf(
  	 "Time of complete run: %.2f seconds, %d page(s), %.2f seconds/page",
  					  time, ndone, time / ndone);
  			printf(" (%.2f ppm)\n",(ndone * 60) / time);

--- 971,977 -----
  		    -start_time;
       
  		if (ndone > 0) {
! 			fprintf(stderr,
  	 "Time of complete run: %.2f seconds, %d page(s), %.2f seconds/page",
  					  time, ndone, time / ndone);
  			fprintf(stderr," (%.2f ppm)\n",(ndone * 60) / time);
***************
*** 946,952
  			printf(
  	 "Time of complete run: %.2f seconds, %d page(s), %.2f seconds/page",
  					  time, ndone, time / ndone);
! 			printf(" (%.2f ppm)\n",(ndone * 60) / time);
  		}
  		printf("\n");
  #endif

--- 974,980 -----
  			fprintf(stderr,
  	 "Time of complete run: %.2f seconds, %d page(s), %.2f seconds/page",
  					  time, ndone, time / ndone);
! 			fprintf(stderr," (%.2f ppm)\n",(ndone * 60) / time);
  		}
  		fprintf(stderr,"\n");
  #endif
***************
*** 948,954
  					  time, ndone, time / ndone);
  			printf(" (%.2f ppm)\n",(ndone * 60) / time);
  		}
! 		printf("\n");
  #endif
  	}
       

--- 976,982 -----
  					  time, ndone, time / ndone);
  			fprintf(stderr," (%.2f ppm)\n",(ndone * 60) / time);
  		}
! 		fprintf(stderr,"\n");
  #endif
  	}
       
***************
*** 1024,1029
  			case 'D':       /* D selects DoublePage  */
  				DoublePage = TRUE;
  				break;
  			case 'e':       /* emit file is specified */
  				EmitFileName = ++tcp;
  				/* delete trailing ':' (causing hangup) */

--- 1052,1058 -----
  			case 'D':       /* D selects DoublePage  */
  				DoublePage = TRUE;
  				break;
+ #ifndef FILTER
  			case 'e':       /* emit file is specified */
  				EmitFileName = ++tcp;
  				/* delete trailing ':' (causing hangup) */
***************
*** 1032,1037
  					EmitFileName[strlen(EmitFileName)-1] =
  					    '\0';
  				break;
  			case 'f':       /* next arg is starting pagenumber */
  				if ( sscanf(tcp + 1, "%ld", &FirstPage) != 1 )
  				    Fatal("Argument is not a valid integer\n");

--- 1061,1067 -----
  					EmitFileName[strlen(EmitFileName)-1] =
  					    '\0';
  				break;
+ #endif
  			case 'f':       /* next arg is starting pagenumber */
  				if ( sscanf(tcp + 1, "%ld", &FirstPage) != 1 )
  				    Fatal("Argument is not a valid integer\n");
***************
*** 1045,1057
  				HeaderFileName = ++tcp;
  				G_header = TRUE;
  				break;
- #ifdef SUPERCOMMENT
- 			case 'i':   /* next arg is a PostScript file to copy */
- 				if ( ++argind >= argc )
- 					Fatal("No argument following -i\n");
- 				Ifile[nif++] = argv[argind];
- 				break;
- #endif
  			case 'x':       /* specify x-offset */
  				this_arg = 0;
  				if (!(*++tcp)) {

--- 1075,1080 -----
  				HeaderFileName = ++tcp;
  				G_header = TRUE;
  				break;
  			case 'x':       /* specify x-offset */
  				this_arg = 0;
  				if (!(*++tcp)) {
***************
*** 1168,1173
  				G_nowarn = TRUE;
  				break;
  #ifdef LJ
  			case 'z':
  				PrintTestPage = (bool)(!PrintTestPage);
  				break;

--- 1191,1197 -----
  				G_nowarn = TRUE;
  				break;
  #ifdef LJ
+ #ifndef FILTER
  			case 'z':
  				PrintTestPage = (bool)(!PrintTestPage);
  				break;
***************
*** 1172,1177
  				PrintTestPage = (bool)(!PrintTestPage);
  				break;
  #endif
  			default:
  				printf("%c is not a legal flag\n", *tcp);
  			}

--- 1196,1202 -----
  				PrintTestPage = (bool)(!PrintTestPage);
  				break;
  #endif
+ #endif
  			default:
  				fprintf(stderr,
  					"%c is not a legal flag\n", *tcp);
***************
*** 1173,1179
  				break;
  #endif
  			default:
! 				printf("%c is not a legal flag\n", *tcp);
  			}
  		} else {
  			/*          tcp = rindex(argv[argind], '/');    */

--- 1198,1205 -----
  #endif
  #endif
  			default:
! 				fprintf(stderr,
! 					"%c is not a legal flag\n", *tcp);
  			}
  		} else {
  #ifdef FILTER
***************
*** 1176,1182
  				printf("%c is not a legal flag\n", *tcp);
  			}
  		} else {
! 			/*          tcp = rindex(argv[argind], '/');    */
  			tcp = strrchr(argv[argind], '/');
  			/* split into directory + file name */
  			if (tcp == NULL)  {

--- 1202,1210 -----
  					"%c is not a legal flag\n", *tcp);
  			}
  		} else {
! #ifdef FILTER
! 			(void) strcpy(filename, tcp);
! #else
  			tcp = strrchr(argv[argind], '/');
  			/* split into directory + file name */
  			if (tcp == NULL)  {
***************
*** 1202,1207
       
  			(void) strcpy(filename, curarea);
  			(void) strcat(filename, curname);
       
  			if ((dvifp = BINOPEN(filename)) == NULL)  {
  				Fatal("%s: can't find DVI file \"%s\"\n\n",

--- 1230,1236 -----
       
  			(void) strcpy(filename, curarea);
  			(void) strcat(filename, curname);
+ #endif
       
  			if ((dvifp = BINOPEN(filename)) == NULL)  {
  				Fatal("%s: can't find DVI file \"%s\"\n\n",
***************
*** 1213,1224
       
  	x_goffset = (short) MM_TO_PXL(x_offset) + x_origin;
  	y_goffset = (short) MM_TO_PXL(y_offset) + y_origin;
! /*
! printf("setting x_goffset to %hd, x_offset= %f, x_origin= %hd\n",
! 	x_goffset, x_offset, x_origin);
! printf("setting y_goffset to %hd, y_offset= %f, y_origin= %hd\n",
! 	y_goffset, y_offset, y_origin);
! */
  	if (dvifp == NULL)  {
  	  printf("\nThis is the DVI to %s converter version %s",
  	      PRINTER, VERSION);

--- 1242,1248 -----
       
  	x_goffset = (short) MM_TO_PXL(x_offset) + x_origin;
  	y_goffset = (short) MM_TO_PXL(y_offset) + y_origin;
! 
  	if (dvifp == NULL)  {
  	  fprintf(stderr,"\nThis is the DVI to %s converter version %s",
  	      PRINTER, VERSION);
***************
*** 1220,1226
  	y_goffset, y_offset, y_origin);
  */
  	if (dvifp == NULL)  {
! 	  printf("\nThis is the DVI to %s converter version %s",
  	      PRINTER, VERSION);
  	  printf(" (%s)\n", OS);
  	  printf("usage: %s [OPTIONS] dvifile\n", G_progname);

--- 1244,1250 -----
  	y_goffset = (short) MM_TO_PXL(y_offset) + y_origin;
  
  	if (dvifp == NULL)  {
! 	  fprintf(stderr,"\nThis is the DVI to %s converter version %s",
  	      PRINTER, VERSION);
  	  fprintf(stderr," (%s)\n", OS);
  	  fprintf(stderr,"usage: %s [OPTIONS] dvifile\n", G_progname);
***************
*** 1222,1229
  	if (dvifp == NULL)  {
  	  printf("\nThis is the DVI to %s converter version %s",
  	      PRINTER, VERSION);
! 	  printf(" (%s)\n", OS);
! 	  printf("usage: %s [OPTIONS] dvifile\n", G_progname);
       
  	  printf("OPTIONS are:\n");
  	  printf(

--- 1246,1253 -----
  	if (dvifp == NULL)  {
  	  fprintf(stderr,"\nThis is the DVI to %s converter version %s",
  	      PRINTER, VERSION);
! 	  fprintf(stderr," (%s)\n", OS);
! 	  fprintf(stderr,"usage: %s [OPTIONS] dvifile\n", G_progname);
       
  	  fprintf(stderr,"OPTIONS are:\n");
  	  fprintf(stderr,
***************
*** 1225,1232
  	  printf(" (%s)\n", OS);
  	  printf("usage: %s [OPTIONS] dvifile\n", G_progname);
       
! 	  printf("OPTIONS are:\n");
! 	  printf(
  	    "\t-aX ..... X= searchpath leading to pixel-files (.pk or .pxl)\n");
  #ifdef IBM3812
  	  printf(

--- 1249,1256 -----
  	  fprintf(stderr," (%s)\n", OS);
  	  fprintf(stderr,"usage: %s [OPTIONS] dvifile\n", G_progname);
       
! 	  fprintf(stderr,"OPTIONS are:\n");
! 	  fprintf(stderr,
  	    "\t-aX ..... X= searchpath leading to pixel-files (.pk or .pxl)\n");
  #ifdef IBM3812
  	  fprintf(stderr,
***************
*** 1229,1235
  	  printf(
  	    "\t-aX ..... X= searchpath leading to pixel-files (.pk or .pxl)\n");
  #ifdef IBM3812
! 	  printf(
  	    "\t-b  ..... take paper for first page from alternate casette\n");
  #endif
  	  printf("\t-cX ..... X= number of copies\n");

--- 1253,1259 -----
  	  fprintf(stderr,
  	    "\t-aX ..... X= searchpath leading to pixel-files (.pk or .pxl)\n");
  #ifdef IBM3812
! 	  fprintf(stderr,
  	    "\t-b  ..... take paper for first page from alternate casette\n");
  #endif
  	  fprintf(stderr,"\t-cX ..... X= number of copies\n");
***************
*** 1232,1238
  	  printf(
  	    "\t-b  ..... take paper for first page from alternate casette\n");
  #endif
! 	  printf("\t-cX ..... X= number of copies\n");
  #ifdef DEBUG
  	  printf("\t-d  ..... turns debug output on\n");
  #endif

--- 1256,1262 -----
  	  fprintf(stderr,
  	    "\t-b  ..... take paper for first page from alternate casette\n");
  #endif
! 	  fprintf(stderr,"\t-cX ..... X= number of copies\n");
  #ifdef DEBUG
  	  fprintf(stderr,"\t-d  ..... turns debug output on\n");
  #endif
***************
*** 1234,1240
  #endif
  	  printf("\t-cX ..... X= number of copies\n");
  #ifdef DEBUG
! 	  printf("\t-d  ..... turns debug output on\n");
  #endif
  	  printf("\t-D  ..... turns doublepage output on\n");
  	  printf("\t-eX ..... X= outputfile\n");

--- 1258,1264 -----
  #endif
  	  fprintf(stderr,"\t-cX ..... X= number of copies\n");
  #ifdef DEBUG
! 	  fprintf(stderr,"\t-d  ..... turns debug output on\n");
  #endif
  	  fprintf(stderr,"\t-D  ..... turns doublepage output on\n");
  #ifndef FILTER
***************
*** 1236,1244
  #ifdef DEBUG
  	  printf("\t-d  ..... turns debug output on\n");
  #endif
! 	  printf("\t-D  ..... turns doublepage output on\n");
! 	  printf("\t-eX ..... X= outputfile\n");
! 	  printf("\t-fX ..... print from begin of page number X\n");
  #ifdef LJ
  	  printf("\t-g  ..... do not reset printer at begin of job (go)\n");
  #endif

--- 1260,1270 -----
  #ifdef DEBUG
  	  fprintf(stderr,"\t-d  ..... turns debug output on\n");
  #endif
! 	  fprintf(stderr,"\t-D  ..... turns doublepage output on\n");
! #ifndef FILTER
! 	  fprintf(stderr,"\t-eX ..... X= outputfile\n");
! #endif
! 	  fprintf(stderr,"\t-fX ..... print from begin of page number X\n");
  #ifdef LJ
  	  fprintf(stderr,
  		  "\t-g  ..... do not reset printer at begin of job (go)\n");
***************
*** 1240,1246
  	  printf("\t-eX ..... X= outputfile\n");
  	  printf("\t-fX ..... print from begin of page number X\n");
  #ifdef LJ
! 	  printf("\t-g  ..... do not reset printer at begin of job (go)\n");
  #endif
  	  printf("\t-hX ..... X= name of headerfile\n");
  	  printf("\t-mX ..... magnification X=0;h;1;2;3;4;5;#xxxx\n");

--- 1266,1273 -----
  #endif
  	  fprintf(stderr,"\t-fX ..... print from begin of page number X\n");
  #ifdef LJ
! 	  fprintf(stderr,
! 		  "\t-g  ..... do not reset printer at begin of job (go)\n");
  #endif
  	  fprintf(stderr,"\t-hX ..... X= name of headerfile\n");
  	  fprintf(stderr,"\t-mX ..... magnification X=0;h;1;2;3;4;5;#xxxx\n");
***************
*** 1242,1258
  #ifdef LJ
  	  printf("\t-g  ..... do not reset printer at begin of job (go)\n");
  #endif
! 	  printf("\t-hX ..... X= name of headerfile\n");
! 	  printf("\t-mX ..... magnification X=0;h;1;2;3;4;5;#xxxx\n");
! 	  printf("\t-pX ..... print X pages\n");
! 	  printf("\t-q  ..... quiet operation\n");
! 	  printf("\t-r  ..... process pages in reverse order\n");
! 	  printf("\t-tX ..... print to end of page number X\n");
! 	  printf("\t-w  ..... don't print out warnings\n");
! 	  printf("\t-v  ..... tell user which pixel-files are used\n");
! 	  printf("\t-xX ..... X= x-offset on printout in mm\n");
! 	  printf("\t-yX ..... X= y-offset on printout in mm\n");
! 	  printf("\t-XO ..... O= x page origin in dots (default=%d)\n",
  			XDEFAULTOFF );
  	  printf("\t-YO ..... O= y page origin in dots (default=%d)\n",
  			YDEFAULTOFF );

--- 1269,1285 -----
  	  fprintf(stderr,
  		  "\t-g  ..... do not reset printer at begin of job (go)\n");
  #endif
! 	  fprintf(stderr,"\t-hX ..... X= name of headerfile\n");
! 	  fprintf(stderr,"\t-mX ..... magnification X=0;h;1;2;3;4;5;#xxxx\n");
! 	  fprintf(stderr,"\t-pX ..... print X pages\n");
! 	  fprintf(stderr,"\t-q  ..... quiet operation\n");
! 	  fprintf(stderr,"\t-r  ..... process pages in reverse order\n");
! 	  fprintf(stderr,"\t-tX ..... print to end of page number X\n");
! 	  fprintf(stderr,"\t-w  ..... don't print out warnings\n");
! 	  fprintf(stderr,"\t-v  ..... tell user which pixel-files are used\n");
! 	  fprintf(stderr,"\t-xX ..... X= x-offset on printout in mm\n");
! 	  fprintf(stderr,"\t-yX ..... X= y-offset on printout in mm\n");
! 	  fprintf(stderr,"\t-XO ..... O= x page origin in dots (default=%d)\n",
  			XDEFAULTOFF );
  	  fprintf(stderr,"\t-YO ..... O= y page origin in dots (default=%d)\n",
  			YDEFAULTOFF );
***************
*** 1254,1260
  	  printf("\t-yX ..... X= y-offset on printout in mm\n");
  	  printf("\t-XO ..... O= x page origin in dots (default=%d)\n",
  			XDEFAULTOFF );
! 	  printf("\t-YO ..... O= y page origin in dots (default=%d)\n",
  			YDEFAULTOFF );
  #ifdef LJ
  	  printf("\t-z  ..... print test page with pagecounter after job\n");

--- 1281,1287 -----
  	  fprintf(stderr,"\t-yX ..... X= y-offset on printout in mm\n");
  	  fprintf(stderr,"\t-XO ..... O= x page origin in dots (default=%d)\n",
  			XDEFAULTOFF );
! 	  fprintf(stderr,"\t-YO ..... O= y page origin in dots (default=%d)\n",
  			YDEFAULTOFF );
  #ifdef LJ
  #ifndef FILTER
***************
*** 1257,1263
  	  printf("\t-YO ..... O= y page origin in dots (default=%d)\n",
  			YDEFAULTOFF );
  #ifdef LJ
! 	  printf("\t-z  ..... print test page with pagecounter after job\n");
  #endif
  	  exit(1);
  	}

--- 1284,1292 -----
  	  fprintf(stderr,"\t-YO ..... O= y page origin in dots (default=%d)\n",
  			YDEFAULTOFF );
  #ifdef LJ
! #ifndef FILTER
! 	  fprintf(stderr,
! 		  "\t-z  ..... print test page with pagecounter after job\n");
  #endif
  #endif
  	  exit(1);
***************
*** 1259,1264
  #ifdef LJ
  	  printf("\t-z  ..... print test page with pagecounter after job\n");
  #endif
  	  exit(1);
  	}
  	if (EQ(EmitFileName, "")) {

--- 1288,1294 -----
  	  fprintf(stderr,
  		  "\t-z  ..... print test page with pagecounter after job\n");
  #endif
+ #endif
  	  exit(1);
  	}
  #ifndef FILTER
***************
*** 1261,1266
  #endif
  	  exit(1);
  	}
  	if (EQ(EmitFileName, "")) {
  		(void) strcpy(EmitFileName, curname);
  		tcp1 = strchr(EmitFileName, '.');

--- 1291,1297 -----
  #endif
  	  exit(1);
  	}
+ #ifndef FILTER
  	if (EQ(EmitFileName, "")) {
  		(void) strcpy(EmitFileName, curname);
  		tcp1 = strchr(EmitFileName, '.');
***************
*** 1267,1272
  		*tcp1 = '\0';
  		strcat(EmitFileName, EMITFILE_EXTENSION);
  	}
  }
       
       

--- 1298,1304 -----
  		*tcp1 = '\0';
  		strcat(EmitFileName, EMITFILE_EXTENSION);
  	}
+ #endif
  }
       
       
***************
*** 1280,1288
  int     convResolution;
  {
  	/*register*/ double conv;
- 	/* conv = ((double)den / (double)num) *
- 		    (1000.0 / (double)mag) *
- 		  (254000.0 / (double)convResolution) + 0.5; */
  	conv = ((double)num / (double)den) *
  		    ((double)mag / 1000.0) *
  		  ((double)convResolution/254000.0);

--- 1312,1317 -----
  int     convResolution;
  {
  	/*register*/ double conv;
  	conv = ((double)num / (double)den) *
  		    ((double)mag / 1000.0) *
  		  ((double)convResolution/254000.0);
***************
*** 1443,1448
  		prevfont = fontptr;
  	}
       
  	if (fontptr->id == pk89)   {
  		nbpl = ((ce->width) +  7) >> 3;
  		total = (long)ce->height * nbpl;

--- 1472,1478 -----
  		prevfont = fontptr;
  	}
       
+ #ifdef USEPXL
  	if (fontptr->id == pk89)   {
  		nbpl = ((ce->width) +  7) >> 3;
  		total = (long)ce->height * nbpl;
***************
*** 1454,1460
  		nbpl = ((ce->width) + 7) >> 3;
  		total = (long)ce->height * nbpl;
  	}
!      
  	/***************************************************************/
  	/*if ( ((char) c == 'a') && (fontptr->plusid == 8)) {          */
  	/*        printf("cols=%ld, ncols=%ld\n",nwpl,nbpl);           */

--- 1484,1493 -----
  		nbpl = ((ce->width) + 7) >> 3;
  		total = (long)ce->height * nbpl;
  	}
! #else
! 	nbpl = (num_cols + 7) >> 3;
! 	total = num_rows * nbpl;
! #endif
  	/***************************************************************/
  	/*if ( ((char) c == 'a') && (fontptr->plusid == 8)) {          */
  	/*        printf("cols=%ld, ncols=%ld\n",nwpl,nbpl);           */
***************
*** 1469,1475
  	/*        printf("<- Now Emitting\n");                         */
  	/*        }                                                    */
  	/***************************************************************/
!      
  	if ((short)(ce->height) - ce->yOffset > 55) {
  		ce->yyOffset = (short) ce->height - ce->yOffset;
  		ce->yOffset  = (short) ce->height;

--- 1502,1508 -----
  	/*        printf("<- Now Emitting\n");                         */
  	/*        }                                                    */
  	/***************************************************************/
! #ifdef USEPXL     
  	if ((short)(ce->height) - ce->yOffset > 55) {
  		ce->yyOffset = (short) ce->height - ce->yOffset;
  		ce->yOffset  = (short) ce->height;
***************
*** 1476,1481
  	} else {
  		ce->yyOffset = (short) 0;
  	}
  	/* ce->cw = (long)(((double)ce->tfmw / (double)hconv) +0.5); */
  	/* set active font to nn, load font pattern  xx ... */
       

--- 1509,1515 -----
  	} else {
  		ce->yyOffset = (short) 0;
  	}
+ #endif     
  	/* ce->cw = (long)(((double)ce->tfmw / (double)hconv) +0.5); */
  	/* set active font to nn, load font pattern  xx ... */
  #ifdef IBM3812
***************
*** 1478,1484
  	}
  	/* ce->cw = (long)(((double)ce->tfmw / (double)hconv) +0.5); */
  	/* set active font to nn, load font pattern  xx ... */
-      
  #ifdef IBM3812
  	PMPcont(total + 9);
  	sprintf(PMPformat, "\323%c\360%c%c%c",

--- 1512,1517 -----
  #endif     
  	/* ce->cw = (long)(((double)ce->tfmw / (double)hconv) +0.5); */
  	/* set active font to nn, load font pattern  xx ... */
  #ifdef IBM3812
  	PMPcont(total + 9);
  #ifdef USEPXL
***************
*** 1481,1486
       
  #ifdef IBM3812
  	PMPcont(total + 9);
  	sprintf(PMPformat, "\323%c\360%c%c%c",
  	    (unsigned char)fontptr->plusid,
  	    (unsigned char)VisChar((char)c),

--- 1514,1520 -----
  	/* set active font to nn, load font pattern  xx ... */
  #ifdef IBM3812
  	PMPcont(total + 9);
+ #ifdef USEPXL
  	sprintf(PMPformat, "\323%c\360%c%c%c",
  	    (unsigned char)fontptr->plusid,
  	    (unsigned char)VisChar((char)c),
***************
*** 1490,1495
  	PMPoutC((char)(-(ce->xOffset)));
  	PMPoutC((char)(ce->cw - (-ce->xOffset + ce->width)));
  	PMPoutC((char)(ce->yOffset));
  #endif
  #ifdef LJ
  	EMIT(outfp, "\033*c%dd%dE\033(s%ldW", fontptr->plusid,

--- 1524,1539 -----
  	PMPoutC((char)(-(ce->xOffset)));
  	PMPoutC((char)(ce->cw - (-ce->xOffset + ce->width)));
  	PMPoutC((char)(ce->yOffset));
+ #else
+ 	sprintf(PMPformat, "\323%c\360%c%c%c",
+ 	    (unsigned char)fontptr->plusid,
+ 	    (unsigned char)VisChar((char)c),
+ 	    (unsigned char)num_rows,
+ 	    (unsigned char)num_cols);
+ 	PMPout(6, PMPformat);
+ 	PMPoutC((char)(-x_offset));
+ 	PMPoutC((char)(ce->cw - (-x_offset + num_cols)));
+ 	PMPoutC((char)num_rows-y_offset);
  #endif
  #endif
  #ifdef LJ
***************
*** 1491,1496
  	PMPoutC((char)(ce->cw - (-ce->xOffset + ce->width)));
  	PMPoutC((char)(ce->yOffset));
  #endif
  #ifdef LJ
  	EMIT(outfp, "\033*c%dd%dE\033(s%ldW", fontptr->plusid,
  	    (unsigned int)VisChar((char)c), (long)(total + 16));

--- 1535,1541 -----
  	PMPoutC((char)(ce->cw - (-x_offset + num_cols)));
  	PMPoutC((char)num_rows-y_offset);
  #endif
+ #endif
  #ifdef LJ
  	EMIT(outfp, "\033*c%dd%dE\033(s%ldW", fontptr->plusid,
  	    (unsigned int)VisChar((char)c), (long)(total + 16));
***************
*** 1495,1500
  	EMIT(outfp, "\033*c%dd%dE\033(s%ldW", fontptr->plusid,
  	    (unsigned int)VisChar((char)c), (long)(total + 16));
  	EMITB(6, "\4\0\016\1\0\0");
  	EMITWORD(-(ce->xOffset));
  	EMITWORD(ce->yOffset);
  	EMITWORD(ce->width);

--- 1540,1546 -----
  	EMIT(outfp, "\033*c%dd%dE\033(s%ldW", fontptr->plusid,
  	    (unsigned int)VisChar((char)c), (long)(total + 16));
  	EMITB(6, "\4\0\016\1\0\0");
+ #ifdef USEPXL
  	EMITWORD(-(ce->xOffset));
  	EMITWORD(ce->yOffset);
  	EMITWORD(ce->width);
***************
*** 1499,1504
  	EMITWORD(ce->yOffset);
  	EMITWORD(ce->width);
  	EMITWORD(ce->height);
  	EMITWORD((int)ce->cw * 4);
  #endif
  	if (fontptr->id == pk89)

--- 1545,1556 -----
  	EMITWORD(ce->yOffset);
  	EMITWORD(ce->width);
  	EMITWORD(ce->height);
+ #else
+ 	EMITWORD(-x_offset);
+ 	EMITWORD(num_rows-y_offset);
+ 	EMITWORD(num_cols);
+ 	EMITWORD(num_rows);
+ #endif
  	EMITWORD((int)ce->cw * 4);
  #endif
  #ifdef USEPXL
***************
*** 1501,1506
  	EMITWORD(ce->height);
  	EMITWORD((int)ce->cw * 4);
  #endif
  	if (fontptr->id == pk89)
  		PkRaster(ce, FALSE);
  	else if (fontptr->id == id1002)

--- 1553,1559 -----
  #endif
  	EMITWORD((int)ce->cw * 4);
  #endif
+ #ifdef USEPXL
  	if (fontptr->id == pk89)
  		PkRaster(ce, FALSE);
  	else if (fontptr->id == id1002)
***************
*** 1515,1520
  			    i * nwpl);
  			EMITL(nbpl, sl);
  		}
  #ifdef IBM3812
  	used_fontstorage += (long)ce->height * ((ce->width + 15) >> 4)
  	    *2 + 14;

--- 1568,1579 -----
  			    i * nwpl);
  			EMITL(nbpl, sl);
  		}
+ #else
+ 	for (i = num_rows; i > 0; i--)
+ 	  {
+ 	    EMITL (nbpl, bits + (i-1) * nbpl);
+ 	  }
+ #endif
  #ifdef IBM3812
  #ifdef USEPXL
  	used_fontstorage += (long)ce->height * ((ce->width + 15) >> 4)
***************
*** 1516,1521
  			EMITL(nbpl, sl);
  		}
  #ifdef IBM3812
  	used_fontstorage += (long)ce->height * ((ce->width + 15) >> 4)
  	    *2 + 14;
  #endif

--- 1575,1581 -----
  	  }
  #endif
  #ifdef IBM3812
+ #ifdef USEPXL
  	used_fontstorage += (long)ce->height * ((ce->width + 15) >> 4)
  	    *2 + 14;
  #else
***************
*** 1518,1523
  #ifdef IBM3812
  	used_fontstorage += (long)ce->height * ((ce->width + 15) >> 4)
  	    *2 + 14;
  #endif
  	fontptr->ncdl += 1;
  }

--- 1578,1586 -----
  #ifdef USEPXL
  	used_fontstorage += (long)ce->height * ((ce->width + 15) >> 4)
  	    *2 + 14;
+ #else
+ 	used_fontstorage += (long)num_rows * ((num_cols + 15) >> 4)
+ 	    *2 + 14;
  #endif
  #endif
  #ifdef LJ
***************
*** 1519,1524
  	used_fontstorage += (long)ce->height * ((ce->width + 15) >> 4)
  	    *2 + 14;
  #endif
  	fontptr->ncdl += 1;
  }
       

--- 1582,1595 -----
  	used_fontstorage += (long)num_rows * ((num_cols + 15) >> 4)
  	    *2 + 14;
  #endif
+ #endif
+ #ifdef LJ
+ #ifdef USEPXL
+ 	used_fontstorage += 64 * ((((ce->height * ce->width) - 1) / 64) + 1);
+ #else
+ 	used_fontstorage += 64 * ((((num_rows * num_cols) - 1) / 64) + 1);
+ #endif
+ #endif
  	fontptr->ncdl += 1;
  }
       
***************
*** 1538,1543
  	static unsigned short   maxlines;
       
  	if (current_line == 0) {
  		maxlines = ce->height;
       
  		MoveVert(-ce->yOffset);      /* move cursor up */

--- 1609,1615 -----
  	static unsigned short   maxlines;
       
  	if (current_line == 0) {
+ #ifdef USEPXL
  		maxlines = ce->height;
       
  		MoveVert(-ce->yOffset);      /* move cursor up */
***************
*** 1542,1547
       
  		MoveVert(-ce->yOffset);      /* move cursor up */
  		MoveHor(-ce->xOffset);       /* move cursor right */
  		last_ry = UNKNOWN;           /* next time full positioning */
  	}
       

--- 1614,1625 -----
       
  		MoveVert(-ce->yOffset);      /* move cursor up */
  		MoveHor(-ce->xOffset);       /* move cursor right */
+ #else
+ 		maxlines = num_rows;
+      
+ 		MoveVert(-(num_rows-y_offset));      /* move cursor up */
+ 		MoveHor(-x_offset);       /* move cursor right */
+ #endif
  		last_ry = UNKNOWN;           /* next time full positioning */
  	}
       
***************
*** 1550,1555
  			MoveVert(maxlines);   /*   move cursor down         */
  			last_ry = UNKNOWN;    /* next time full positioning */
  		}
  		total = (long)(ce->height - current_line) * (long)nbpl;
  		if ((total + 9) > 65535) {
  			maxlines = (unsigned short)((65535 - 9) / nbpl);

--- 1628,1634 -----
  			MoveVert(maxlines);   /*   move cursor down         */
  			last_ry = UNKNOWN;    /* next time full positioning */
  		}
+ #ifdef USEPXL
  		total = (long)(ce->height - current_line) * (long)nbpl;
  #else
  		total = (long)(num_rows - current_line) * (long)nbpl;
***************
*** 1551,1556
  			last_ry = UNKNOWN;    /* next time full positioning */
  		}
  		total = (long)(ce->height - current_line) * (long)nbpl;
  		if ((total + 9) > 65535) {
  			maxlines = (unsigned short)((65535 - 9) / nbpl);
  			total = (long)maxlines * (long)nbpl;

--- 1630,1638 -----
  		}
  #ifdef USEPXL
  		total = (long)(ce->height - current_line) * (long)nbpl;
+ #else
+ 		total = (long)(num_rows - current_line) * (long)nbpl;
+ #endif
  		if ((total + 9) > 65535) {
  			maxlines = (unsigned short)((65535 - 9) / nbpl);
  			total = (long)maxlines * (long)nbpl;
***************
*** 1559,1564
  		PMPcont(total + 9);
  		PMPout(2, "\365\0");
  		EMITWORD(maxlines);
  		EMITWORD(ce->width);
  		PMPoutC((unsigned char) (total >> 16) & 0xFF);
  		PMPoutC((unsigned char) (total >> 8 ) & 0xFF);

--- 1641,1647 -----
  		PMPcont(total + 9);
  		PMPout(2, "\365\0");
  		EMITWORD(maxlines);
+ #ifdef USEPXL
  		EMITWORD(ce->width);
  #else
  		EMITWORD(num_cols);
***************
*** 1560,1565
  		PMPout(2, "\365\0");
  		EMITWORD(maxlines);
  		EMITWORD(ce->width);
  		PMPoutC((unsigned char) (total >> 16) & 0xFF);
  		PMPoutC((unsigned char) (total >> 8 ) & 0xFF);
  		PMPoutC((unsigned char)  total     & 0xFF);

--- 1643,1651 -----
  		EMITWORD(maxlines);
  #ifdef USEPXL
  		EMITWORD(ce->width);
+ #else
+ 		EMITWORD(num_cols);
+ #endif
  		PMPoutC((unsigned char) (total >> 16) & 0xFF);
  		PMPoutC((unsigned char) (total >> 8 ) & 0xFF);
  		PMPoutC((unsigned char)  total     & 0xFF);
***************
*** 1595,1601
       
  #ifdef DEBUG
  	if (Debug)
! 		printf("Raster character <%c>... \n", (char) c);
  #endif
       
       

--- 1681,1687 -----
       
  #ifdef DEBUG
  	if (Debug)
! 		fprintf(stderr,"Raster character <%c>... \n", (char) c);
  #endif
       
  #ifdef USEPXL     
***************
*** 1598,1604
  		printf("Raster character <%c>... \n", (char) c);
  #endif
       
!      
  	if (fontptr->id == pk89)   {
  		nbpl = ((ce->width) +  7) >> 3;
  	} else if (fontptr->id == id1002)   {

--- 1684,1690 -----
  		fprintf(stderr,"Raster character <%c>... \n", (char) c);
  #endif
       
! #ifdef USEPXL     
  	if (fontptr->id == pk89)   {
  		nbpl = ((ce->width) +  7) >> 3;
  	} else if (fontptr->id == id1002)   {
***************
*** 1607,1612
  		nwpl = ( ce->width + 31) >> 5;
  		nbpl = ( ce->width + 7) >> 3;
  	}
       
  #ifdef LJ
  	EMIT(outfp, "\033*t300R\033*r1A");

--- 1693,1701 -----
  		nwpl = ( ce->width + 31) >> 5;
  		nbpl = ( ce->width + 7) >> 3;
  	}
+ #else
+ 	nbpl = (num_cols + 7) >> 3;
+ #endif
       
  #ifdef LJ
  	EMIT(outfp, "\033*t300R\033*r1A");
***************
*** 1614,1619
       
  	if (ce->charsize == HUGE_SIZE) { /* read pixel from file */
  		OpenFontFile();
  		fseek(pxlfp, ce->where.address.fileOffset, 0);
  	}
       

--- 1703,1709 -----
       
  	if (ce->charsize == HUGE_SIZE) { /* read pixel from file */
  		OpenFontFile();
+ #ifdef USEPXL
  		fseek(pxlfp, ce->where.address.fileOffset, 0);
  #else
  		fseek(gfin, ce->where.address.fileOffset, 0);
***************
*** 1615,1620
  	if (ce->charsize == HUGE_SIZE) { /* read pixel from file */
  		OpenFontFile();
  		fseek(pxlfp, ce->where.address.fileOffset, 0);
  	}
       
  	if (fontptr->id == pk89)

--- 1705,1715 -----
  		OpenFontFile();
  #ifdef USEPXL
  		fseek(pxlfp, ce->where.address.fileOffset, 0);
+ #else
+ 		fseek(gfin, ce->where.address.fileOffset, 0);
+ 		gettochar();
+ 		readbits();
+ #endif
  	}
  
  #ifdef USEPXL
***************
*** 1616,1622
  		OpenFontFile();
  		fseek(pxlfp, ce->where.address.fileOffset, 0);
  	}
!      
  	if (fontptr->id == pk89)
  		PkRaster(ce, TRUE);
  	else if (fontptr->id == id1002) {

--- 1711,1718 -----
  		readbits();
  #endif
  	}
! 
! #ifdef USEPXL
  	if (fontptr->id == pk89)
  		PkRaster(ce, TRUE);
  	else if (fontptr->id == id1002) {
***************
*** 1650,1655
  			RasterLine(ce, (unsigned int)nbpl, i, sl);
  		}
  	}
  #ifdef LJ
  	EMIT(outfp, "\033*rB");
  #endif

--- 1746,1755 -----
  			RasterLine(ce, (unsigned int)nbpl, i, sl);
  		}
  	}
+ #else
+ 	for (i = num_rows; i > 0; i--)
+ 	  RasterLine(ce, (unsigned int)nbpl, i, bits + (i-1) * nbpl);
+ #endif
  #ifdef LJ
  	EMIT(outfp, "\033*rB");
  #endif
***************
*** 1921,1927
       
  #ifdef DEBUG
  	if (Debug)
! 		printf("open font file\n");
  #endif
  	if (pfontptr == fontptr)
  		return;                 /* we need not have been called */

--- 2021,2027 -----
       
  #ifdef DEBUG
  	if (Debug)
! 		fprintf(stderr,"open font file %d\n", fontptr->font_file_id);
  #endif
  	if (pfontptr == fontptr)
  		return;                 /* we need not have been called */
***************
*** 1973,1979
  			}
  #ifdef DEBUG
  			if (Debug)
! 				printf("\n__reuse slot %d\n", least_used);
  #endif
  			current = least_used;
  		}

--- 2073,2079 -----
  			}
  #ifdef DEBUG
  			if (Debug)
! 				fprintf(stderr,"\n__reuse slot %d\n", least_used);
  #endif
  			current = least_used;
  		}
***************
*** 1983,1989
  			pxlfp = NO_FILE;
  		} else {
  #ifdef DEBUG
! 		     if (Debug) printf(
  			 "Opening File  <%s> /%x/, Size(font_entry)=%d\n",
  			  fontptr->name, pxlfp, sizeof(struct font_entry ));
  #endif

--- 2083,2089 -----
  			pxlfp = NO_FILE;
  		} else {
  #ifdef DEBUG
! 		     if (Debug) fprintf(stderr,
  			 "Opening File  <%s> /%x/, Size(font_entry)=%d\n",
  			  fontptr->name, pxlfp, sizeof(struct font_entry ));
  #endif
***************
*** 1994,1999
  	pfontptr = fontptr;                 /* make previous = current font */
  	fontptr->font_file_id = pxlfp;      /* set file identifier */
  	pixel_files[current].use_count++;   /* update reference count */
  }
  
  

--- 2094,2102 -----
  	pfontptr = fontptr;                 /* make previous = current font */
  	fontptr->font_file_id = pxlfp;      /* set file identifier */
  	pixel_files[current].use_count++;   /* update reference count */
+ #ifndef USEPXL
+ 	gfin = pxlfp;
+ #endif
  }
  
  
***************
*** 2006,2013
  long    x;              /* in DVI units     */
  long    conv;           /* conversion factor */
  {
-     /*    return((long)((((double)x + (double)(conv >> 1)) / (double)conv)
- 	    + 0.5)); */
  	return((x + conv) / conv);
  }
       

--- 2109,2114 -----
  long    x;              /* in DVI units     */
  long    conv;           /* conversion factor */
  {
  	return((x + conv) / conv);
  }
       
***************
*** 2022,2028
  {
  	long    t;
  	unsigned short i;
! 	char    n[STRSIZE];
  	struct font_entry *tfontptr; /* temporary font_entry pointer   */
  	struct char_entry *tcharptr; /* temporary char_entry pointer  */
  	static int      plusid = 1;

--- 2123,2130 -----
  {
  	long    t;
  	unsigned short i;
! 	char    nname[STRSIZE];
! 	int nmag;
  	struct font_entry *tfontptr; /* temporary font_entry pointer   */
  	struct char_entry *tcharptr; /* temporary char_entry pointer  */
  	static int      plusid = 1;
***************
*** 2029,2035
  	bool font_found = FALSE;
  #ifdef DEBUG
  	if (Debug)
! 		printf("Mallocating %d Bytes)...\n",
  		    sizeof(struct font_entry ));
  #endif
       

--- 2131,2137 -----
  	bool font_found = FALSE;
  #ifdef DEBUG
  	if (Debug)
! 		fprintf(stderr,"Mallocating %d Bytes)...\n",
  		    sizeof(struct font_entry ));
  #endif
       
***************
*** 2049,2056
  	tfontptr->a = (int) NoSignExtend(dvifp, 1); /* length for font name */
  	tfontptr->l = (int) NoSignExtend(dvifp, 1); /* device length */
       
! 	GetBytes(dvifp, n, tfontptr->a + tfontptr->l);
! 	n[tfontptr->a+tfontptr->l] = '\0';
  	/*   tfontptr->font_space = tfontptr->s/6;*/ /* never used */
       
  	tfontptr->font_mag = (long)((

--- 2151,2158 -----
  	tfontptr->a = (int) NoSignExtend(dvifp, 1); /* length for font name */
  	tfontptr->l = (int) NoSignExtend(dvifp, 1); /* device length */
       
! 	GetBytes(dvifp, tfontptr->n, tfontptr->a + tfontptr->l);
! 	tfontptr->n[tfontptr->a+tfontptr->l] = '\0';
  	/*   tfontptr->font_space = tfontptr->s/6;*/ /* never used */
       
  	tfontptr->font_mag = (long)((
***************
*** 2056,2061
  	tfontptr->font_mag = (long)((
  	     ActualFactor((long)(1000.0*tfontptr->s/(double)tfontptr->d+0.5))
  	     * ActualFactor(mag)
  	     * RESOLUTION * 5.0
  		   ) + 0.5);
  /*

--- 2158,2164 -----
  	tfontptr->font_mag = (long)((
  	     ActualFactor((long)(1000.0*tfontptr->s/(double)tfontptr->d+0.5))
  	     * ActualFactor(mag)
+ #ifdef USEPXL
  	     * RESOLUTION * 5.0
  #else
  	     * RESOLUTION
***************
*** 2057,2062
  	     ActualFactor((long)(1000.0*tfontptr->s/(double)tfontptr->d+0.5))
  	     * ActualFactor(mag)
  	     * RESOLUTION * 5.0
  		   ) + 0.5);
  /*
  printf("[%ld]=%lf * %lf * %lf + 0.5 = %ld\n",

--- 2160,2168 -----
  	     * ActualFactor(mag)
  #ifdef USEPXL
  	     * RESOLUTION * 5.0
+ #else
+ 	     * RESOLUTION
+ #endif
  		   ) + 0.5);
  /*
  printf("[%ld]=%lf * %lf * %lf + 0.5 = %ld\n",
***************
*** 2067,2082
      tfontptr->font_mag );
  */
       
! /*
! 	tfontptr->font_mag =
! 	    (long)((ActualFactor((long)(((double)tfontptr->s
! 	    /(double)tfontptr->d)
! 	    *1000.0 ))
! 	    *ActualFactor(mag) *
! 	    (double)RESOLUTION * 5.0) + 0.5);
! */
! /*            *1000.0 + 0.5)) */
!      
  	if (!(font_found =
  	      findfile(PXLpath, n, tfontptr->font_mag, tfontptr->name))) {
  		  Warning(tfontptr->name); /* contains error messsage */

--- 2173,2179 -----
      tfontptr->font_mag );
  */
       
! #ifdef unix
  	if (!(font_found =
  	      findfile(&PXLpath, 1, "", tfontptr->n, tfontptr->font_mag,
  		       tfontptr->name, nname, &nmag))) {
***************
*** 2078,2084
  /*            *1000.0 + 0.5)) */
       
  	if (!(font_found =
! 	      findfile(PXLpath, n, tfontptr->font_mag, tfontptr->name))) {
  		  Warning(tfontptr->name); /* contains error messsage */
  		  tfontptr->font_file_id = NO_FILE;
  	    }

--- 2175,2187 -----
       
  #ifdef unix
  	if (!(font_found =
! 	      findfile(&PXLpath, 1, "", tfontptr->n, tfontptr->font_mag,
! 		       tfontptr->name, nname, &nmag))) {
! 	  Warning("no font %s.d",tfontptr->n, mag);
! 	}
! #else
! 	if (!(font_found =
! 	      findfile(PXLpath, tfontptr->n, tfontptr->fontmag, tfontptr->name))) {
  		  Warning(tfontptr->name); /* contains error messsage */
  		  tfontptr->font_file_id = NO_FILE;
  	    }
***************
*** 2082,2087
  		  Warning(tfontptr->name); /* contains error messsage */
  		  tfontptr->font_file_id = NO_FILE;
  	    }
  	else
  	if (!( (G_noverbatim) || (G_quiet) ) )
  		printf("%d: using font <%s>\n",

--- 2185,2191 -----
  		  Warning(tfontptr->name); /* contains error messsage */
  		  tfontptr->font_file_id = NO_FILE;
  	    }
+ #endif
  	else
  	if (!( (G_noverbatim) || (G_quiet) ) )
  		fprintf(stderr,"%d: using font <%s>\n",
***************
*** 2084,2090
  	    }
  	else
  	if (!( (G_noverbatim) || (G_quiet) ) )
! 		printf("%d: using font <%s>\n",
  		plusid,tfontptr->name);
       
  	/* sprintf(tfontptr->psname,"%s.%ld.%d",

--- 2188,2194 -----
  #endif
  	else
  	if (!( (G_noverbatim) || (G_quiet) ) )
! 		fprintf(stderr,"%d: using font <%s>\n",
  		plusid,tfontptr->name);
       
  	/* sprintf(tfontptr->psname,"%s.%ld.%d",
***************
*** 2103,2108
  		else
  			pxlfp = NO_FILE;
  	}
  	if ( pxlfp == NO_FILE ) {                /* allow missing pxl files */
  		tfontptr->magnification = 0;
  		tfontptr->designsize = 0;

--- 2207,2213 -----
  		else
  			pxlfp = NO_FILE;
  	}
+ #ifdef USEPXL
  	if ( pxlfp == NO_FILE ) {                /* allow missing pxl files */
  		tfontptr->magnification = 0;
  		tfontptr->designsize = 0;
***************
*** 2106,2112
  	if ( pxlfp == NO_FILE ) {                /* allow missing pxl files */
  		tfontptr->magnification = 0;
  		tfontptr->designsize = 0;
! 		for (i = FIRSTPXLCHAR; i <= LASTPXLCHAR; i++) {
  			tcharptr = &(tfontptr->ch[i]);
  			tcharptr->width = 0;
  			tcharptr->height = 0;

--- 2211,2220 -----
  	if ( pxlfp == NO_FILE ) {                /* allow missing pxl files */
  		tfontptr->magnification = 0;
  		tfontptr->designsize = 0;
! 		for (i = FIRSTFNTCHAR; i <= LASTFNTCHAR; i++) {
! #else
!         for (i = FIRSTFNTCHAR; i <= LASTFNTCHAR; i++) {
! #endif
  			tcharptr = &(tfontptr->ch[i]);
  #ifdef USEPXL
  			tcharptr->width = 0;
***************
*** 2108,2113
  		tfontptr->designsize = 0;
  		for (i = FIRSTPXLCHAR; i <= LASTPXLCHAR; i++) {
  			tcharptr = &(tfontptr->ch[i]);
  			tcharptr->width = 0;
  			tcharptr->height = 0;
  			tcharptr->xOffset = 0;

--- 2216,2222 -----
          for (i = FIRSTFNTCHAR; i <= LASTFNTCHAR; i++) {
  #endif
  			tcharptr = &(tfontptr->ch[i]);
+ #ifdef USEPXL
  			tcharptr->width = 0;
  			tcharptr->height = 0;
  			tcharptr->xOffset = 0;
***************
*** 2112,2117
  			tcharptr->height = 0;
  			tcharptr->xOffset = 0;
  			tcharptr->yOffset = 0;
  			tcharptr->where.isloaded = FALSE;
  			tcharptr->where.address.fileOffset = NONEXISTANT;
  			tcharptr->tfmw = 0;

--- 2221,2227 -----
  			tcharptr->height = 0;
  			tcharptr->xOffset = 0;
  			tcharptr->yOffset = 0;
+ #endif
  			tcharptr->where.isloaded = FALSE;
  			tcharptr->where.address.fileOffset = NONEXISTANT;
  			tcharptr->tfmw = 0;
***************
*** 2116,2121
  			tcharptr->where.address.fileOffset = NONEXISTANT;
  			tcharptr->tfmw = 0;
  		}
  		return;
  	}
  	t = (long) NoSignExtend(pxlfp, 1);

--- 2226,2232 -----
  			tcharptr->where.address.fileOffset = NONEXISTANT;
  			tcharptr->tfmw = 0;
  		}
+ #ifdef USEPXL
  		return;
  	}
  	t = (long) NoSignExtend(pxlfp, 1);
***************
*** 2159,2165
  		else
  			fseek(pxlfp, (long) NoSignExtend(pxlfp, 4) , 0);
       
! 		for (i = FIRSTPXLCHAR; i <= LASTPXLCHAR; i++) {
  			tcharptr = &(tfontptr->ch[i]);
  			tcharptr->width =
  			    (unsigned short) NoSignExtend(pxlfp, 2);

--- 2270,2276 -----
  		else
  			fseek(pxlfp, (long) NoSignExtend(pxlfp, 4) , 0);
       
! 		for (i = FIRSTFNTCHAR; i <= LASTFNTCHAR; i++) {
  			tcharptr = &(tfontptr->ch[i]);
  			tcharptr->width =
  			    (unsigned short) NoSignExtend(pxlfp, 2);
***************
*** 2194,2200
  		long    hppp, vppp, pkloc, packet_length, temp;
  		int     car, ii;
       
! 		for (i = FIRSTPXLCHAR; i <= LASTPXLCHAR; i++) {
  			tcharptr = &(tfontptr->ch[i]);
  			tcharptr->width = 0;
  			tcharptr->height = 0;

--- 2305,2311 -----
  		long    hppp, vppp, pkloc, packet_length, temp;
  		int     car, ii;
       
! 		for (i = FIRSTFNTCHAR; i <= LASTFNTCHAR; i++) {
  			tcharptr = &(tfontptr->ch[i]);
  			tcharptr->width = 0;
  			tcharptr->height = 0;
***************
*** 2212,2218
  			     1);
  #ifdef DEBUG
  			if (Debug)
! 				fprintf(stdout, "%c", flag_byte ) ;
  #endif
  		}
  #ifdef DEBUG

--- 2323,2329 -----
  			     1);
  #ifdef DEBUG
  			if (Debug)
! 				fprintf(stderr, "%c", flag_byte ) ;
  #endif
  		}
  #ifdef DEBUG
***************
*** 2217,2223
  		}
  #ifdef DEBUG
  		if (Debug)
! 			fprintf(stdout, "\n");
  #endif
  		pkloc = 3 + (int)temp_byte;
       

--- 2328,2334 -----
  		}
  #ifdef DEBUG
  		if (Debug)
! 			fprintf(stderr, "\n");
  #endif
  		pkloc = 3 + (int)temp_byte;
       
***************
*** 2246,2252
  			   "\7\7\7  This PK-Packet type is NOT IMPLEMENTED!\n");
  			} else if (flag_byte & 4) {
       
! 		/*fprintf(stdout,"Read extended short character preamble\n");*/
       
  				packet_length = ((long) flag_byte & 3) *
  				    65536l +

--- 2357,2363 -----
  			   "\7\7\7  This PK-Packet type is NOT IMPLEMENTED!\n");
  			} else if (flag_byte & 4) {
       
! 		/*fprintf(stderr,"Read extended short character preamble\n");*/
       
  				packet_length = ((long) flag_byte & 3) *
  				    65536l +
***************
*** 2276,2282
  				    (short) SignExtend(pxlfp, 2);
  				tcharptr ->where.isloaded = FALSE;
  			} else {
! /*               fprintf(stdout,"<Read short character preamble@>\n");*/
  				packet_length = ((long)flag_byte & 3) *
  				    256 +
  				    NoSignExtend(pxlfp, 1) ;

--- 2387,2393 -----
  				    (short) SignExtend(pxlfp, 2);
  				tcharptr ->where.isloaded = FALSE;
  			} else {
! /*               fprintf(stderr,"<Read short character preamble@>\n");*/
  				packet_length = ((long)flag_byte & 3) *
  				    256 +
  				    NoSignExtend(pxlfp, 1) ;
***************
*** 2321,2327
       
  			tcharptr->flag_byte = flag_byte;
  			fseek(pxlfp, (long) pkloc, 0);
! 			/*fprintf(stdout,"new pkloc is %ld\n",pkloc);*/
  			flag_byte = skip_specials(&pkloc);
       
  		} /* end of while */

--- 2432,2438 -----
       
  			tcharptr->flag_byte = flag_byte;
  			fseek(pxlfp, (long) pkloc, 0);
! 			/*fprintf(stderr,"new pkloc is %ld\n",pkloc);*/
  			flag_byte = skip_specials(&pkloc);
       
  		} /* end of while */
***************
*** 2326,2332
       
  		} /* end of while */
       
!      
  /*****************************************************************************/
  /*if (tcharptr->charsize==LARGE_SIZE)                                         */
  /*     printf("%d:\t <%c> w=%d h=%d xO=%d yO=%d tfmw=%ld cw=%ld %d\n",      */

--- 2437,2461 -----
       
  		} /* end of while */
       
! #else
!     if ( pxlfp == NO_FILE )                /* allow missing pxl files */
!         return;
! 
!     gfin = pxlfp;
!     seekpost();
!     readpost();
!     if ((tfontptr->c != 0) && (checksum != 0) && (tfontptr->c != checksum))
! 	Warning("font = \"%s\",\n-->font checksum = %d,\n-->dvi checksum = %d",
! 	        tfontptr->name, tfontptr->c, checksum);
! 
!     for(i=FIRSTFNTCHAR; i<=LASTFNTCHAR; i++) {
! 	if (char_exists[i]) {
! 	    tcharptr = &(tfontptr->ch[i]);
! 	    tcharptr->tfmw = ((float)tfm_wd[i]*(float)tfontptr->s) /
! 	        (float)(1<<20);
! 	    tcharptr->where.address.fileOffset = char_pointer[i];
! 	}
! #endif     
  /*****************************************************************************/
  /*if (tcharptr->charsize==LARGE_SIZE)                                         */
  /*     printf("%d:\t <%c> w=%d h=%d xO=%d yO=%d tfmw=%ld cw=%ld %d\n",      */
***************
*** 2355,2361
  			case 242:
  			case 243 :
  				 {
! 		  /*fprintf(stdout,"flagbyte = %d\n",(int)flag_byte);*/
  					i = 0 ;
  					for (j = 240; j <= (long)flag_byte;
  					    j++) {

--- 2484,2490 -----
  			case 242:
  			case 243 :
  				 {
! 		  /*fprintf(stderr,"flagbyte = %d\n",(int)flag_byte);*/
  					i = 0 ;
  					for (j = 240; j <= (long)flag_byte;
  					    j++) {
***************
*** 2416,2422
  		Fatal ("POST missing at head of postamble");
  #ifdef DEBUG
  	if (Debug)
! 		printf("got POST command\n");
  #endif
  	ppagep = NoSignExtend(dvifp, 4);
  	num = NoSignExtend(dvifp, 4);

--- 2545,2551 -----
  		Fatal ("POST missing at head of postamble");
  #ifdef DEBUG
  	if (Debug)
! 		fprintf(stderr,"got POST command\n");
  #endif
  	ppagep = NoSignExtend(dvifp, 4);
  	num = NoSignExtend(dvifp, 4);
***************
*** 2437,2443
  					 /* the DVI file */
  #ifdef DEBUG
  	if (Debug)
! 		printf("now reading font defs");
  #endif
  	if (load)
  		GetFontDef ();

--- 2566,2572 -----
  					 /* the DVI file */
  #ifdef DEBUG
  	if (Debug)
! 		fprintf(stderr,"now reading font defs");
  #endif
  	if (load)
  		GetFontDef ();
***************
*** 2461,2467
  		ptr->where.isloaded = TRUE;
  		return;
  	}
!      
  	OpenFontFile();
  	fseek(pxlfp, ptr->where.address.fileOffset, 0);
       

--- 2590,2596 -----
  		ptr->where.isloaded = TRUE;
  		return;
  	}
! 	
  	OpenFontFile();
  
  #ifdef DEBUG
***************
*** 2463,2468
  	}
       
  	OpenFontFile();
  	fseek(pxlfp, ptr->where.address.fileOffset, 0);
       
  	/***************************************************/

--- 2592,2605 -----
  	}
  	
  	OpenFontFile();
+ 
+ #ifdef DEBUG
+ 	if (Debug)
+ 	  fprintf(stderr, "LoadAChar: <%c> from file at pos %ld\n",
+ 		  (char)c,ptr->where.address.fileOffset);
+ #endif
+ 	
+ #ifdef USEPXL
  	fseek(pxlfp, ptr->where.address.fileOffset, 0);
       
  	if (fontptr->id == pk89) {
***************
*** 2465,2475
  	OpenFontFile();
  	fseek(pxlfp, ptr->where.address.fileOffset, 0);
       
- 	/***************************************************/
- 	/*printf("LoadAChar: <%c> from file at pos %ld\n", */
- 	/*    (char)c,ptr->where.address.fileOffset);      */
- 	/***************************************************/
-      
  	if (fontptr->id == pk89) {
  #ifdef PARANOIA
  		unsigned char   temp;

--- 2602,2607 -----
  #ifdef USEPXL
  	fseek(pxlfp, ptr->where.address.fileOffset, 0);
       
  	if (fontptr->id == pk89) {
  #ifdef PARANOIA
  		unsigned char   temp;
***************
*** 2474,2480
  #ifdef PARANOIA
  		unsigned char   temp;
  		temp = (unsigned short) NoSignExtend(pxlfp, 1);
!      
  		if ((int)ptr->flag_byte != (int)temp)
  			) {
  				Fatal("oh boy! old flag %d, new flag %d\n",

--- 2606,2612 -----
  #ifdef PARANOIA
  		unsigned char   temp;
  		temp = (unsigned short) NoSignExtend(pxlfp, 1);
! 		
  		if ((int)ptr->flag_byte != (int)temp)
  			) {
  				Fatal("oh boy! old flag %d, new flag %d\n",
***************
*** 2490,2496
  				* 256 + NoSignExtend(pxlfp, 1) - 8;
  			fseek(pxlfp, ptr->where.address.fileOffset + 10, 0);
  		}
! 	} else if (fontptr->id == id1002)
  		bytes =  ((( (long)ptr->width + 7) >> 3) * (long) ptr->height);
  	else if (fontptr->id == id1001)
  		bytes =  4 * (((long)ptr->width + 31) >> 5) * (long)ptr->height;

--- 2622,2628 -----
  				* 256 + NoSignExtend(pxlfp, 1) - 8;
  			fseek(pxlfp, ptr->where.address.fileOffset + 10, 0);
  		}
!         } else if (fontptr->id == id1002)
  		bytes =  ((( (long)ptr->width + 7) >> 3) * (long) ptr->height);
  	else if (fontptr->id == id1001)
  		bytes =  4 * (((long)ptr->width + 31) >> 5) * (long)ptr->height;
***************
*** 2494,2499
  		bytes =  ((( (long)ptr->width + 7) >> 3) * (long) ptr->height);
  	else if (fontptr->id == id1001)
  		bytes =  4 * (((long)ptr->width + 31) >> 5) * (long)ptr->height;
       
       
  	if (bytes > HUGE_CHAR_PATTERN) { /* do NOT load Huge characters */

--- 2626,2632 -----
  		bytes =  ((( (long)ptr->width + 7) >> 3) * (long) ptr->height);
  	else if (fontptr->id == id1001)
  		bytes =  4 * (((long)ptr->width + 31) >> 5) * (long)ptr->height;
+ 
       
  	if (bytes > HUGE_CHAR_PATTERN) { /* do NOT load Huge characters */
  		qfprintf(stderr,"Huge Character <%c> (%ld Bytes)\n", (char)c, bytes);
***************
*** 2495,2501
  	else if (fontptr->id == id1001)
  		bytes =  4 * (((long)ptr->width + 31) >> 5) * (long)ptr->height;
       
-      
  	if (bytes > HUGE_CHAR_PATTERN) { /* do NOT load Huge characters */
  		qprintf("Huge Character <%c> (%ld Bytes)\n", (char)c, bytes);
  		ptr->charsize = HUGE_SIZE;

--- 2628,2633 -----
  		bytes =  4 * (((long)ptr->width + 31) >> 5) * (long)ptr->height;
  
       
  	if (bytes > HUGE_CHAR_PATTERN) { /* do NOT load Huge characters */
  		qfprintf(stderr,"Huge Character <%c> (%ld Bytes)\n", (char)c, bytes);
  		ptr->charsize = HUGE_SIZE;
***************
*** 2497,2503
       
       
  	if (bytes > HUGE_CHAR_PATTERN) { /* do NOT load Huge characters */
! 		qprintf("Huge Character <%c> (%ld Bytes)\n", (char)c, bytes);
  		ptr->charsize = HUGE_SIZE;
  		ptr->where.isloaded = FALSE;
  	} else {

--- 2629,2635 -----
  
       
  	if (bytes > HUGE_CHAR_PATTERN) { /* do NOT load Huge characters */
! 		qfprintf(stderr,"Huge Character <%c> (%ld Bytes)\n", (char)c, bytes);
  		ptr->charsize = HUGE_SIZE;
  		ptr->where.isloaded = FALSE;
  	} else {
***************
*** 2505,2515
  			Fatal("Unable to allocate %ld bytes for char <%c>\n",
  					     bytes, (char)c);
  #ifdef DEBUG
! 		/* if (Debug) */
! 		printf(
! 		  "Allocating Char <%c>, FileOffset=%lX, Bytes=%ld (%d) <%d>\n",
! 		    (char) c, ptr->where.address.fileOffset, bytes,
! 		    (int)bytes, (unsigned int)bytes);
  #endif
  		allocated_storage += bytes;
  		fread(pr, 1, (int) bytes , pxlfp);

--- 2637,2647 -----
  			Fatal("Unable to allocate %ld bytes for char <%c>\n",
  					     bytes, (char)c);
  #ifdef DEBUG
! 		if (Debug)
! 		  fprintf(stderr,
! 			  "Allocating Char <%c>, FileOffset=%lX, Bytes=%ld (%d) <%d>\n",
! 			  (char) c, ptr->where.address.fileOffset, bytes,
! 			  (int)bytes, (unsigned int)bytes);
  #endif
  		allocated_storage += bytes;
  		fread(pr, 1, (int) bytes , pxlfp);
***************
*** 2515,2521
  		fread(pr, 1, (int) bytes , pxlfp);
  		ptr->where.address.pixptr = pr;
  	}
!      
  	ptr->where.isloaded = TRUE;
  	if ((ptr->charsize != SMALL_SIZE)
  #ifdef LJ

--- 2647,2659 -----
  		fread(pr, 1, (int) bytes , pxlfp);
  		ptr->where.address.pixptr = pr;
  	}
! #else
!     fseek(gfin, ptr->where.address.fileOffset, 0);
!     gettochar();
!     readbits();
!     if (num_bytes > HUGE_CHAR_PATTERN)
!       ptr->charsize = HUGE_SIZE;
! #endif     
  	ptr->where.isloaded = TRUE;
  	if ((ptr->charsize != SMALL_SIZE)
  #ifdef LJ
***************
*** 2524,2529
  	   )
  		return;
  	EmitChar(c, ptr);
  	/* we should really free the space used by the PXL data after this
  	   point, but it is not large, and besides, we may want to be
  	   more clever in the future, about sending bitmaps.  So keep

--- 2662,2668 -----
  	   )
  		return;
  	EmitChar(c, ptr);
+ #ifdef USEPXL
  	/* we should really free the space used by the PXL data after this
  	   point, but it is not large, and besides, we may want to be
  	   more clever in the future, about sending bitmaps.  So keep
***************
*** 2528,2533
  	   point, but it is not large, and besides, we may want to be
  	   more clever in the future, about sending bitmaps.  So keep
  	   the data around */
  }
  /*-->SetChar*/
  /**********************************************************************/

--- 2667,2673 -----
  	   point, but it is not large, and besides, we may want to be
  	   more clever in the future, about sending bitmaps.  So keep
  	   the data around */
+ #endif
  }
  /*-->SetChar*/
  /**********************************************************************/
***************
*** 2552,2558
  	if (do_posn) {
  #ifdef IBM3812
  	    if (CharStringPos>0) {
! 		    printf("!!!! That should never happen!!!\n");
  		    CharStringOut;
  	    }
  #endif

--- 2692,2698 -----
  	if (do_posn) {
  #ifdef IBM3812
  	    if (CharStringPos>0) {
! 		    fprintf(stderr,"!!!! That should never happen!!!\n");
  		    CharStringOut;
  	    }
  #endif
***************
*** 2586,2591
  			if (!do_posn)
  				SetPosn(h, v);
  			sign = '+';
  			tmp = (int) -ptr->yOffset;
  			if (tmp < 0)
  				sign = '-', tmp = -tmp;

--- 2726,2732 -----
  			if (!do_posn)
  				SetPosn(h, v);
  			sign = '+';
+ #ifdef USEPXL
  			tmp = (int) -ptr->yOffset;
  #else
  			tmp = (int) num_rows-y_offset;
***************
*** 2587,2592
  				SetPosn(h, v);
  			sign = '+';
  			tmp = (int) -ptr->yOffset;
  			if (tmp < 0)
  				sign = '-', tmp = -tmp;
  			EMIT(outfp, "\033*p%c%dY", sign, tmp);

--- 2728,2736 -----
  			sign = '+';
  #ifdef USEPXL
  			tmp = (int) -ptr->yOffset;
+ #else
+ 			tmp = (int) num_rows-y_offset;
+ #endif
  			if (tmp < 0)
  				sign = '-', tmp = -tmp;
  			EMIT(outfp, "\033*p%c%dY", sign, tmp);
***************
*** 2591,2596
  				sign = '-', tmp = -tmp;
  			EMIT(outfp, "\033*p%c%dY", sign, tmp);
  			sign = '+';
  			tmp = (int) -ptr->xOffset;
  			if (tmp < 0)
  				sign = '-', tmp = -tmp;

--- 2735,2741 -----
  				sign = '-', tmp = -tmp;
  			EMIT(outfp, "\033*p%c%dY", sign, tmp);
  			sign = '+';
+ #ifdef USEPXL
  			tmp = (int) -ptr->xOffset;
  #else
  			tmp = (int) -x_offset;
***************
*** 2592,2597
  			EMIT(outfp, "\033*p%c%dY", sign, tmp);
  			sign = '+';
  			tmp = (int) -ptr->xOffset;
  			if (tmp < 0)
  				sign = '-', tmp = -tmp;
  			EMIT(outfp, "\033*p%c%dX", sign, tmp);

--- 2737,2745 -----
  			sign = '+';
  #ifdef USEPXL
  			tmp = (int) -ptr->xOffset;
+ #else
+ 			tmp = (int) -x_offset;
+ #endif
  			if (tmp < 0)
  				sign = '-', tmp = -tmp;
  			EMIT(outfp, "\033*p%c%dX", sign, tmp);
***************
*** 2603,2608
  			pos_after = TRUE;
  		} else {
  #ifdef IBM3812
  			if ( ptr->yyOffset || (!in_string) ) {
  				CharStringOut;
  				MoveVert(ptr->yyOffset);

--- 2751,2757 -----
  			pos_after = TRUE;
  		} else {
  #ifdef IBM3812
+ #ifdef USEPXL
  			if ( ptr->yyOffset || (!in_string) ) {
  				CharStringOut;
  				MoveVert(ptr->yyOffset);
***************
*** 2610,2615
  				PMPout(2, PMPformat);
  				MoveVert((int)-(ptr->yyOffset));
  			} else {
  				if (CharStringPos==CHARSTRINGMAX)
  					CharStringOut;
       

--- 2759,2765 -----
  				PMPout(2, PMPformat);
  				MoveVert((int)-(ptr->yyOffset));
  			} else {
+ #endif
  				if (CharStringPos==CHARSTRINGMAX)
  					CharStringOut;
       
***************
*** 2615,2620
       
  				CharString[CharStringPos]=VisChar((char)c);
  				CharStringPos++;
  			}
  #endif
  #ifdef LJ

--- 2765,2771 -----
       
  				CharString[CharStringPos]=VisChar((char)c);
  				CharStringPos++;
+ #ifdef USEPXL
  			}
  #endif
  #endif
***************
*** 2617,2622
  				CharStringPos++;
  			}
  #endif
  #ifdef LJ
  			if (ptr->yyOffset) {
  				EMIT(outfp, "\033*p+%hdY", ptr->yyOffset);

--- 2768,2774 -----
  #ifdef USEPXL
  			}
  #endif
+ #endif
  #ifdef LJ
  #ifdef USEPXL
  			if (ptr->yyOffset) {
***************
*** 2618,2623
  			}
  #endif
  #ifdef LJ
  			if (ptr->yyOffset) {
  				EMIT(outfp, "\033*p+%hdY", ptr->yyOffset);
  				EMITC((char) VisChar((char)c));

--- 2770,2776 -----
  #endif
  #endif
  #ifdef LJ
+ #ifdef USEPXL
  			if (ptr->yyOffset) {
  				EMIT(outfp, "\033*p+%hdY", ptr->yyOffset);
  				EMITC((char) VisChar((char)c));
***************
*** 2623,2628
  				EMITC((char) VisChar((char)c));
  				EMIT(outfp, "\033*p-%hdY", ptr->yyOffset);
  			} else
  				EMITC((char) VisChar((char)c));
  #endif
  		}

--- 2776,2782 -----
  				EMITC((char) VisChar((char)c));
  				EMIT(outfp, "\033*p-%hdY", ptr->yyOffset);
  			} else
+ #endif
  				EMITC((char) VisChar((char)c));
  #endif
  		}
***************
*** 2676,2682
  			;
  #ifdef LJ
  			if (++fonts_used_on_this_page > MAX_FONTS_PER_PAGE) {
! 			   qprintf("this is the %d. font on this page!",
  				       fonts_used_on_this_page);
  			   qprintf(" (max = %d) rastering characters!\n",
  				       MAX_FONTS_PER_PAGE);

--- 2830,2836 -----
  			;
  #ifdef LJ
  			if (++fonts_used_on_this_page > MAX_FONTS_PER_PAGE) {
! 			   qfprintf(stderr,"this is the %d. font on this page!",
  				       fonts_used_on_this_page);
  			   qfprintf(stderr," (max = %d) rastering characters!\n",
  				       MAX_FONTS_PER_PAGE);
***************
*** 2678,2684
  			if (++fonts_used_on_this_page > MAX_FONTS_PER_PAGE) {
  			   qprintf("this is the %d. font on this page!",
  				       fonts_used_on_this_page);
! 			   qprintf(" (max = %d) rastering characters!\n",
  				       MAX_FONTS_PER_PAGE);
  			   rasterfont[fontptr->plusid] = TRUE;
  			}

--- 2832,2838 -----
  			if (++fonts_used_on_this_page > MAX_FONTS_PER_PAGE) {
  			   qfprintf(stderr,"this is the %d. font on this page!",
  				       fonts_used_on_this_page);
! 			   qfprintf(stderr," (max = %d) rastering characters!\n",
  				       MAX_FONTS_PER_PAGE);
  			   rasterfont[fontptr->plusid] = TRUE;
  			}
***************
*** 2803,2809
       
  #ifdef DEBUG
  		if (Debug)
! 			printf("Rule xx=%ld, yy=%ld\n", xx, yy);
  #endif
       
  #ifdef IBM3812

--- 2957,2963 -----
       
  #ifdef DEBUG
  		if (Debug)
! 			fprintf(stderr,"Rule xx=%ld, yy=%ld\n", xx, yy);
  #endif
       
  #ifdef IBM3812
***************
*** 2903,2909
  	short   c;
  	register unsigned short i;
       
! /* printf("SetString\n"); */
  	for (i = 0, c = firstch; c >= SETC_000 && c <= SETC_127; i++) {
  		SetChar((long)c,  c, PassNo, (bool)(i==0),TRUE);
  		c = (short) NoSignExtend(dvifp, 1);

--- 3057,3066 -----
  	short   c;
  	register unsigned short i;
       
! #ifdef DEBUG
! 	if (Debug)
! 	  fprintf(stderr, "SetString ");
! #endif
  	for (i = 0, c = firstch; c >= SETC_000 && c <= SETC_127; i++) {
  #ifdef DEBUG
  		if (Debug)
***************
*** 2905,2910
       
  /* printf("SetString\n"); */
  	for (i = 0, c = firstch; c >= SETC_000 && c <= SETC_127; i++) {
  		SetChar((long)c,  c, PassNo, (bool)(i==0),TRUE);
  		c = (short) NoSignExtend(dvifp, 1);
  	}

--- 3062,3071 -----
  	  fprintf(stderr, "SetString ");
  #endif
  	for (i = 0, c = firstch; c >= SETC_000 && c <= SETC_127; i++) {
+ #ifdef DEBUG
+ 		if (Debug)
+ 		  fprintf (stderr, "%d ", c);
+ #endif
  		SetChar((long)c,  c, PassNo, (bool)(i==0),TRUE);
  		c = (short) NoSignExtend(dvifp, 1);
  	}
***************
*** 2912,2918
  #ifdef IBM3812
  	CharStringOut;
  #endif
! /* printf("...SetString\n");*/
  }
       
       

--- 3073,3082 -----
  #ifdef IBM3812
  	CharStringOut;
  #endif
! #ifdef DEBUG
! 	if (Debug)
! 	  fprintf(stderr, "...SetString\n");
! #endif
  }
       
       
***************
*** 2942,2948
  	x >>= 32 - 8 * n1; /* sign extend */
  #ifdef DEBUG
  	if (Debug)
! 		printf("\tSignExtend(fp,%d)=%X\n", n1, x);
  #endif
  	return(x);
  }

--- 3106,3112 -----
  	x >>= 32 - 8 * n1; /* sign extend */
  #ifdef DEBUG
  	if (Debug)
! 		fprintf(stderr,"\tSignExtend(fp,%d)=%X\n", n1, x);
  #endif
  	return(x);
  }
***************
*** 2981,2989
  	if ( G_nowarn || G_quiet )
  		return;
       
! 	printf("warning : ");
! 	printf(fmt, a, b, c, d);
! 	printf("\n");
  }
       
       

--- 3145,3153 -----
  	if ( G_nowarn || G_quiet )
  		return;
       
! 	fprintf(stderr, "warning : ");
! 	fprintf(stderr, fmt, a, b, c, d);
! 	fprintf(stderr, "\n");
  }
       
       
***************
*** 3133,3138
       
  #endif
       
  bool getbit ();
  unsigned char   getnyb ();
  long    pk_packed_num ();

--- 3297,3303 -----
       
  #endif
       
+ #ifdef USEPXL
  bool getbit ();
  unsigned char   getnyb ();
  long    pk_packed_num ();
***************
*** 3406,3411
  		return (pk_packed_num()) ;    /* tail end recursion !! */
  	}
  }
       
       
  /*-->FormFeed*/

--- 3571,3577 -----
  		return (pk_packed_num()) ;    /* tail end recursion !! */
  	}
  }
+ #endif     
       
  /*-->FormFeed*/
  /**********************************************************************/
***************
*** 3407,3413
  	}
  }
       
-      
  /*-->FormFeed*/
  /**********************************************************************/
  /*****************************  FormFeed ******************************/

--- 3573,3578 -----
  }
  #endif     
       
  /*-->FormFeed*/
  /**********************************************************************/
  /*****************************  FormFeed ******************************/
***************
*** 3436,3438
  }
  
  

--- 3601,3610 -----
  }
  
  
+ #ifndef USEPXL
+ void bad_gf(n)
+ 	int n;
+ {
+ 	Fatal("Bad gf file, case %d\n",n);	/* See gf.c */
+ }
+ #endif