Previous: general-information Up: ../grinfo.html Next: bibliographies-22-aug-81---16-feb-83---19-dec-83-
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.