Please check also http://bonk.ethz.ch.

/* gdevcd8.c */
/* HP 850c, 855c & the like colour printer drivers */
/* These are currently not in the official distrib.*/
/* Please report all problems to uli@bonk.ethz.ch
 */

/* 11.11.96. Initial release of the driver */

/* 04.05.97  Version 1.1. For added feautures, */
/* resolved bugs and so forth, please see   */
/* http://bonk.ethz.ch                      */

/* 25.08.97  Version 1.2. Resolved all but one of the 
                          known bugs, introduced a couple
			  of perfomance improvements. Complete
			  new color-transfer-function handling.
			  (see gamma).

	     Known Bugs:  Dark colors are still pale.
	                  
*/

/* The current gs hp850 driver is meant to support all hp-color
   printers with C-RET and asymetrical resolution capabilities.
   Currently the driver supports only the the hp850, hp855, hp870
   and hp890 printers with 300x300 dpi color (with and without RET) and
   600x600dpi b/w. 
   Furthermore, the hp690 is supported. However, you need to
   explicitly set -dRestStatus=0, otherwise you'll get garbage.
   
   The driver _must_ be invoked with the following switches:
   gs -r600 -dBitsPerPixel=32 (see the provided cmd-files as examples)
   Furthermore, the driver supports the following switches:

   -dPapertype= 0  plain paper [default]
                1  bond paper
		2  special paper
		3  glossy film
		4  transparency film

   -dQuality=  -1 draft        not recommended
                0 normal       not recommended
                1 presentation [default]

   -dRetStatus= 0 C-RET off
                1 C-RET on [default]

   -dMasterGamma= 3.0 [default = 1.0]
    __Note__: To take advantage of the calibrated color-transfer
              functions, be sure not to have any Gamma-Statements
	      left! If you need to (i.e. overhead sheets), 
	      you still can use the gamma-functions, but they will 
	      override the built-in calibration. To use gamma in the 
	      traditional way, set MasterGamma to any value greater
	      1.0 and less 10.0. To adjust individual gamma-values,
	      you have to additionally set MasterGamma to a value
	      greater 1.0 and less 10.0
	      
	      With the next release, gamma functions will be dropped.

   When using the driver, be aware that printing in 600dpi involves
   processing of large amounts of data (> 188MB !). Therefore, the
   driver is not what you would expect to be a fast driver ;-)
   This is no problem when printing a full sized color page (because
   printing itself is slow), but it's really annoying if yoy print only
   text pages. Maybe I can optimize the code for text-only pages in a
   later release. Right now, it is recommended to use the highest
   possible optimisation level your compiler offers....
   For the time beeing, use the cdj550 device with -sBitsPerPixel=3
   for fast proof-prints. If you simply want to print 600dpi b/w data,
   use the cdj550 device with -sBitsPerPixel=8 (or 1).
   
   Since the printer itself is slow, it may help to set the
   process-priority of the gs-process to regular or even less. On a
   486/100MHZ this is still sufficient to maintain a continuos
   data-flow.
   Note to OS/2 users: Put the gs-window into the background,
   or minimize it. Also make sure, that print01.sys is invoked without
   the /irq switch (great speed improvement under warp4).

   You may use -dQuality=0 or -1, however, this setting interfers in
   an undocumented way with the output of the dither routine, such
   that the midtones of colors may look ugly (I have no idea how to
   overcome this). Anyhow, printing with 600dpi is somewhat senseless
   if you don't have a high positionig precision of the print-head ;-)
   Using -dQuality=-1 makes more sense since it saves a lot of ink
   (but looks ugly).

   The printer default settings compensate for dot-gain by a
   calibrated color-transfer function. If this appears to be to light
   for your business-graphs, or for overhead-sheets, feel free to set
   -dMasterGamma=1.7.

   Furthermore, you may tweak the gammavalues independently by setting
   -dGammaValC, -dGammaValM, -dGammaValY or -dGammaValK (if not set,
   the values default to MasterGamma).

   If you want to learn more about gamma, see:
       
       ftp://ftp.inforamp.net/pub/users/poynton/doc/colour/GammaFAQ.pdf
       
       or
       
       ftp://ftp.igd.fhg.de/pub/doc/colour/GammaFAQ.pdf

       Further information, bugs, tips etc, can be found
       at my website.

   Have fun!

	Uli

	uli@bonk.ethz.ch
	http://bonk.ethz.ch

*/

/* Note to *nix users. Depending on how you transfered the files, you might need to 
   remove some CR-codes used on intel-based machines:

   simply type:  unzip -a hp850.zip */

/* to compile with gs5.x, simply add 

             DEVICE_DEVS4=cdj850.dev

   to your makefile. */

/* To compile with gs4.03, include in your makefile something like:

         DEVICE_DEVS4=cdj850.dev

   create a file cdj850.dev with the following line:

         -dev cdj850 -include page -obj gdevcd8.obj gdevpcl.obj

   locate in devs.mak the line:

         cdeskjet_=gdevcdj.$(OBJ) $(HPPCL)

   and create below the line:

         cdeskjet8_=gdevcd8.$(OBJ) $(HPPCL)

   add to the device definitions the following two lines:

        cdj850.dev: $(cdeskjet8_) page.dev
        $(SETPDEV) cdj850 $(cdeskjet8_)

   and recompile.

   For all other gs-versions, see the appropriate gs-files 

*/