TweetFollow Us on Twitter

LaserWriter PAPA Resource

Volume Number: 13 (1997)
Issue Number: 12
Column Tag: develop

LaserWriter 8.5.1: The Extended 'PAPA' Resource

by Richard Blanchard, RBI Software Systems Inc., Ingrid Kelly, Apple Computer Inc. and Chorng-Shyan Lin, RBI Software Systems Inc.

Overview

Starting with LaserWriter 8.5.1, in order to support different types of desktop printers, the 'PAPA' -8192 resource has been extended from 103 to 1024 bytes long. This TechNote discusses the additional bytes and in what way the LaserWriter 8.5.1 driver uses them.

Note: If your code relies on the size of the 'PAPA' resource, it may crash with LaserWriter 8.5.1 unless you update it to support the extended 'PAPA' resource.

The 'PAPA' Resource

The new 'PAPA' looks just like an old style 'PAPA' at the front of the resource; that is, the 'PAPA' resource begins with three packed Pascal strings representing the printer name, the network type (usually LaserWriter), and the printer's zone. After these strings comes the 4-byte network address.

The new extended 'PAPA' then adds desktop printer (DTP) data beginning at the 104th byte in the resource. The data from bytes 104 to 1024 (1-based indices) is a series of tagged blocks where each block contains a 4-byte tag, followed by a 2-byte length value, and then the actual data. A series of these tagged blocks can reside in bytes 104 to 1024.

Tag Requirements

There are a few requirements for the tagged blocks that go into the extended 'PAPA.' They are:

  • The only required block in an extended 'PAPA' is the 'TAGS' tag which gives the number of valid tag blocks in the extended resource. The 'TAGS' block must be the first tag in the extended record and serves as a validity check.
  • When the extended portion of the 'PAPA' contains multiple tag blocks, each block is required to start on a word (16-bit) boundary. Thus, if a tag block has an odd length, there should be a byte of padding before the start of the next tag block.
  • In order to limit the number of clients that need to understand the extended 'PAPA' format, and to make it easier to change the format in the future, the SettingsLib provides routines for creating and accessing the extended 'PAPA.' Relying on the extended 'PAPA' format rather than using SettingsLib is a bad idea. For more information on SettingsLib, please see Apple's TechNote web site.

Tag Types

Tag: 'TAGS'

Value Size: sizeof(UInt16), 2 bytes

The value of the 'TAGS' block provides the number of valid tag blocks in the extended print record including itself. The 'TAGS' block must be the first tag in the extended print record; a valid extended print record must therefore begin with the byte sequence: 0x5441 0x4753 0x0002.

Tag: 'TYPE'

Value Size: sizeof(OSType), 4 bytes

This tag is optional as its contents are redundant given the PAPA zone name string. If this tag does exists, then its value must match, not literally but in meaning, the DTP type implied by the zone string. Here are the zone string mappings to 'TYPE' values:

Zone Name             'Type'        Definition
String              tag value

=Hld                  'Hold'      Creates and holds spool files. The 
                                  spool files are never processed and the	
                                  DTP is not connected to a real printer.
=Fil*                 '=Fil'      Creates PostScript or EPS files, is 
                                  not connected to a real printer.
=Cst*                 '=Cst'      Creates a PostScript file and then launches
                                  an application to post-process the file.
=LPR*                 '=LPR'      Sends a PostScript job using the    
                                  LPR protocol.
=Ird*                 '=Ird'      Sends a PostScript job over an irda,
                                  infrared, channel.
Valid Zone string      'PAP'      Uses the AppleTalk PAP protocol to print 
                                  the job.

In the preceding mapping, the '*' in the zone name string is a wildcard which can be replaced by zero or more characters of any value. The DTP Utility uses this part of the zone name string to differentiate between DTP printers of the same type with the same name located in different folders.

Beside the tag values 'Hold', '=Fil', '=Cst', '=LPR', '=Ird', and 'PAP ,' other tag values may be added in the future for new DTP types.

Tag: 'TCP '

