Previous: general-information Up: ../grinfo.html Next: bibliographies-22-aug-81---16-feb-83---19-dec-83-


APPLE-LASERWRITER [05-May-85]

 I purchased an Apple LaserWriter laser printer in June, 1985, which has
 kept me much  busier than  I expected.   I had  a preliminary  <PLOT79>
 interface for  it  working  in  less than  twenty-four  hours,  and  by
 rerunning all of the demonstration programs as a test of the FORTRAN 77
 version of PLOT, I  was able to  check that out as  well as polish  the
 interface.  Because  the  LaserWriter  supports  line  intensity,  line
 styles, and line widths,  the device driver takes  advantage of all  of
 these for intensity, pen, and width simulation.

 The LaserWriter marks a revolution in the printing industry, in that it
 is driven  by  an on-board  controller  which translates  the  powerful
 PostScript language  sent from  the host  into operations  on the  page
 bitmap.  PostScript was developed by Adobe Systems, Inc., in Palo Alto,
 CA, who have expressed a strong desire to make it the industry standard
 for controlling printers.  PostScript is also used by Mergenthaler  for
 one of their phototypesetters, and by QMS for a laser printer.

 A page described in PostScript is normally independent of output device
 resolution, unless  it  contains  bitmap images,  but  even  then,  the
 PostScript translator is  capable of arbitrary  2-D transformations  on
 all graphical objects, and will scale the image if necessary.  For this
 reason, the <PLOT79> interface describes pictures in higher  resolution
 than is necessary for a 300-dot/inch laser printer; if they are  output
 on a phototypesetter, sharp images will still be obtained.

 Although the  <PLOT79> device  interface to  PostScript was  reasonably
 straightforward, developing a TeX DVI  translator for it turned out  to
 be much  more difficult.   Apparently, changes  have been  made to  the
 PostScript language since the  manual was published, and  consequently,
 none of the manual examples  illustrating downloading of fonts  worked.
 It took some telephone calls to find out that revised manual pages have
 been prepared, and with several days of work, I was finally able to get
 a working DVI driver (<PLOT79.TEX.DVI>DVIALW.C).

 Had these  documentation  errors  not existed,  and  considerably  more
 examples been provided for the very complex PostScript font  mechanism,
 this work should not have  taken more than a  day.  I believe that  the
 DVI driver is  complete and  correct, but the  Apple LaserWriter  still
 periodically raises  ``VMerror'' messages  (the  kind the  manual  says
 should not occur) and flushes the rest of the document.

 The X-ON/X-OFF flow  control bug  in PostScript Version  23.0 which  is
 noted in Apple documentation, and will not be fixed until new ROMs  are
 prepared, has also been rather troublesome, since its occurrence causes
 loss of the entire input stream.  On several nights, we lost scores  of
 files this way.  By  tedious experimentation, I was  able to develop  a
 procedure implemented in  <PLOT79.TEX>LW78.C for  driving it  reliably,
 and apart  from the  ``VMerror''  failures, we  no longer  lose  files.
 LW78.C is very dependent on TOPS-20, mostly because misfeatures of  the
 PCC implementation  made it  impossible to  use standard  Unix  library
 routines.  It can still serve as a model for other sites, and once  the
 X-ON/X-OFF bug is fixed, it should  be possible to remove the  frequent
 time-out pauses.

 The <PLOT79>  device  interface  to PostScript  has  been  designed  to
 identify the section of the plot file which actually contains  plotting
 commands,  and  DVIALW   uses  this  information   to  allow  the   TeX
 ``\special{}'' command to request the  insertion of plots into  typeset
 manuscripts.