PRC (Palm OS) explained

PRC (Palm Resource Code) is a container format for code databases in Palm OS, Garnet OS and Access Linux Platform. Its structure is similar to PDB databases.[1] Usually, a PRC file is a flat representation of a Palm OS application that is stored as forked database on the PDA.

PRC files are also used by the Mobipocket e-book-reader (here sometimes referred to as MOBI format[2]). The AZW format of Amazon's Kindle reading device is in turn a DRM-restricted form of the Mobipocket format.

On Palm OS, PRC files are used for applications, localized resources (overlays) and shared libraries.[1]

Structure of PRC file

In its essence, a PRC file is similar to a classic Mac OS application. It contains a PRC header, PRC resource headers and PRC resources.[3]

PRC Header
PRC Resource Header
PRC Resources

PRC Header

The PRC header is located at the beginning of the file and contains meta-information on the file:[3]

OffsetNameTypeSize
0x00namechar32 Bytes
0x20flagsinteger2 Bytes
0x22versioninteger2 Bytes
0x24creation time32bit integer - PDB Datetime4 Bytes
0x28modification time32bit integer - PDB Datetime4 Bytes
0x2cbackup time32bit integer - PDB Datetime4 Bytes
0x30mod_numinteger4 Bytes
0x34app_infointeger4 Bytes
0x38sort_infointeger4 Bytes
0x3ctypeinteger4 Bytes
0x40creatorinteger4 Bytes
0x44unique_id_seedinteger4 Bytes
0x48next_record_listinteger4 Bytes
0x4cnum_recordsinteger2 Bytes

PRC Resource Header

For every resource (specified by num_records), there is a resource header containing:[3]

nametypenotessize
namecharName of the resource4 bytes
IDintegerID number of the resource2 bytes
offsetintegerPointer to resource data4 bytes

PRC Resources

Every application contains al least a Code #0 resource with size information and jump tables, a Code #1 resource with executable code and data resources containing pre-initialized values of global variables in compressed form.[3] Other resources that may be contained are forms, form objects, alerts and multimedia data, e. g. images and sounds.

Notes and References

  1. N. Rhodes, J. McKeehan. Palm OS Programming, Second Edition, O'Reilly, 2001, .
  2. MobileRead Wiki: Reference for the MOBI format
  3. Theodore Ts'o (2000) The PRC Format. Accessed on 2009-03-07