		  PaintJet/PAWS 3.21 Research
		  ===========================

The following is a review of the PaintJet "problem" description,
followed by some market research results on it, a short technical
precis, and a recommendation as to what to do with PaintJet in PAWS
3.21.

In brief,our recommendation is to leave new PaintJet support out of the
PAWS 3.21 revision (instead supporting PaintJet as a monochrome
dumper/printer using existing code).  We would plan to support it either
in the next revision, or by software that is not part of the PAWS
system.

-----------------------------------------------------------------------------

PaintJet Problem

Paintjet support in PAWS involves many choices, and could require much
time/effort to do a complete job.

Full support  =		"dump graphics" key--color dump graphics for 236C, 
			Moonunit, topcat color, catseye color
	      + 	color and mono dump via DGL for same
	      + 	mono (black/white) dump for 216, 226, 236A, 327A, 
			217A, mono topcat, mono catseye
	      (the above comprises full ready-to-run code including 2 
	       different algorithms, 2 rotations, etc)
	      + 	"hackable" source ?

Library support   = 	no "dump" key support (but hackable by user)
		  +	auxiliary library for dump, only color CRTs
		  + 	some ready-to-run code, but missing capability
		  + 	"hackable" source ?

Marginal support  =	"hackable" source, not smart about configuration
			(eg--what CRT am I? , etc)
			no ready-to-run code

No support      =       let it be treated as monchrome printer and dump
			graphics device by existing code in the system,
			which should be compatible, due to PCL
			generality.

Costs (preliminary estimate):  	
	Full support:  6 - 10 engr-weeks 
	Library: 4 - 8 engr-weeks 
	Marginal:  2 - 4 engr-weeks
	No support: 1 day qualification

The problem:  
	I'll describe it by analogy to the PAWS 3.2 product, where HFS
	development held up shipments, and we couldn't support 330/350
	for 7-8 months after they were introduced.  The analogy here is
	that PaintJet support could hold up CATSEYE shipments on PAWS
	for significant time, if we were to put PaintJet support in the
	critical path for 3.21.

	PAWS has only 2 engrs, and we want to MR 3.21 in mid-March to
	Mid-May '88.  Any PaintJet work is in the critical path.

Some unevaluated alternatives:
	Delay 3.21 MR
	Back off from full support in order to reduce development time
	Move PaintJet support to later rev of PAWS
	Get help with Paintjet (eg SDD, Mktg)
	Find 3rd party developer for PaintJet support (one already exists)

----------------------------------------------------------------------------

Research results to date on PaintJet customer needs/HP commitments
(research done by PAWS lab):

Carol Trewan (Sales Development):  
Customer visits July - Oct (incl) turned up no specific requests, except
	possible implied commitment to Becton-Dickinson.  Commitments
	file shows no outstanding formal commitments.  Kathy Haselmeier
	(?)  thought Paul Geesy (sp) of Rochester Sales Office may have
	made commitment to customer for PAWS support.  Investigation
	shows this not to be true.  Paul knows of no commitments, nor
	any expressed needs among his customers.

Randy Branson may know of ICOEM needs for support.  Supplied folowing
names, thinks they are most important to contact:

Mike Apker (MBO PMM for ME10/30): 
ME10 -"paintjet nice, but we have 2D line-oriented package, can continue
	to use plotter for hardcopy in color".  Will not use PJ if
	significant programming effort by MBO is required.

ME20-"need PaintJet (ME 20 is a 3D package with shaded surfaces), but
	ME 20 only runs on HP-UX".

Gary Powers (Analytic): 
Gary says that they'd most like PaintJet support for their ChemStations
	which run under PAWS, but not the support described above.  They
	are interested mostly in a HPGL-->raster conversion that could
	target PaintJet as a color hardcopy device.  The source of HPGL
	files would be DGL spooling.  The "dump key" and DGL dump
	support are of minimal use to them, though they would be nice.
	Analytic moves about 200-250 310s each month for us with
	ChemStations, and has an installed base approaching 5000 units.

Mark Ostendorf (Product Marketing): 
Doesn't know of any outstanding customer requirements or commitments for
	PaintJet support on PAWS 3.21.  He would be happy to let us
	degrade the support from a "high want" to a "want" for I to L.
	The above has now changed. Mark wants PaintJet support changed
	to a "must" due to implied Becton-Dickinson commitment. We have
	meeting scheduled with Mark Dec 24 to discuss this.

Colin Campbell (Tech Support):
Had lots of ideas, but didn't feel he was really close enough to
	customers to make the right decision.  General feeling was to
	keep an open mind on it.

Chris Miller (FEO):
Due to their already having written the routines EGS and TechWriter need
	for PaintJet support, FEO need nothing in the way of PAWS
	PaintJet support.  They'd prefer we go on with CATSEYE, etc,
	instead for 3.21.


-----------------------------------------------------------------------------
Technical matters:

PAWS 3.21 will support 12 different display families.  Differences range
in seriousness from minor matters such as nuber of pixels per scanline
to serious differences such as completely different layouts (4 major
families), and from minor differences such as number of color map
entries to major differences such as existence/non-existence of color
map on color machines.

The families:
	A: 	216/226
	B: 	236A
	C:	236C
	D:	237A
	E:	98700A
	F:	98542
	G:	98543
	H:	98544
	I:	98545/98547/98549
	J:	98548
	K:	98550
	L:	98627 (Moonunit)

These can be grouped into "family groups", based on similarities in
architecture and ease of sharing code.  The family groups (somewhat
related--can share significant code without major spaghetti coding):  
	A
	B/D 
	C 
	E 
	F/H/J 
	G/I/K 
	L

To share code further among these family groups requires spaghetti
coding (eg "if in A, get pixels this way, else if in B/D, get pixels
that way").

Aside from this matrix, there is another set of degrees of freedom, for
choosing mono vs color, rotated vs non-rotated dump, and 2 (actually 3)
dump algorithms.

RMB has implemented (all ?)  the above perversions, sorry, permutations,
and they've handed over their almost final source to us.  It is coded to
BASIC rules, and some data structures in it either differ significantly
from PAWS equivalents, or have no PAWS equivalents.  The RMB code looks
very good.

Finally, due to Moonunit's support for different numbers of scanlines
and pixels per scanline, it may not be possible for a dump driver which
is not integrated into DGL to know how to dump the CRT to PaintJet.
Current mono dump support for Moonunit is integrated into DGL (ie.
"Dump Graphics" key not supported for Moonunit), and doesn't have this
problem.

The job looks like 6 - 10 engr weeks for the "full support" version.
Much of this time would be spent in interfacing the existing algorithms
to the System, and a major part of the rest would be spent on
reimplementing the algorithms to match PAWS OS needs.

-----------------------------------------------------------------------------
Recommendation:

I give high weight to the apparent lack of demand or commitment for
PaintJet support under PAWS.  I do expect high demand for CATSEYE
support in its various flavors.  I think extending the 3.21 project
significantly in order to support PaintJet is not a good plan.

Therefore:

Leave any new PaintJet support out of PAWS 3.21.  Qualify it as a mono
alpha printer (which can print in color if the user puts the correct
escape sequences in the output data stream).  Also qualify it as a mono
dump graphics and DGL dump device using existing code, with which it is
expected to be compatible.

Plan either to do full support in a later PAWS revision, or to provide
some "back-door" support for the needy, much as the SID provides support
for many developers in other problem areas.
