[comp.lang.postscript] Help, how do I set the serial speed on my laser?

maoursler@miavx2.ham.muohio.edu (07/02/90)

Hullo,


	I need to know the magic postscript commands to change the
	serial speed on my Apple LaserWriter IINT.  How fast can
	I set this?  All info welcome.  Thanks in advance.

				- Miles -
				  maoursler@miavx1.acs.muohio.edu
				  maoursler@miavx2.bitnet

jj1h+@andrew.cmu.edu (Joseph Jackson) (07/04/90)

For the last few months, I've been running some Apple LaserWriters at
19200 baud instead of the default 9600 baud.  These include
LaserWriter II's, Pluses, and even some refurbished "original"
LaserWriters.  The magic I used appears at the end of this message in
two forms: the quick and dirty version and a nicer version which
prints a status page.

The good news:

The time required to print large bitmap images dropped to just about
half of what it was at 9600 baud.  Moderately complicated text
documents printed at the engine's rated speed.  (8-12 ppm)  Overall,
printing seemed faster.

The bad news:

I've reset all the printers to 9600 baud.  I was encountering too many
"ioerror, flushing the rest of this job" situations for jobs of 50 or
so pages.  I didn't bother to find out whether it was the printer or
spooler causing the problem.  Also, some new spooler workstations we
recently installed don't support the faster speed on their serial
ports.  Finally, it was a hassle swap out printers for repair when
some queues were set up at 9600 baud and others were at 19200.

The magic:

To change the speed, you'll need to exit the server loop with an
operator found in the serverdict dictionary and reset the serial port
parameters with an operator found in the statusdict dictionary.  The
first 0 is the printer's password; replace as appropriate.  The 25
refers to the 25 pin serial connector.  Replace it with 9 if you use
the 9 pin connector.  19200 is the baud rate, but I'm not sure what
other values are available.

serverdict begin 0 exitserver	% the matching end is implied
statusdict begin
25 19200 0 setsccbatch
end

A nicer version which produces a page with the setting information
follows.  Good luck!

Joe Jackson
Distributed Workstation Services
Carnegie Mellon Univerity

Internet: jj1h+@andrew.cmu.edu
Bitnet:   jj1h+@ANDREW
AT&Tnet:  (412) 268-8799

%!------------------------------------------------------------------
/PASSWORD 0 def

serverdict begin PASSWORD exitserver

/LM 72 def
/SIZE 20 def

/CHANNEL 25 def
/BAUD-SETTING 9600 def
/OPTIONS-SETTING 0 def

/baud 7 string def
/options 7 string def
/options-description 40 string def

/inch { 
  72 mul 
} def

/newline {
  currentpoint SIZE sub
  exch pop
  LM exch
  moveto
} def

statusdict begin
CHANNEL BAUD-SETTING OPTIONS-SETTING setsccbatch
end

statusdict begin
CHANNEL sccbatch
end
dup options cvs pop
dup 0 eq {(Ignore parity)} if
dup 1 eq {(Odd parity)} if
dup 2 eq {(Even parity)} if
dup 3 eq {(No parity)} if
options-description cvs pop
pop % take options integer off
baud cvs pop

1 inch 10 inch moveto

/Times-Bold findfont SIZE scalefont setfont
(Setting sccbatch parameters to the following parameters: ) show
newline
newline

/Times-Roman findfont SIZE scalefont setfont
(baud: ) show 
baud show
newline
(options: ) show
options show
newline
(description of options: ) show
options-description show
newline
showpage