Value Size: variable size string

If the DTP printer type requires a TCP/IP network address, it is placed in the extended PAPA using the 'TCP ' tag. The value of the tag block is the network address of the printer either as a fully qualified network address, such as colorlaser.apple.com, or in dot format, such as 204.188.109.151.

This tag is required for DTP printers of type '=LPR.' The length of the string is determined from the block length.

Tag: 'Q'

Value Size: variable size string.

If a DTP can use a print queue name, as can LPR DTPs, then the print queue name is placed in a tag value block of type 'Q .' The length of the string is determined from the block length.

Summary of DTP type, zone names, and tags.

DTP Type           PAPA Zone String        Extended Data Tags
PAP                Actual Zone Name        'TYPE' is 'PAP '
Hold                  "     "    "         'TYPE' is 'Hold'
Save to File            =Fil*              'TYPE' is '=Fil'
Custom                  =Cst*              'TYPE' is '=Cst'
LPR	                    =LPR*              'TYPE'is'=LPR'
                                           'TCP'is printer's net address
                                           'Q'is optional and is the name of 
                                           the print spooler.
InfraRed                =Ird               'TYPE'is'=Ird'

Summary

This TechNote has documented the changes in the 'PAPA' resource in LaserWriter 8.5.1. Please beware if your application depends on the size of the 'PAPA' as it may no longer work with LaserWriter 8.5.1.

Further Reference

Acknowledgements

Thanks to Leticia Alarc'n, John Blanchard and Paul Danbold


Richard Blanchard has been programming LaserWriter 8 since its inception and one day hopes to finish it. Working at RBI Software Systems, Inc. Richard, from day to day, codes in C, C++, and Java and tries to draw a bead on the future of network printing.

Ingrid Kelly works in Apple’s Developer Technical Support group. She was sad to see the Blue Angels air show season end this year, but never fear, she is already counting down the days until the start of next year’s air show season. 99...98...97...

Chorng-Shyan Lin is a Macintosh developer at RBI Software Systems, Inc. He can be reached via email at lin@rbi.com.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

