Path: utzoo!utgpu!watmath!att!tut.cis.ohio-state.edu!ucbvax!hplabs!hp-pcd!hpvcfs1!neff
From: neff@hpvcfs1.HP.COM (Dave Neff)
Newsgroups: comp.sys.atari.st
Subject: Re: deskjet pageformatter
Message-ID: <2150014@hpvcfs1.HP.COM>
Date: 8 Aug 89 19:15:21 GMT
References: <8908071137.AA00916@ucbvax.Berkeley.EDU>
Organization: Hewlett Packard, Vancouver, WA
Lines: 51

Regarding the DeskJet "pageformatter".

The DeskJet and DeskJet+ DOES NOT HAVE A PAGEFORMATTER.  It never has, it
never will.  You cannot do random cursor positions on the page.  In order
to allow for mixed text and graphics the printers try to insure you can 
do negative cursor moves of the maximum point size of text,
which is 2/3 of an inch on the DeskJet+ (36 point theoretical maximum
font).  Hence you can send 2/3 of an inch of text, back up the cursor 2/3
an inch and then send 2/3 an inch of graphics.  The actual mixed text and
graphics algorithm is more subtle and uses variable lookahead based on the
actual point sizes used in order to give more reliable results (if there
are lots of font/enhancement changes its not always possible to even
back up 2/3 of an inch) but the above description is the basic concept.

Not only does the DeskJet and DeskJet+ not have a pageformatter it
DOES NOT HAVE A BIT IMAGE BUFFER.  Commands to print characters are
sent to a custom IC, which looks them up in ROM and prints them.  Hence
two overlapping A characters are treated the same as an A character
overlapping a B charater.  THERE IS NO BIT IMAGE BUFFER WHERE CHARACTERS
ARE SIMPLY ORED TOGETHER.   This is the reason ink will puddle if
characters are printed on top of one another. 

The DeskJet and DeskJet+ printers lack a page formatter and a bit image
buffer in order reduce the cost of the printer by reducing the need for
RAM.  We just need a couple K of RAM to build commands (or vectors) for the
custom IC when then uses DMA to get the commands and print the text.
The firmware never sees the bit image of the text.  The firmware does see
the bit image of the graphics but it is stored in a special form needed
by the custom IC for printing the graphics and for this, and other
reasons, overlapping graphics are not ORed together either.  Notice that
text and graphics are always printed in separate passes as a result of
the lack of a bit image buffer.  In some respects using a bit image
buffer in the DeskJet+ would make more sense than the current scheme
but it was leveraged from the DeskJet which lacked enough RAM for a 
bit image buffer (and the custom IC does not support a bit image buffer).

It's hard to be any clearer without going into much more technical
detail but I hope this helps.  The DeskJets have a "format buffer" which
stores approximately 2/3 inch of text (and in the case of DeskJet+
1/3 of an inch of graphics), not a page formatter.  The DeskJets have a "vector
buffer" (well, actually 2 such buffers) for sending commands to the custom
chip, not a bit image buffer.

For more details about the inner workings of the DeskJet printers try
to get the October, 1989 issue of the HP Journal.  It goes into more
detail on the above concepts.

Happy Printing,

Dave Neff
neff@hpvcfs1.HP.COM