Skip to main content
Skip table of contents

(v13) AppleTalk statusdict procedures


This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP.

The statusdict procedures (formerly operators in Level 1 implementations) setprintername, printername, sendprinterstate, printerstatus, and printermessage were intended to keep AppleTalk connections informed about the state of the interpretation. In version 3.2, some of them explicitly communicate with a PostScript language i/o device called %appletalk% if one exists (otherwise they do nothing), and in version 3.3 they set parameters on the %config% device (which can ignore the parameters if it chooses, in custom implementations, but could pass them onto the AppleTalk implementation, if any, or some other communication medium)—see (v13) %config% device parameters . Except for sendprinterstate (which is used productively), the procedures are present only for compatibility reasons.

sendprinterstate -

The sendprinterstate procedure is stored in statusdict and passes the current values of the two entries jobstate and jobname in statusdict to the %appletalk% device (in version 3.2) or the %config% device (in version 3.3)—see (v13) %config% device parameters —where it can be passed back along the AppleTalk connection to the sending Macintosh.

jobname is typically explicitly set up by the incoming job (though LaserWriter drivers version 8 do this circuitously, and the Harlequin RIP contains code to maintain jobname compatible with version 7 and before). jobstate is set at key times by the Harlequin RIP to strings such as “idle”, “busy” and “printing”. The string appears on the sending Macintosh’s screen while it is printing, so that you can see what the Harlequin RIP is doing.

type name setprintername -

The setprintername procedure is stored in in statusdict and was originally intended to publish a printer under the name name, a string, and with type type, also a string, on the AppleTalk network. That is, in the Macintosh chooser, name would appear in the printer list when the icon for type (typically “LaserWriter”) is selected.

The Harlequin RIP implements this as a procedure which passes type and name to the %appletalk% device (if any) in version 3.2, and the %config% device in version 3.3 as the device parameters appletalktype and printername (see (v13) %config% device parameters). Because GUI versions of the RIP name their AppleTalk channels through the Page Setup name (in version 3.2) or the Input Manager dialog (in version 3.3), these parameters are ignored in GUI versions, but custom implementations can still choose to use them for their originally intended purpose.

-  printername name

The printername procedure in statusdict returns on the operand stack the name of the AppleTalk printer as passed to setprintername. The same name is always returned—whether or not it was used, and even if the device the name was passed to choose to ignore it completely. However, the name is initialized at the start of the job to the actual AppleTalk name on which the job is being received (if it is arriving on AppleTalk), so providing the job has not attempted to change the printer name with setprintername, name is correct for the job in progress.

-  printermessage string

The statusdict procedure printermessage is provided for compatibility with the Apple Laser-writer. It returns a string on the operand stack which is the string returned by asking the %pagebuffer% device with currentdevparams for a parameter called PrinterMessage (defaulting to an empty string if the parameter is not present). This means that custom implementations can provide a method for communicating printer problems to the PostScript-language world, which is compatible with the LaserWriter.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.