From: brydon@asl.slb.com (Harvey Brydon (918)250-4312)
Subject: re: Re: How to use a non-DEC postscript printer??
Reply-To: brydon@dsn.SINet.slb.com
Organization: Schlumberger/Anadrill Sugar Land, TX
Date: Thu, 7 Jan 93 13:19:03 GMT

In article <1993Jan6.073552@mccall.com>, tp@mccall.com (Terry Poot) writes:
>[...]
>In article <9301060244.AA01911@uu3.psi.com>, leichter@lrw.com (Jerry Leichter)
>writes:
>>
>>
>>	In article <31DEC199209514502@author.gsfc.nasa.gov>,
>>	rkoehler@author.gsfc.nasa.gov (Bob Koehler) writes:
>>	>The CPS software inquires from the printer as to what kind of printer
>>	>it is.  If its not recognized, it assumes DEC LN03R (Scriptprinter), 
>>	>and utilizes vendor and model specific knowledge in communicating to
>>	>the "LN03R". Of course, if its not an LN03R, that's likely not to
>>	>work.  
>>
>>	I always wondered how DEC managed to not support a standard Postscript
>>	printer.  Thanks for the info. If they weren't trying to lock you into
>>	their own printers, of course, they'd assume a standard Postscript
>>	printer if they didn't recognize what they got back. Assuming an LN03R
>>	is ludicrous, since that is one they WOULD recognize! I wonder what
>>	marketting guru thought of that little ploy.
>>
>>And just what do you think a standard Postscript printer IS?  

[and then it gets into Terry's discussion of what a 'standard' printer is and
how it could be handled by CPS...]

I have done a bunch of screwing around with CPS for the last couple of
man-months (and I call it screwing around because I haven't really
accomplished anything) and am completely frustrated by CPS.  Having looked at
all the setup modules, disassembled the symbiont and a few other things, I can
say without too much error that CPS was meant to be used with a (now) subset
of DEC printers and intentionally made to NOT work with anybody else's
printers.  The printers that it supports:

Scriptprinter - LN03R
DEClaser 2150 - LN05 (R?)
DEClaser 2250
DEClaser 1150
DEClaser 3250
Colormate PS
OceColor

I don't know the mapping for all of the above, but this translates into device
types of LN03R, LN05R, LN06R, LN07R, LN08R, Colormate PS and OceColor.  I have
no idea what the Oce printer is, but the Colormate PS is actually an NEC
Colormate PS80 (not the PS40).

The setup module LPS$$PRINTERTYPE checks to see if the symbol /product is
defined on the printer and returns that to the symbiont.  If it is unknown or
not something on the above list, the symbiont treats it as an LN03R.  You
can't just add modules for an 'xyz' printer because DEC has intentionally
crippled the symbiont so that it will specifically NOT WORK with anything
other than the above.  Not even the newer DEC printers such as the 1152.  You
can take over the 'family' of setup modules for one of the above and rewrite
them for your printer, but the symbiont still treats it as the DEC printer and
may give you trouble.  For example, there are a couple of routines common to
the black/white printers that are executed by all called (surprise)
LPS$$LNXX_INITPSDEVICE and LPS$$LNXX_SETCONTEXT.  If you want to run an
environment mixed with a DEC printer and your own printer, you may need to do
some serious modifications.  Here is a piece of what my 'test'
LPS$$PRINTERTYPE module looks like:

(%%[ ReturnStatus: 195 )print
statusdict /p ("NOTFOUND") def
statusdict/product known {/p /product def} if
statusdict/product get (HP LaserJet III)        eq {/p ("LN03R")def} if
statusdict/product get (OL830)                  eq {/p ("LN03R")def} if
statusdict/product get (OL840)                  eq {/p ("LN03R")def} if
statusdict/product get (Silentwriter 95)        eq {/p ("LN03R")def} if
statusdict/product get (Silentwriter S62P)      eq {/p ("LN03R")def} if
statusdict/product get (Personal ColorPoint PS) eq {/p ("OceColor")def} if
statusdict/product get (IBM Color Jetprinter PS 4079)
                                                eq {/p ("OceColor")def} if
statusdict/product get (Phaser II PXe)          eq {/p ("Colormate PS")def} if
/p print ( ]%%\n)print
flush

I have obviously been trying this with a few printers.  I am really hacked off
that CPS won't let me use my own LPS$$'non-DEC_printer'_x modules.  This is
clearly not in the spirit of open systems.  OpenVMS? Ptui!

By the way, you will also have to buy a license to use it in this unsupported
fashion as well, too.  It's stated at about $1300.  Pricing is unclear if that
is supposed to be per printer, per system or per site.  I haven't bought one
yet because I haven't got it to work.

Somebody asked about the NEC Silentwriter 95.  This printer will not work
correctly in the CPS environment. I have managed to get it to print single
jobs correctly, but if you queue 2 jobs back to back, the symbiont and printer
hang in an infinite loop trying to deliver printer status back to the
symbiont.  I think it has to do with the printer's auto-emulation sensing (the
vax sends a "ctrl/d, ctrl/t, ctrl/d, ctrl/t..." forever between jobs waiting
for the printer to show 'idle' and the printer is looking for a <CR>
terminated line of text to decide if it is postscript or PCL, and returns
"busy", "processing" forever to the vax).  I haven't tested this on it's
International version (the Silentwriter S62P) but I believe it would have the
same problem because it has the same internals.

Jerry and Terry made comments about support for standard printers.  I think
Jerry's comments are more or less true for postscript level 1 printers.  Every
postscript printer manufacturer for level 1 that I know of added their own
extensions to postscript to allow choosing between different paper sizes,
trays, colors, etc. and the printer driver for that printer (on the VAX, PC,
Mac, unix box...) was expected to know about these extensions.  Postscript
level 2 added a means for inquiring this of the printer so that
printer-specific drivers should be no longer necessary (he says hopefully).
The problem with Postscript level 1 is that extensions to the language were
required and I think existed on every printer ever made.  I may be wrong but I
believe that every level 2 printer I have seen does not have or need device
specific extensions ... so the conclusion in my opinion is that any symbiont
handling postscript level 2 printers should be able to do so without special
knowledge of the printer.  This is not the case with postscript level 1
printers.  DEC's follow-on product to CPS, called DCPS (comes in three parts:
DCPS-base, DCPS-open, DCPS-plus) just *might* be able to do this.  I have a
copy on order but haven't seen it yet (announced in November, but currently on
engineering hold).
_______________________________________________________________
Harvey Brydon         | Internet:   brydon@dsn.SINet.slb.com
Dowell Schlumberger   | P.O.T.S.:   (918)250-4312
  The large print giveth and the small print taketh away.
Xref: sparky vmsnet.misc:1117 vmsnet.internals:1729 comp.sys.dec:6826 comp.org.decus:1105