[comp.sys.mac.misc] JetLink Express 1.2 vs HP DeskJet 500

dplatt@coherent.com (Dave Platt) (11/01/90)

I've discovered that a bug in GDT Softworks' JetLink Express 1.2
printer-driver can cause serious problems when printing to a
Hewlett-Packard DeskJet 500 printer.  The problem doesn't occur when
printing to a DeskJet, DeskJet Plus, or DeskWriter.

Symptoms: when printing a document at 300 dpi, the DeskJet 500 prints a
portion of a page, halts for 30 seconds or more with the "Busy" light on
steadily, prints several lines of garbage, and resumes printing.  A
large fraction of a page's output will have been omitted or garbled.  If
the problem occurs on the last page of a print job, the printer will
never finish printing the page, and it'll be necessary to press the
"Reset" button to clear the printer.

Analysis: under conditions which are somewhat difficult to identify,
JetLink Express 1.2 will output an illegal sequence of PCL (Printer
Control Language) to the printer.  The DeskJet and DeskJet Plus detect
and ignore the illegal sequence.  The DeskJet 500 apparently tries to
interpret it, becomes seriously confused, and ends up discarding a large
fraction of the data intended for the current page.

Workarounds: making even subtle changes to the data on the page may
enable you to evade the problem... try changing the margins slightly, or
printing in a different font.  Or, try changing the amount of memory
allocated to your application (if you're running under MultiFinder).
Or, print at 75, 100, or 150 dpi rather than 300 dpi... I haven't seen
this problem at any of those densities.

I phoned GDT Softworks' tech-support line yesterday afternoon and
discussed this with them.  They had heard reports of the problem, but
had been unable to reproduce it in-house.  Apparently, even slight
differences in a Mac's setup can alter the driver's rasterization
behavior enough to make the problem appear and disappear.  They had been
"banging their heads" against this problem for several weeks (their
words) and were quite happy to receive an analysis.

I've faxed them a partial dump of the driver's output, showing the
illegal code sequence, and have mailed them a diskette with the complete
driver-output dump, a test-case file, and further information.  With a
bit of luck, their programmers should be able to identify and correct
the faulty logic in the driver without too much waving-of-dead-
chickens.

I haven't yet received my copy of the new JetLink Express 2.0 driver
package, so I don't know whether the problem will occur in this
version... but I suspect it will.

Many thanks and a big "Attaboy!" to Dave Neff of Hewlett-Packard, who
found the illegal code sequence in the dump-file I mailed to him and
explained why it's causing problems.

neff@hp-vcd.HP.COM (Dave Neff) (11/02/90)

>I've discovered that a bug in GDT Softworks' JetLink Express 1.2
>printer-driver can cause serious problems when printing to a
>Hewlett-Packard DeskJet 500 printer.  The problem doesn't occur when
>printing to a DeskJet, DeskJet Plus, or DeskWriter.

One minor nit, when printing to the DeskJet, DeskJet Plus, or DeskWriter
these printers wont hang (actually swallow data for a while) like the
DeskJet 500, but these printers will ignore the illegal escape sequence,
which will likely result in some missing dots.  Its just that a few missing
300DPI dots are not as obvious a problem as a hung printer.  In other
words, the driver has always had a "problem", its just that the
DeskJet 500 doesn't obscure it like the other DeskJet family printers.

Dave Neff
neff@hpvcfs1.HP.COM

dplatt@coherent.com (Dave Platt) (11/28/90)

About a month ago, I posted a note about an bug I'd run across in GDT
Softworks' JetLink Express printer-driver, which caused the driver to
fail to work reliably with the new HP DeskJet 500 printer.  I had sent
GDT an analysis of the problem (thanks to Dave Neff of HP) and requested
that they fix the bug.

I just got a call back from one of their tech support people.  Synopsis:

-  The bug was just as Dave Neff described it... the driver was
   generating some improper PCL escape sequences.

-  The programmer apparently knew that this would happen, and was
   depending on the printer's error-recovery logic to discard the
   incorrect sequence.

-  The DeskJet 500's error recovery logic doesn't catch this one case;
   the older DeskJet printers did detect and ignore the error.

-  The programmer has added an additional test to the DeskJet 500 version
   of the driver, to ensure that the improper PCL sequence won't be
   generated.  This slows down the driver a bit... how much, they're not
   sure (it depends on the usage patterns).

-  The new DeskJet 500 driver will actually outperform the older DeskJet
   and DeskJet Plus drivers by quite a bit, even with the additional
   error test in place, because it takes advantage of the DeskJet 500's
   two-dimensional raster compression algorithm (essentially the same
   algorithm that the DeskWriter uses).

-  GDT is sending me a beta-test copy of the new DeskJet 500 driver to
   test out.

-  GDT will be releasing JetLink Express 2.1 in a few weeks; it will
   include the DeskJet 500 driver, as well as a driver for the LaserJet
   IIIP.