Xref: utzoo comp.sys.next:12950 comp.sys.hp:7736 comp.lang.postscript:7609 Newsgroups: comp.sys.next,comp.sys.hp,comp.lang.postscript Path: utzoo!utgpu!watserv1!audiolab.UWaterloo.ca!croehrig From: croehrig@audiolab.UWaterloo.ca (Chris J. Roehrig) Subject: Re: HP LJ III dying under NeXTStep 2.0 Message-ID: <1991Feb18.183416.27373@watserv1.waterloo.edu> Sender: daemon@watserv1.waterloo.edu Organization: Audio Research Group, University of Waterloo References: <1991Feb15.031524.3210@wam.umd.edu> <1991Feb15.171041.3582@chinet.chi.il.us> Distribution: na Date: Mon, 18 Feb 1991 18:34:16 GMT Lines: 33 In article <1991Feb15.031524.3210@wam.umd.edu> mikec@wam.umd.edu (Michael D. Callaghan) writes: >Ever since I upgraded my NeXTCube 030 to NeXTStep 2.0, my HP >Laserjet III PostScript doesn't work right. >I am constantly getting I/O Config errors when printing Complex PostScript >files. If I try to reset the printer, I proceed to get PS Error 18, which >says a non-postscript operator has been used. We have the same problem with our LaserJet III with NeXTStep 1.0 when we run at 19200 baud or, to a lesser extent, at 9600 baud. We've scope'd the serial port's Tx and Rx lines, and this is what's happening: The LaserJet has an input buffer (for the raw incoming Postscript, before the Postscript parser gets at it) that has a high water mark set at 64 bytes. When it fills beyond this mark, the LJ sends an XOFF to the NeXT to tell it to stop transmission. The NeXT is apparently handling flow control in software, and good ol' Unix gets around to stopping transmission anywhere from 30 ms to 100 ms after it receives the XOFF. (That's a tenth of a second!) Meanwhile, the NeXT has fired off over a hundred extra bytes at the LJ, who frantically sends a bunch more XOFF's and finally overflows its input buffer and gives the I/O CONFIG ERROR. When you press RESET, the LaserJet sends XON, and is expecting a complete Postscript document, whereas the NeXT resumes transmission in the middle of the document. The PS ERROR 18 is basically a syntax error. Our solution was to run the LaserJet at 2400 or 4800 baud (yuck), with which the Postscript interpreter can almost always keep up. We still get errors on complex pages. The ultimate solution will be to convert to hardware flow control using RTS/CTS which I understand have been implemented on the '040 boards. You'll have to rewire the serial cable for that. Chris Roehrig