Return to BSD News archive
Path: sserve!manuel!munnari.oz.au!network.ucsd.edu!pacbell.com!charon.amdahl.com!amdahl!JUTS!phoenix!gpw10 From: gpw10@phoenixcd.amdahl.com (Gary Ward) Newsgroups: comp.unix.bsd Subject: Re: How to get parallel printer to work ? Keywords: parallel printer 386bsd lpt1 Message-ID: <66YV02cj24MG01@JUTS.ccc.amdahl.com> Date: 1 Oct 92 18:08:12 GMT References: <BvEp92.91@news.cso.uiuc.edu> Sender: netnews@ccc.amdahl.com Organization: Amdahl Corporation, Sunnyvale CA Lines: 264 Since this has been coming up a lot, I thought I would post this rather than replying by E-mail. Perhaps this information should be added to the FAQ? (There is no reference to it in the latest version I have.) The lpt (parallel port) driver is not configured into the kernel by default. This must be added and the kernel rebuilt before the device will be accessable. In addition, the original driver appears to have problems. Some people have reported being able to get it to work, I was unable to. An alternate driver was posted to comp.unix.bsd a while back. That driver, and the associated articles are included below. This driver has been working very well for me. I also have a HP DeskJet 500. This printer expects <CR><LF> at the end of each line. I provided a simple output filter to add the needed <CR> characters and it would then print text fine. Unfortunately doing this screws up graphics printing. I therefore invented another logical printer which does not filter and dump all my graphics to it. The better solution would be to implement a filter which recognizes the graphics escape sequences and suppresses insertion of <CR>s while in graphics mode, but I haven't gotten around to writing it yet. Following are my /etc/printcap file and the source for the output filter. Note that my printcap file also suppresses burst pages (sh option). For a single user system, they were a waste of paper. If you have multiple users, you may want this enabled. Note that the printcap file and filter programs are specific to my printer. If you have a different printer, they may not work, or may even screw you up. The lpt driver should not be printer specific. ---------------------------------------------------------------------- # @(#)printcap 5.3 (Berkeley) 6/30/90 lp|local line printer:\ :lp=/dev/lp:sd=/var/spool/lpd:lf=/var/log/lpd-errs:sh:of=/usr/local/bin/ /lpr_filter: lpnf|local line printer NO FILTER:\ :lp=/dev/lp:sd=/var/spool/lpd:lf=/var/log/lpd-errs:sh: ---------------------------------------------------------------------- #include <stdio.h> #define CR 13 main() { int c; while ( (c = getchar()) != EOF ) { switch ( c ) { case '\n': putchar(CR); /* fall through */ default: putchar(c); } } return(0); } ---------------------------------------------------------------------- From: wolf@dentaro.GUN.de (Wolfgang Stanglmeier) Newsgroups: comp.unix.bsd Subject: replacement for lpt.c without interrupts Date: 6 Sep 92 14:37:03 GMT Organization: Colognists, Germany I hacked the 386bsd LPT-driver to work without interrupts. The busy loop timeout value adapts automatically to the printer and system speed. It should be a full replacement for the standard driver. This driver keeps my printer busy without slowing down the system. [I remember the 90% system time when printing hppcl graphic files with the ix/386 lpt-driver WITH interrupts] The driver supports up to 4 printers. The minor number is interpreted as follows: D D P E - - # # DD: Debug, 00: no 01: statistical data when closing device 10: statistical data for every write call 11: lots of silly data P: Prime on open. E: Errormessage. Logs "no paper", "offline", "printer error" conditions to the console. ##: Device, 0: lpt0 1: lpt1 2: lpt2 (on display adapter) This driver uses the ideas of Piercarlo Grandis polling printer driver. ---------------------------------------------------------------------- From: ajv@xhost92.csd.mot.com Newsgroups: comp.unix.bsd Subject: Re: replacement for lpt.c without interrupts Date: 9 Sep 92 06:00:18 GMT wolf@dentaro.GUN.de (Wolfgang Stanglmeier) writes: >I hacked the 386bsd LPT-driver to work without interrupts. >The busy loop timeout value adapts automatically to >the printer and system speed. <excellent driver follows...> I was working on something very much along the same lines. However, Mr. Stanglmeier hit the nail right on the head first. I have rolled in some of my other work on handling syscall restarts, and in the process applied my BSD-kernel style of indentation. What follows is substantially the same driver, with my own minor improvements. Kudos, Mr. Stanglmeier! My printer thanks you. :-) Andy Valencia ajv@csd.mot.com (for now) jtk@netcom.com (if it bounces) ----------------------------------------------------------------------- begin 644 lpt.c.Z M'YV0+U0H *$"Q) W</+(27,T0*,:D !$C1PX8(*ZD8<,F39@V((RX *'D M34<Z>EB H%*&39DF=>:4&5@P"$<0"QO2F8.SC$PY=LJ0<4&3)@@I0M/,H;-0 M3!TZ:=ZX 1'D0,<N 2#-USILZ<L9HK7I5#-<P<O* ,/-&3ILY*N^DH8,& M1%L0<NE^I6.TS1LR:<RD&1,&JE25:+7"*>-V+AVA(.#(>6,G#1G(= N#H*N5 M+<<W<MV< 3%&*F##;N8830RB31DZ.HS&&(D4\-*F3Z.FMFL&A%>P8DG_U=HF MYD,YK\-PW8QFK!C*6DLGS.G0*(CK;MY %:N2KE(0'9?R%FYUKFZ>9)EW-LD& M--?1ML>P4>Y:#E&"(&303GH[C5/4/"UGEAMHJ<666ZT9UY-D?]41'&=4/1>4 M<-,Q5!U^UX&0W79E=(?&=^$]]$9OI94'(%56J;<6>^Z)!D)\\Z51WU93<6;= M=62\,48=KKE!1V&ZH4C&"W=IUYP<K17&F$=L\,1@99==E5==$-K&E'^Y275? M03.,9!,;5)$1E!Q0S?%>DH\M%$:3K97AHVYGFE%&86#Y9!>268WG'4]>F4'' M'8G=F*!XML$QGUH0>M9>:*.%,<8:V=WA$AEGE-$C;#=2\2&?(_[)VG=A"-<& M'%*Y*6)O(LR @PU"3$&$""^6$51[BY6EUHT:<>012"*19-)<*:W4TDM9;0D" M#2,Y4<9<1ZI(H&MZ-A?KK @QIN%=$#ZK5:JKMOJJH&V$H9886F5U%1UO@.!F MCG+(=&=DD_GU&+P-CK%3K L%=949\3+W79^>(B?HE'OYMM@8@0T&;U1(WK$0 M'8]-M5AC<YBI95'X48%$$E. ,,431E!Q11!2% $"QR $8= 334#QA!-%.$$% M"""#H"JKKH) 1!%6%,'$$U 4000(0F2141),,)%$$$V$-)(23RA-A18@&!6$ M$T.CG(3,,>\\M!%/2'%4$5,40?(02*2,-0A"5S%$$%0D\7(03( 1152N%QV MQR\SD<5(&J-LU,<ACURRQT@\40430SOQQ,Q"F#S$RU,DL7/)0U/Q!-$FJSQY M$TT4(<402]<-A11/$.$V%2,9I;')._?\<]!BXWT$V2LA 3<(590M1<=7)#YV M%%4D<;CG+(<^>NEVHZ[Z$#,;Y?C,302QA,F]FUQSX,"'O<261H%=N^_ "W\% MQVEKSCO6HD]!Q=69(V'RS=YZG(7[130=N\] "VU4T4=+VM*:UBNH24T+*KF" MR4KVN="M[76\\YW'J% %(ACM"E)( A6H$+.JX:=D1A!=S(: NRFX+6U!Z!@$ M02 "ETDA;DXXPOJ2@(65; Z"-X.5[Y* .Z.@(')'V)H3MB9#)5RM"B0S6D5R M$ ,6$D$*(R'"$X30*I(H3@I.H)L(5-([E<&/<T%TPA!CZ,&"**$*,*.(19HH M C32$ 35.T(0M+"U+8+@=E*HGA.R,!$ GD^ 3'.:%0^HMJ$9Q6]B--D12B:Z M06H0@2D#GL_JED*:O4YL0GC"$Y; -R?,L(9?A*!17M8"I:61?CG+GMCTB,2Z M14Y\V"N;EXBFR27HC&-#Z%WER C!K7$0BW3KV"B-8+-NY2QF<:,"$X3&0E1^ M#75-ZZ43*K<SFE6!"K#ZHRL[9X4@("T(0E@F")@ -Y,M43\8*PCW/ 8RD9', M9"@[W1.L8#EF A""^YM=(\$ ADIR[ 0G**35]L@V+)R.;'P36Q):IC1F&DX* M5XL;V52RM2$PH8)$5(D0K@F"Z8USH1IDIN94\CJC+!0*#1W:0R/*0[X14WEH MBR@XD:9!HWW1"!J$V10Z)KZ4V8UD<<LE.<5VM[P]H6Q6.QP1<$G.A0IM)"?S MI./8UC.9(8YN=<,GS_A'.\Y]%)S+#%_8U&:TI3*0"A3%FO&* +VTDFYG,J.; M2J80--+)M:#Y0VD253+6R4VS",1#9NF,0@2F!>%V'4-!12^ZU!AJE*,>55H3 M0IJY)ZA$GKDLF0-G5C,3MBJ9UU2D)HDPA5&*S7?T).$4=C#.H[HT@D5026'? MQU>BH@ZG5%@MS3#9NZTA-*J_E$(5H!"WEZ7 *(E38,_$]K;L#>V++R-K[HH0 M-J/53&DSE5H6$BB_2T9U93*#:%LGF$'H'7)I0J I%;:[6QN^$"*+Q2@9878$ MI=W."21L[^/D)X7SE6TB).,8$;][M0L&(0NCY.CVY =;FA%SG81S9\E4LE5/ M)H&802 "/<LVM 6;3&^52Z]V'3RX$^K,L+<#'T%>H %!(2PLAJ,5HB0+VL= M*&4S@P-:UN02,$F&*VF*3%OX@I\K/"QB(!"#6G+5D8_XZB1ZH(@,7A #'+S@ M(D9IPE\2AIETR:$.4R'84VB4IB_#82=&R8$,6@ #'+2@(M>Y@DG,<(:JC&8* M/Q(-&UR3!FN!@ =WF#,0+N,CM+S!!4= HPLNXX/!=40GI'%)5>H !R'UI"UU M=D,:] "DPVPF+9M)%QK(XI*>+ 4MC[G*'/(P!\)P1#7X43.;<\!F'%PG"%91 MBQ76Y":$A8H':J##&H#@AM>4I@TN.':C5]SB$7!%/G6X# O9<&87H$$$"G!V M;YS !.*"P <@@$&SG\V&:&]+QW+XB+6Q[6PW0%O:(G"*&=:=;7*;FX6K7@JR MKUUO=Y<;WE&Q%QOHW>YW;PMB>2"XO>'-H#$HW-_W%D%6[,/O@O][6W6(RL,- MSL(U,*;8 Z_XPK<5KL\XG-_]YK@(TG"S%R@E#"Z?0QB^<)G*B&7C%V<ARU<5 M<YA3FREE. .]75P0(']\35B1R;[F<P:>J(#%([B,8(J=H?YY,D-81P$,\ "# M&$SD.@&9EHRWPI-J3>7IV98Z5[1RG:UI$.M9WSH,9/!U$(2]YF-?CMGI)18R MU(G91%\+TWG"KS> I U<N0O>@X/VJ)=AZFP?)W&_<#JG9DCK>) !#.H>]A]# MZ\<^LI94[+*8J5RG\6JG^G6Z384OB YU8KL.YF.P^0R%O3VC8<QDD%2BTYP' MZVA/^^/7GB'6?\$(Y#P""O P$10L?R(F"#<>S" 1X4.^^)-W(Q6>#Q'N1U_N M,SANX*&PD- C"2EA((-:>F^>T:-^^*J7_!2^L+7ES@PBW9Z_$UIE-#[(_PM9 M- 2VY']P!W?Y]P5E4S?^=X P(P52<%R.=WVK!P7S5SU38$N7QX#\!P(+2($ M& 0"R('_IS@STX'SEX BR("O!X&I%WG3\P4EDV%9@ )UYWQ<(08HT&HMX .M M]@6G1@<IX 4'6'^B0P4I8 (':(%+('YAMQ,N40:5]F-M,1=J\7X2*'F55X#= M!P5:(#I/L (X,!'^!P5O0P5H(WY !AYGQB#D0H,J\7.%\2-C@ 8TN ,*<!L. M\A#7\7(T5V-(\G-DX(<@T ,@L <_QX8=HH8_ C&.@@8J(0(_)P)]8(=$=R/2 MH183YQ?21@:%$2I EB[YIHE:(6]R(@<T 74MF"$;9025TX4%2'LR0 ,M]F(J M4!!QIAP0(R,^H0!62'S7$3>A0X*7AP9ZH (Q8 .<ITZZ6#!W\"&EMG>+IQ6] M&'\_0T9PAP+$6!!>9WO*Z!I+ 84\T8P;H15[!W?!%X&^"$=!@ 4(" 5;<QTR M4 ,UH(5A%RYX !YO@!#" 69!=F-.L6IX@8N %W;7L6L=<14'X2.3P09F<2\W MAH@@X (2R8L"48L9HBE:L2C6,H\-678D(A5,81*D0B:^@09?P09E,1,6>1W( MD7YA( :EEAX.,Q<OZ1(L0)%5LY(1*9$C\1];T1MMH!:7,0=KH :O079"=@?6 MDB-WX 8J,1>1]@9B0"[M@I/7X170TA'%!A>6!B$C^1!R<1,;DF31(16"<09U M,A16Z3'ID@1)0I3J 1)[P8NH"'^1)WE#\ 5*&'?3%P;BAX?VHH@^V"EC4(@* MD !SB!8)H (]. 9PL ,)D !AMR-R@!P^\B*=&&H+XR.+R6() &0)T)A?X2.0 M&79*]A@\$0=U4 :K>17+T8,W6 =FT)F'.0<F22:A.08TUXFE61"@%V2<^"-" MAINT&9JW20>YZ8.+V)N;&60E$I(^-F21B7;&*9V-R11LP)R_:2T_&!/#B9S% M60=?D)ARD)QF,'C,>9YAT'00L7?I871R0"!LD +A.9ZC5IX]"&9SP9SZ20<M MX 8\0I6169_DF9QS8(_,29F6^1#VF&0QH1;MH8]CP)G46:"1:9JR68HK@B3! M&0;3Z9D$ 9MN(&]VV >"V6I;P&W$U064&'9),!5FX"AT0%$:4@:0D1UDIGN4 M-J,.^A F>0>D414GHRYX8"C*,150B2[D<98@\ -.RFP_!V1R@ +]>5R?>9G] M:8=[<)AWQR-!N6(@4**S*!#X<8B3T8;'11 )0'Y2N1Y(<I]D "@" Z5K>*9E M@ *6 0=6"I@/P8?12!!YJJ49<IA@9B9G4&Q780=QH1)308@P0(F261#=Z72> MF2.&&9F! 1$KL )3X0.$2 -6&IG(00=@,15:EP*0&JF'F0#X@6=TXB1#5I(G MF9(]D7YVX09LD <W&9GXX16U2@9BX"AK )VL":KF21J,9:)*1HSP:O4F0![ M@8-YNH.6\051$:PRL0(_IYROR@);9P:;9X>1:0>#2"/22@9P0*UD8*U2&0;9 MNJV3BJJK&JUXBJ[JRJ[86@;:>F;<2JIP$:ZK"J2$>(/UFJX^4*W7ZJ[Z"J^+ M&!/RF@ F*HZEA@+D&@*$> ?RRJ4%\9P+J0,JHI%(PI%SX9'D 9U?*:MU@)*_ MFF3"RFS0^A3G:K (VZ[ORJ\<:Q+>.GUF\+ [0TXS2'L >Y@":ZX%>Z\)6[-T M,)X@N9 /FZG.!Z1>('UFL+,@$'W=EI=*.!&C6JJG"JGT.JT'NZY'N[ VN[0X M"[ )T+,'A@) ^[!#2[!@.[/YNJ])>[/S*:Y.BP)0*WUE4'M62X9ZF4)+N*I; M&Y]=>YB%ZP9L*Z]],*9& 8>,.(<T2!,)\**G=A/1>(H* +ER2(=*@:Y[RA1Y M2'8S]Z<J\+F/J0!;&IJB&YC7 :^$F2&,.0:0VFKE"J^%N0)D9Z]A^P596IMC ML(/YJ6D/,;!SP+O5^KNY*;RZV:'EBKI&2[-:H;O;VJ'BJH,\J)L_^+S'*[-B M*[T@0+W\.JG7&[S9.Y[8R;W(^[WY&KZ":;?B2J_8>YURP 8J<;4 Z'9&**Z) M"Q%>)Z:56*9G9G:3JZ;* J1[-WK1J&(%<05N:A97P6,]NA9IT"XB4GJ:^W,$ M7',JH9YG8*4U]P4/47-X>YD>K*6UV;H/ ;M^4IBS6\(CW!+BPIQSX!)GMAFZ M2",4\0+$Z!MET'LDZX0V6FG4F8:Z)Z[B29Z^\2,J\;N$2KR$:'S:AP*(EQU3 M6G,I\+"G5J[&AWR'1<6)=\6RDL606H]AK"$!*GIC-B+@(2,CVZ0NZ[3]^6V$ MJ*)&2+BO4:H0$3-8(#=:7)B$B+ONZ\21FC*1VQQ7\0-QW!LH$ +SJYOV4K\3 ML0=V5Q!C&8>-"!G/FK@HP,=^+*Z-J[%V4WY!]H]JH<A%S,B/_ 4>/ >37,FA MEB[S,2\2Z;()P,E%L%%3P$>@W&*%C 1A,"&NX1>@YH\9RABH[)FK')N]08@E MUQYC\$-5P(I)T(4JT01?$#NK>,U?,#(:M$E-J\KF*Z+R-HB.&JJX[#BATP09 M6\@O"I7;B234N<JM7*Y;['_ZB[?BS+RL/'A5*WFM5WFA,\GS"K,Y.,Z0C)TJ M@;:A7,A3,"R!&<\N*[\(C;[U>[^ FX!\@+]CI$'M''8R*9 WUI+JMY,N>V,H M<!F'T@./VE&/ X-F8T%U&"N'L@)1_#)'0-"8RL@J+2YTO!).18*OW(3YB(\N M BAS 1FU_*S+>[[U[*CB*JIY')][K,N\O*H-7<@U/,14T1J&9RJVG+>Z5ZY" M#(40T6H877F/^',>:W9V5(TY/1$6NZJ16017H#B,$TY/(( Z'9GT[,]03=?] MV\E6_; 0>Y@-'7;D!Y^_JA:U+!,/4:QJ I-V,L\57<]\0(A65[[\7!K\6*Z/ MZLN<#+"A_&+X 0<Q@0:GZ1,%K ()(&=RL :WZ2XW)J-UP&-J,0=PP!6:YB(R M^3!GLMH\H:3QK+D_.!@*@-JV*=P'';I?%I@L3 <NW&HH?*4/H=M<H1*ZUQV# M(:Y*/(=E7! 16FDW)BN,L7[W*:/6LM2>*;%:<="=/9H/ 6ZUM[J%+-'.^ZQS M6*XJ -_GZYB&O<J.&;Z$& -1+>#R#0(M4.!13='\W*$J,8?M7,A"\* !"94/ M2<K60M*./1+/BMV-BL. '&Y1[=X0\8(Q*--9?*D[K:DK .(_O<H'&@;,Q^(7 M*A #RJH%X02@X1M/" ?:/2;KEP?R,19TK>-M##&EUA[,BB03F>.V')G;0=8* MH[M3KKL&?N1C38AE#0<'G=89M-9GYK$S^1AVM!V&W>(H,-86RS9WO3A$H-=\ M;>-23:I4O>:5F>:'/:"-&YE9'7:WT::V[.#_K=!XF;]#1 4;G=$^L^AYZ3Y" M8-B$3K_V>^@=K>CXFX 3'G9!P(DW;,HM@-0K["9G0!<\&=:JO-N=2H@R;H]# M71" PB<_?N$/P=1.V^HTS@/5PXYTM36AZM<5/>-XL*E1W>>?F>I<H0(R\&>^ M$>RN;N.XC@<MT +%CMB(.]6*2]J.*\#2W1XRT=H), 3>3HY306U0106@IJ3G MF=J8*9P"<LQ(LA=;PF(_)Q]O\.T<+'CK"<*R(L+3 L/Z?@;5S:<G&KNS>[OC MF[L _0537,5MD=)C_-$%D02]P1G(<0*IN9JMV>YAT!WIGB[K;IM;4>N>2;%O M8!DIH-RJG0>HV=SA7:L<L7[C;M*JF=2^(2.&HA4ZT )?1YV3GM 7;>GZ^\?\ M_-0D?IC\8J/^3<ZRR<W:/,U$?[[,#-K,.055084N.]J,N^WB?69E?J=IZMH' MD1!KT2\3A_$..K6,X2%NTIP9[/4/<Z?YGG%OP.]VX.\DG,+/_1!T3Q!T/_ J M7/ M'*(C+LBZ*\6)#L96#/%V0,:':<25^?)&9O,%8Q*V@IIE;W@Y6ID["AGY MYFI@DLIG7=&>?9GTW==;'AFIS=RM9MA.JWN_SLFPW\NB'"[+,=XN:^+.A^"? M38B3Y0323,W6C!51L8-T_P7(829DL.*GS^($62D/47@@,7$MH-N.PG8?3OJ5 MQNH5S<Q13?=^$11+KYO,K!*\[R--'!6&G?HJS_H2$=6OG^>"C>UX+@</V^=: 0+Z8CL"Z9&G8J^FWA!O H !*\ end -- +------------------------+---------------------------+ | Gary Ward | Amdahl Corporation | | gpw10@cd.amdahl.com | 1250 East Arques Avenue | | Phone : (408)746-8865 | P.O. Box 3470 M/S 142 | | | Sunnyvale, CA 94088-3470 | +------------------------+---------------------------+