[mod.computers.laser-printers] Info-Postscript for Laser Lovers Digest V1 #9

Laser-Lovers-Request@WASHINGTON.ARPA (Moderator) (02/24/86)

Info-Postscript for Laser Lovers Digest Sunday, February 23, 1986 1:10PM
Volume 1, Issue 9

Today's Topics:

                MacWrite Generating Bogus PostScript?
                            postscript V25
         LaserWriter(s) PostScript Language Update to follow
                           Language changes
                     LaserWriter Plus information
                   Hardware support for PostScript
                            %%BoundingBox

----------------------------------------------------------------------

Date: Sat 8 Feb 86 15:56:21-PST
From: Jim Lewinson <a.Jiml@SU-GSB-WHY.ARPA>
Subject: MacWrite Generating Bogus PostScript?

Someone at our site has a MacWrite document that will not print on the
LaserWriter.  If one inserts a page eject prior to the diagram subtitle,
it will print, however, doing things like changing the font will not help
the situation.  I played with the postscript and found that if I inserted a
"showpage" right before a certain line I would get some output, but if I put
it after I never saw a thing.  Of course, this may not mean much, since I
don't know PostScript.

The files aren't large, but I'm not going to include them since most people
won't want to see them.  I have put them on SU-Score.ARPA for people
to grab if they want to look at them.  The MacWrite document is in
[SU-SCORE.ARPA] PS:<JIML>UNPRINTABLEFILE.HQX (In BinHex 4.0 format),
and the PostScript is in <JIML>UNPRINTABLEPOSTSCRIPT.TXT.  (Text format)
If someone wants me to mail them the files, let me know.

Does anyone see what we are doing wrong, or is it just a bug?

					Thanks,
					Jim Lewinson

ARPA: Jiml@SU-SCORE.ARPA

------------------------------

Date: Tue, 18 Feb 86 16:05:42 est
From: Eric Gisin <egisin%waterloo.csnet@CSNET-RELAY.ARPA>
Subject: postscript V25

Are there more extensions to PostScript on the LaserWriter+?
For example, is there any control over the serial line protocol?
It's difficult to emulate any real printers when CR is mapped to LF.
Is there a V25 ROM upgrage for the original LaserWriter?

------------------------------

Date: Wed 19 Feb 86 08:27:42-PST
From: John Reuling <Reuling@SU-SCORE.ARPA>
Subject: LaserWriter(s) PostScript Language Update to follow

The next two messages contain PostScript print files for the new
Apple LaserWriter and LaserWriter Plus PostScript Language Update
documentation.

These messages will be kept on ARPANET site SCORE.STANFORD.EDU in
the directory <INFO-POSTSCRIPT> as files LASERWRITER-1 and
LASERWRITER-2.

