#define dmDBNameLength	32	/* 31 chars + 1 null terminator */

struct pdb_header {	/* 78 bytes total */
	char	name[ dmDBNameLength ];
	Word	attributes;
	Word	version;
	DWord	create_time;
	DWord	modify_time;
	DWord	backup_time;
	DWord	modificationNumber;
	DWord	appInfoID;
	DWord	sortInfoID;
	char	type[4];
	char	creator[4];
	DWord	id_seed;
	DWord	nextRecordList;
	Word	numRecords;

struct pdb_rec_header {	/* 8 bytes total */
	DWord	offset;
	struct {
		int delete	: 1;
		int dirty	: 1;
		int busy	: 1;
		int secret	: 1;
		int category	: 4;
	}	attributes;
	char	uniqueID[3];


The PDB (Pilot Database) file format is used by all models of the Palm Pilot and IBM Workpad. The format consists of a header followed by a set of record headers followed by the records themselves.

Word Sizes

In the SYNOPSIS above, the types ``Byte,'' ``Word,'' and ``DWord'' are used just as in the Pilot headers. The type ``Byte'' is 8 bits; ``Word'' is 16 bits; ``DWord'' is 32 bits. The latter two are in big-endian format.



The C structures given in the SYNOPSIS above are illustrative and most likely will not work in actual C code since compilers align data members on word boundaries.


The PDB file format presented here is not official and was written at the time when PDB file format was not public. It is possibly outdated. The official standard is available on the Palm web page. (SEE ALSO)


txt2pdbdoc(1), html2pdbtxt(1), pdbtxt2html(1), doc(4)

Palm Computing Inc. Palm File Format Specification, 2000.


Paul J. Lucas <[email protected]> Updated by Erik Schanze <[email protected]>