[comp.protocols.appletalk] Curious lwsrv behavior with new LaserWriter

farrell@EREBUS.STANFORD.EDU (Phil Farrell) (11/03/88)

I found that a new LaserWriter Plus needed "breaking in" before it would
work with lwsrv (CAP 4.0) on a 4.3BSD Vax connected via serial line.

I have been running lwsrv on a Vax for over a year, to allow
Macintoshes on an AppleTalk net bridged to the Ethernet via a Kinetics
FastPath to print to a LaserWriter connected to the Vax via serial line
(we use the TranScript spooling software on the Vax).

A while ago, we installed a LaserWriter Plus to the same Vax on another
serial line.  Now we want to let the Macintoshes print to the LWPlus
as well, so I started up a new lwsrv daemon for it just like my one
that has been running so well, but files sent from a Macintosh would
not print.  Lwsrv accepted the file from the Macintosh and correctly
spooled it on the Vax.  A header page (sent by the TranScript software)
printed, but no file.  The error file on the Vax claimed that one of
the first lines in the AppleDict file prepended by lwsrv had an
"OffendingCommand" named "setdefaulttimeouts", so the job was flushed.
The same file from my Mac printed okay on the first LaserWriter.  I
verified that the exact same file, including same AppleDict, was being
sent to the two different LaserWriters by stopping the queues on the
Vaxes and comparing the spool files that were waiting to print.

Now, as far as I could tell, everything on the Vax end was the same for
the two LaserWriters, but spool files from a Mac printed on one and not
the other.  There were only two differences between the two
LaserWriters:
	a) The working one is a plain LaserWriter; the failing one is a
Plus.  
	b) The working one had originally been connected to an AppleTalk 
net and had received Macintosh files directly in its distant past (over
a year ago); the failing one had never been connected to an AppleTalk net,
but had spent its entire life so far tethered to the Vax via serial
line.

My hypothesis was that something in non-volatile RAM (had to be
non-volatile because the working LW had been power cycled many times
since it was switched from AppleTalk to serial line connection) gets
initialized the first time a Macintosh prints directly to the LW via
AppleTalk, and that this setting is necessary for the LW to correctly
interpret AppleDicts sent to it later via lwsrv on the Vax.

The hypothesis was easy to test:  we temporarily switched the failing
LWPlus to AppleTalk input; connected it to a Macintosh; sent a one-line
MacWrite file to it from the Mac (which printed okay); switched it back
to serial line input from the Vax; and power cycled it.  The result:
it works!  Now files from lwsrv on the Vax print correctly.

The moral: "break in" your new LaserWriters by printing a file directly
from a Mac via AppleTalk before trying to access them with lwsrv on a
UNIX host connected via serial line.  Does anyone have any idea what is
being set inside the LaserWriter by this procedure?

davy@RIACS.EDU (11/06/88)

     From:  Phil Farrell <farrell@erebus.stanford.edu>
     Date:  Wed, 2 Nov 88 11:04:21 PST
     Subject:  Curious lwsrv behavior with new LaserWriter

	[....]

     The error file on the Vax claimed that one of
     the first lines in the AppleDict file prepended by lwsrv had an
     "OffendingCommand" named "setdefaulttimeouts", so the job was flushed.
     The same file from my Mac printed okay on the first LaserWriter.  I
     verified that the exact same file, including same AppleDict, was being
     sent to the two different LaserWriters by stopping the queues on the
     Vaxes and comparing the spool files that were waiting to print.

     The moral: "break in" your new LaserWriters by printing a file directly
     from a Mac via AppleTalk before trying to access them with lwsrv on a
     UNIX host connected via serial line.  Does anyone have any idea what is
     being set inside the LaserWriter by this procedure?

I don't know what "setdefaulttimeouts" does, but I ran into the same
problem brining up our QMS PS2400 under lwsrv.  I just deleted the
"setdefaulttimeouts" command and the associated if-then-else from the
Appledict files, and it was all happy.

I haven't tried running these files to a LaserWriter, but as near as I
can tell, the deletion of "setdefaulttimeouts" makes no difference.

--Dave Curry

liam@cs.qmc.ac.uk (William Roberts) (11/08/88)

In article <Added.MXPppWy00UkT0Dm08y@andrew.cmu.edu> farrell@EREBUS.STANFORD.EDU (Phil Farrell) writes:
>I found that a new LaserWriter Plus needed "breaking in" before it would
>work with lwsrv (CAP 4.0) on a 4.3BSD Vax connected via serial line.
>...
>The moral: "break in" your new LaserWriters by printing a file directly
>from a Mac via AppleTalk before trying to access them with lwsrv on a
>UNIX host connected via serial line.  Does anyone have any idea what is
>being set inside the LaserWriter by this procedure?

This must be another example of the insane way that Apple
handle PostScript - every new LaserPrep file I see is
distinctly more unpleasant than the last, whilst also
conforming more precisely to the letter of the Adobe document
convention:

Example:
DSC 2.0    "Every page should be independent of every other page"
LaserPrep: Ok, in Document setup we produce a procedure which
           enumerates the current clip path in device
           coordinates and use that to completely reset the
           the printer at the start of every page.

I'd send Apple a copy of the PostScript Green Book if I thought
it would do any good...
-- 

William Roberts         ARPA: liam@cs.qmc.ac.uk  (gw: cs.ucl.edu)
Queen Mary College      UUCP: liam@qmc-cs.UUCP
LONDON, UK              Tel:  01-975 5250