Users on the Internet may retrieve these files via anonymous FTP.
(Please don't FTP files from Score between 9am and 5pm weekdays.)

-John
-------
[[Laser lovers moderator's note:  Because of their large size, I am
unable to include the source of these messages in the info-postscript
digest.  I will send these messages to the Usenet feed for inclusion
in mod.computers.laser-printers.  I suggest that those of you with
Internet access obtain the files from the Score directory if you're
interested.  If you do not have access to the Internet or to the
Usenet, send me a note and I'll mail you the files.  Please don't
request a mailed copy unless you really don't have another way to get
the material---this for reasons of fairness to the intermediate sites
that will have to pass along the material to you.  Send requests to
laser-lovers-request@washington.		--Rick ]]

------------------------------

From: adobe!taft@decwrl.DEC.COM (Ed Taft)
Date: 18 Feb 1986 1744-PST (Tuesday)
Subject: Language changes

Several additions have been made to the standard PostScript language.
These additions are upward-compatible and do not affect the function of
any existing PostScript programs. The language is now at version number
38.0; this version is present not only in the LaserWriter Plus but in
PostScript printers now being shipped by QMS, DataProducts, and
Linotype.

The new language facilities are of a "system programming" nature:
they do not offer any new page description capabilities. In general,
PostScript programs that are intended to be compatible with all
PostScript printers should not make use of the new features. However,
it is possible for a program to determine whether or not the new
features are present and to invoke them conditionally.

The new facilities are summarized below. Complete information is
contained in the LaserWriter Plus supplement mentioned in message 1,
as well as in corresponding supplements for each of the other PostScript
printers.

  (1) Packed arrays. These are an alternative data type for representing
PostScript procedures, providing a significant (50 to 75 percent)
reduction in the amount of VM required to store them. Page
descriptions with large preambles can benefit significantly from using
the packed array facility.

  (2) Immediately evaluated names. These essentially are a means of
obtaining the effect of the "bind" operator selectively. They are used
heavily by built-in PostScript programs, but are of lesser interest to
user-defined programs.

  (3) Compressed characters. The font cache is now able to retain much
larger character bitmaps than before and often to consume less space while
doing so. This isn't so much a language change as an implementation
improvement; however, there do exist some new cache control parameters
and some operators for manipulating them.

------------------------------

From: adobe!taft@decwrl.DEC.COM (Ed Taft)
Date: 18 Feb 1986 1741-PST (Tuesday)
Subject: LaserWriter Plus information

This and the next two messages are in response to several questions
and comments about the LaserWriter Plus, recent PostScript language
changes, and hardware support for PostScript.


1. LaserWriter Plus

The LaserWriter Plus is strictly a software upgrade to the LaserWriter.
The only hardware change consists of replacing the ROMs with new
devices having twice the capacity as the old. Existing LaserWriters can be
upgraded to the new ROMs; see your Apple dealer.

The new ROM software is substantially different from the old in four
main areas:

  (1) New fonts. In addition to the original Times, Helvetica, Courier,
and Symbol families, the following font families are built-in: Avant
Garde, Bookman, New Century Schoolbook, Palatino, Zapf Chancery, and
Zapf Dingbats. This expands the original 13 typefaces to 35. The increase in
ROM space from .5 to 1.0 megabyte is entirely consumed by new fonts.

  (2) PostScript language extensions. These are discussed in the next
message.

  (3) LaserWriter-specific functional changes. These include expanded
serial communication capabilities (higher baud rates, optional DTR flow
control), support for European paper sizes (A4 and B5), and a few
others.

  (4) Implementation improvements. Nearly all the problems in the
original LaserWriter software have been fixed. Additionally, for many
types of documents, page throughput is significantly improved. The
primary source of improvement is a new printing strategy that enables
imaging of a page to be overlapped with execution of the PostScript
description for the next page; formerly these were done serially.

Technical documentation for the LaserWriter Plus exists in the form of
a supplement to the original LaserWriter documentation (Appendix D of
the PostScript Language Reference Manual). This documentation is being sent
to Info-PostScript as a couple of Scribe-produced PostScript files; it will
also be copied to the Laser-Lovers archives and perhaps to other places
(watch your usenet newsgroups). It will eventually be incorporated into
Apple's "Inside LaserWriter" package, but I do not know when that will
happen.

	Ed Taft
	Adobe Systems, Inc.


Notices:
  PostScript is a trademark of Adobe Systems Incorporated.
  Helvetica, Palatino, and Times are trademarks of Allied Corporation.
  Avant Garde, Bookman, Zapf Chancery, and Zapf Dingbats are trademarks
  of International Typeface Corporation.
  Scribe is a trademark of Unilogic Ltd.

------------------------------

From: adobe!taft@decwrl.DEC.COM (Ed Taft)
Date: 18 Feb 1986 1750-PST (Tuesday)
Subject: Hardware support for PostScript

Several people have suggested hardware enhancements (e.g., faster CPUs,
RasterOp chips, etc.) to improve the performance of PostScript
printers. Naturally, this is a topic of great interest to us at Adobe.
I'd like to share a few of our current thoughts with you. Please note
that I am talking only about current products; I am not speculating
about future ones.

Adobe's approach to PostScript has been first to define a fully general
software model for the programming language and page description
capabilities and only then to consider how hardware can be employed to
accelerate the software. Experience with a pure software implementation
of PostScript (of which the LaserWriter is a good example) gives us an
understanding of what parts of the implementation would benefit most
from hardware support.

There are three major activities that together account for most of the
execution time in Adobe's implementation of PostScript. These are:

  (1) Low-level raster manipulations, principally painting character
bitmaps and filling trapezoids located at arbitrary bit boundaries.
For typical pages, this activity dominates everything else if all
characters are already in the font cache.

  (2) Character scan conversion. This is a very compute intensive
operation because the original character definitions are at a high
level and are being pushed through the full PostScript graphics
machinery. In particular, there is a lot of arithmetic, both fixed and
floating point.

  (3) PostScript input scanning and interpretation. This includes
parsing the input stream, constructing tokens, looking up names,
pushing and popping stacks, etc. The amount of time consumed by this
activity varies considerably according to the type of page description
and the programming style. A text document that consists primarily of
strings and calls to simple PostScript procedures consumes relatively
little time in the interpreter; a document that executes a lot of
PostScript code for each mark placed on the page consumes
proportionately more.

Of course, I have deliberately left out time spent waiting for input data or
waiting for the print engine. The effect of a slow communication channel or
a slow print engine can completely dominate everything else. More to the
point, obtaining the best performance requires the ability to perform
communication, execution, and printing activities in parallel.

The above three activities benefit from significantly different kinds of
hardware support. (Of course, in a strictly software implementation, a
faster CPU should speed all three activities.) Considering them in order:

  (1) Simple hardware for shifting and masking makes a substantial
difference here; the full generality of RasterOp is not needed. The idea is
to minimize the number of CPU instructions and memory cycles needed to
perform simple, repetitive bit moving operations. A shifter-masker is
included in the Adobe Redstone controller, versions of which are used in all
present PostScript printers except the LaserWriter. This activity is one
that would benefit greatly from having a separate, parallel processor; its
interface with the rest of PostScript would be quite simple.

  (2) Efficient arithmetic is of particular importance here. Also, since a
vast amount of code is being executed and all of it is written in a
high-level language (C in the case of Adobe's implementation), the overall
quality of compiled code is important. Apart from arithmetic, no single
component dominates, so it's not practical to assembly-code much of it.

  (3) Here is a place where some special hardware and/or microcode might
help. The PostScript interpreter's data structures and algorithms are
sufficiently straightforward that custom hardware may be practical. Whether
or not this makes sense economically depends on how much time is spent in
the interpreter relative to everything else, which, as I said, is highly
application dependent.

------------------------------

Date: Thu, 20 Feb 86 14:19:54 est
From: ned%UPenn-Grasp%upenn.csnet@CSNET-RELAY.ARPA
Subject: %%BoundingBox

One of the most important comment conventions defined for PostScript is the
BoundingBox comment: it lets other programs know exactly where the marks on
the page will fall when the PostScript code is run. It is extremely valuable
information, as there is no other way to determine it, other than actually
running the PostScript. If we are to write any great PostScript tools which
know how to include one PostScript program in another, we have to make sure
that this comment is created whenever feasible. Here at Penn, we are working
on a preprocessor for ditroff which will include a PostScript file as an
illustration. The preprocessor knows how to read the BoundingBox comment to
get the size of the figure, but unfortunately, not everything generates this
comment as it should. In particular, MacDraw seems not to, and that is a
tremendous shame, because whenever I've discussed this preprocessor with
other people, they've always responded with, "You mean I'll be able to draw
diagrams with MacDraw, and put them in troff automatically?!?!", and I've
got to say, "Well, you can, but it won't really be as easy as it should,
because for some reason Apple decided not to do things properly." Apple, if
you're reading this: DO THIS NOW. I imagine it would be very easy for
MacDraw to generate this information, it knows the extent of the drawing.
Many users will not want to try to hack around with the measuring to get it
to fit precisely. For any other developers out there, Please, please, please
put in this comment. Don't assume that you know everything people will want
to do with your programs. Everyone in the business of using PostScript will
be happier if we all try to follow these guidelines.


Ned Batchelder		University of Pennsylvania
(ned@UPenn.CSnet)	CIS Dept, 200 South 33rd Street
(215) 898-5617		Philadelphia, PA, 19104-6389

------------------------------

End of Info-Postscript for Laser Lovers Digest
**********************************************