If you wish to use a LaserWriter as a spooled printer from a VAX 780,
spooling PostScript files, here are some problems you may encounter:
When you connect the printer to the VAX, each PostScript file gets appended
with an EOT character to reset the printer. The EOT is echoed by the printer to
the VAX. The VAX sends back a BEL character, which is often in the midst of the
next job's PostScript commands. The printer flags this modified command as an
error and flushes the rest of the job. The reset EOT, at the end of that job,
repeats the confusion.
If the EOT is omitted, the printer's Job Timeout period elapses and it sends
error messages to the VAX's spooler, which further confuses it.
There is no way to suppress the printer's acknowledgement. From the PostScript
Language Reference Manual: "Certain character codes serve special purposes,
such as Control-D to mark end-of-file. The server performs a job by reading and
executing a PostScript program from the serial channel. When it reads the
end-of-file character and the program terminates, the server sends an
end-of-file character, and ends the job, and starts a new one."
Q. Can the printer's timeout messages be suppressed?
A. The printer's timeout and job flush message is being generated by the
LaserWriter in response to the Control-G from the spooler. The LaserWriter's
PostScript command interpreter does not understand the Control-G and
generates an error. And, unfortunately, the spooler does not know the printer
is in a timeout/flush mode and continues to send data to the printer. Error
messages from the LaserWriter are generated spontaneously and are directed to
the standard output file and can not be suppressed.
Q. Is it possible to switch to and from the Diablo emulation mode via
Postscript commands, or can an emulation program be download as part of a job?
A. Yes, you can change the LaserWriter into Diablo 630 mode from PostScript
mode. Below is a short PostScript routine that places the LaserWriter into
Diablo 630 emulation mode for the remainder of the job (until ^D is
received). This is the same Diablo emulation that can be selected with the
side-panel switch setting, except for one limitation: when Diablo mode is
selected from software, the serial port remains sensitive to the seven
control characters ^C^D^T^S^Q and CR,LF. Diablo 630 output uses some of
these codes, so the potential for problems is fairly high.
The Diablo emulator has some limitations, such as portrait mode only. If you
want to get landscape printing, to change the type size or lines-per-page, or
to emulate some other daisywheel printer, search this database under
POSTSCRIPT AND DAISYWHEEL EMULATOR to get a generalized PostScript program
that provides a framework for building any daisywheel emulator.
--
%!
%PostScript code to call Diablo emulator from AppleTalk or serial input stream
% This code should go on the front of a Diablo file.
/doDiablo {/printpageflag false def
{statusdict begin
62 eescratch fontname
61 eescratch dup 0 eq {pop 1} if fontname
60 eescratch
59 eescratch
/diablo load
end
exec
} stopped pop
printpageflag {showpage} if
} def
/fontname {$idleTimeDict begin
dup ROMnames length ge {pop 0} if
ROMnames exch get
end
} def
doDiablo
--
Q. The printer is connected via a serial 9600-baud line and may be shared by
PCs via either a manual switch or a "smart" Logical connection printer
sharer. Is there a better way to make this connection?
A. You may want to consider using DTR for the handshake, which
eliminates the need for two-way communications with the LaserWriter. This
way, the spooler can neither confuse nor be confused with extra control
characters. To use DTR on the LaserWriter, the LaserWriter's ROMs must be
rev 2.0.
TRADEMARK NOTICE:
PostScript is a trademark of Adobe Systems Incorporated
Diablo 630 is a trademark of Xerox Corp.