5 slither.io mash-ups we'd love to...
If there's one thing that slither.io has proved, it's that the addictive gameplay of Agar.io can be transplanted onto basically anything and it will still be good fun. It wouldn't be surprising if we saw other developers jumping on the bandwagon,... | Read more »
How to navigate the terrain in Sky Charm...
Sky Charms is a whimsical match-'em up adventure that uses creative level design to really ramp up the difficulty. [Read more] | Read more »
Victorious Knight (Games)
Victorious Knight 1.3 Device: iOS Universal Category: Games Price: $1.99, Version: 1.3 (iTunes) Description: New challenges awaits you! Experience fresh RPG experience with a unique combat mechanic, packed with high quality 3D... | Read more »
Agent Gumball - Roguelike Spy Game (Gam...
Agent Gumball - Roguelike Spy Game 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: Someone’s been spying on Gumball. What the what?! Two can play at that game! GO UNDERCOVERSneak past enemy... | Read more »
Runaway Toad (Games)
Runaway Toad 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: It ain’t easy bein’ green! Tap, hold, and swipe to help Toad hop to safety in this gorgeous new action game from the creators of... | Read more »
PsyCard (Games)
PsyCard 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: From the makers och Card City Nights, Progress To 100 and Ittle Dew PSYCARD is a minesweeper-like game set in a cozy cyberpunk... | Read more »
Sago Mini Robot Party (Education)
Sago Mini Robot Party 1.0 Device: iOS Universal Category: Education Price: $2.99, Version: 1.0 (iTunes) Description: -- Children's Technology Review Editor's Choice -- | Read more »
How to get a high score in every level o...
Sky Charms is an adorable match three puzzler that provides a decent challenge thanks to its creative level design. It regularly presents something new, forcing you to think on your feet. [Read more] | Read more »
Apestorm: Full Bananas (Games)
Apestorm: Full Bananas 1.0 Device: iOS Universal Category: Games Price: $.99, Version: 1.0 (iTunes) Description: ***Launch sale – limited time only!*** Fugitive Apes have taken to the skies in search of revenge after humans have... | Read more »
How to create bigger words in Spellspire
Words have power. At least they do in Spellspire,a game about blasting out magical attacks by making words out of a jumble of letters. And it's a lot of fun. But if you want to be the best, you're going to have to think tactically when you start... | Read more »

Price Scanner via MacPrices.net

15-inch 2.2GHz Retina MacBook Pro on sale for...
Amazon.com has the 15″ 2.2GHz Retina MacBook Pro on sale for $1699.99 including free shipping. Their price is $300 off MSRP, and it’s the lowest price available for this model from any reseller (and... Read more
Apple Beats Microsoft at Own Game; Amazon Pri...
First quarter seasonality combined with an overall disinterested customer base led to an annual decline of 14.7% in worldwide tablet shipments during the first quarter of 2016 (1Q16). Worldwide... Read more
Aleratec Releases Mac Software Upgrade for 1...
California based Aleratec Inc., designer, developer and manufacturer of Portable Device Management (PDM) charge/sync products for mobile devices and professional-grade duplicators for hard disk... Read more
Sale! Amazon offers 27-inch iMac, 13-inch 2.9...
Amazon has the 27″ 3.2GHz 5K iMac and the 13″ 3.9GHz Retina MacBook Pro on sale for $300 off MSRP, each including free shipping, for a limited time: - 27″ 3.2GHz/1TB HD 5K iMac (model MK462LL/A): $... Read more
Apple refurbished 13-inch Retina MacBook Pros...
Apple has Certified Refurbished 13″ Retina MacBook Pros available for up to $270 off the cost of new models. An Apple one-year warranty is included with each model, and shipping is free: - 13″ 2.7GHz... Read more
13-inch 2.7GHz/128GB Retina MacBook Pro on sa...
Take $200 off MSRP on the price of a new 13″ 2.7GHz/128GB Retina MacBook Pro (model MF839LL/A) at Amazon. Shipping is free: - 13″ 2.7GHz/128GB Retina MacBook Pro: $1099.99 $200 off MSRP Act now if... Read more
Apple refurbished clearance 15-inch Retina Ma...
Apple has Certified Refurbished 2014 15″ 2.2GHz Retina MacBook Pros available for $1609, $390 off original MSRP. Apple’s one-year warranty is included, and shipping is free. They have refurbished 15... Read more
27-inch 5K iMacs on sale for up to $150 off M...
B&H Photo has 27″ 5K iMacs on sale for up to $150 off MSRP including free shipping plus NY sales tax only: - 27″ 3.3GHz iMac 5K: $2199 $100 off MSRP - 27″ 3.2GHz/1TB Fusion iMac 5K: $1849.99 $150... Read more
What Does The Refreshed 12-Inch MacBook Tell...
A lot of commentators are complaining that Apple’s update of the 12-Inch MacBook last week is a bit of a damp squib. I don’t know what they were expecting, since it would be very unlike Apple to do a... Read more
Free Wittify Keyboard Now Available On The Ap...
A team of Harvard Business School students have announced that the Wittify Keyboard, a new app utility for iOS devices, is now available on the Apple App Store. The Wittify keyboard and application... Read more

Jobs Board

*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Solutions Consultant - Apple (United...
# Apple Solutions Consultant Job Number: 48260200 Phoenix, Arizona, United States Posted: Apr. 22, 2016 Weekly Hours: 40.00 **Job Summary** As an Apple Solutions Read more
Restaurant Manager (Neighborhood Captain) - A...
…in every aspect of daily operation. WHY YOU'LL LIKE IT: You'll be the Big Apple . You'll solve problems. You'll get to show your ability to handle the stress and Read more
Simply Mac *Apple* Specialist- Service Repa...
Simply Mac is the largest premier retailer of Apple products in the nation. In order to support our growing customer base, we are currently looking for a driven Read more
*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.