POSTSCRIPT2-14 XEROX DOCUPRINT NPS GUIDE TO USING PAGE DESCRIPTION LANGUAGESControl-D as binary data and end-of-jobThe fact that control-D can be a valid PostScript end-of-file (EOF)delimiter in one communications protocol and invalid in anothercreates a paradox for PostScript printers that must accept jobscreated for either communications mode without any indication ofwhich communications mode was used. The recommended solutionis described in “Solution to control-Z and control-D problems.“How PostScript jobs are delimited—separated from each other in acontinuous stream of jobs—is not simple. Remember that the actualPostScript interpreter has no concept of a job. There is no PostScriptjob end operator. The job server, which is external to the interpreter,must make the job begin and job end determination and actaccordingly. It does this by considering a PostScript job to be asimple byte stream input file. When end-of-file (EOF) is reached, thejob server restores the PostScript state for the next input file (job).The way input files—or jobs—are sent to a PostScript printerdepends on the communications protocol used to transfer thePostScript document to a PostScript printer. For example, when aLaserWriter is connected to an Apple Macintosh over the AppleTalkserial communications channel, AppleTalk protocol encapsulatesPostScript jobs as files. The LaserWriter AppleTalk software delimitsPostScript jobs based on the AppleTalk file protocol. AppleTalkencapsulates files in its own high-level protocol. This allowsAppleTalk to support transparent data transmission; that is, there areno byte codes reserved for AppleTalk communication functions. Thismeans that all byte values are valid in a PostScript master.This is not true when you are connecting an IBM PC to a LaserWriterover the LaserWriter asynchronous serial communications (RS232or RS422). There is no high-level protocol, such as AppleTalk has,that delimits files, so the control-D character code (octal 004) waschosen to delimit input files. The LaserWriter asynchronous softwarehandler strips out the control-Ds and sends an EOF to the PostScriptjob server. This prevents sending binary PostScript jobs (jobs whereall byte codes are valid PostScript data) through the asynchronousserial communications port. In contrast, the LaserWriter can acceptbinary PostScript jobs over AppleTalk since it is data transparent.Control-Z and superfluous errorsControl-Z is not used by the LaserWriter RS232 asynchronous serialcommunications software; yet it often appears at the end of manyPostScript masters and can pose problems.Control-Zs appear at the end of many PostScript files created underthe Microsoft Disk Operating System (MS-DOS). They cause errorson a LaserWriter, but this is usually unnoticed because the control-Zundefined command error occurs after the last page is printed. Inaddition, because the default error handling mode of the LaserWriteris to send the error back to the creator through the communicationsport, most users never see the error. This is not the case forPostScript products that have been configured to print a break pageon every error.Because the majority of the error messages caused by control-Z aresuperfluous, it is recommended that control-Zs used as end-of-filesbe ignored.