Subject: Re: interrupting parallel port lossage
To: Terry Moore <firstname.lastname@example.org>
From: Ken Hornstein <email@example.com>
Date: 03/25/1995 03:54:29
>Summry: to work with *any* printer port, you need a long data delay.
>It may be that you can get this by changing the invariant and the
>order in which things are done in the printer driver. You can ALWAYs
>pre-load the next character at the start of lptintr(); so the
>changes might want to be as shown below.
I tried your patches; sorry to report that they didn't work. They delay just
isn't long enough on a 486/66.
>I don't have the problem here, but maybe somebody else might like to test
I'm kinda amazed you _don't_ have the problem - how fast is your machine?
I _think_ I got something to work, by putting a delay(5) right after the
output byte was loaded, and a delay(10) after the pull-down of the strobe
line. At least I was able to print my 1.6Mb 10-page fax document that
failed consistantly every other time :-)
Some other notes:
Yesterday I tried Bakul Shah's suggestion about waiting for BUSY before
pulling down the strobe line. That definately did _not_ work.
I noticed that a lot of the time the printer I am using (HP LaserJet 4M)
reports an "22 ERROR" on the front LCD panel, which is NOT a postscript error
but rather an error in the parallel port protocol (not sure exactly what, as
the manual isn't very clear). So it seems that somewhere the parallel port
driver is playing it rather fast and loose. I believe that Bruce pointed out
the Linux parallel port driver has configurable delays for all of these
settings. I suspect this is probably the only real solution.