(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.