calibre/format_docs/pdb/pdb_format.txt
2011-02-02 20:51:58 -05:00

105 lines
4.0 KiB
Plaintext

Format
------
A PDB file can be borken into multiple parts. The header, record 0 and data.
values stored within the various parts are big-endian byte order. The data
part is is broken down into multiple sections. The section count and offsets
are referened in the PDB header. Sections can be no more than 65505 bytes in
length.
Layout
------
PDB files take the format: DB header followed by the record 0 which has
contained format specific iformation followed by data.
DB Header
0 Record 0
.
. Data (borken down into sections)
.
Palm Database Header Format
bytes content comments
32 name database name. This name is 0 terminated in the
field and will be used as the file name on a
computer. For eBooks this usually contains the
title and may have the author depending on the
length available.
2 attributes bit field.
0x0002 Read-Only
0x0004 Dirty AppInfoArea
0x0008 Backup this database (i.e. no conduit exists)
0x0010 (16 decimal) Okay to install newer over
existing copy, if present on PalmPilot
0x0020 (32 decimal) Force the PalmPilot to reset
after this database is installed
0x0040 (64 decimal) Don't allow copy of file to be
beamed to other Pilot.
2 version file version
4 creation date No. of seconds since start of January 1, 1904.
4 modification date No. of seconds since start of January 1, 1904.
4 last backup date No. of seconds since start of January 1, 1904.
4 modificationNumber
4 appInfoID offset to start of Application Info (if present)
or null
4 sortInfoID offset to start of Sort Info (if present) or null
4 type See above table. (For Applications this data will
be 'appl')
4 creator See above table. This program will be launched if
the file is tapped
4 uniqueIDseed used internally to identify record
4 nextRecordListID Only used when in-memory on Palm OS. Always set to
zero in stored files.
2 number of Records number of records in the file - N
8N record Info List
start of record
info entry Repeat N times to end of record info entry
4 record Data Offset the offset from the start of the PDB of this record
1 record Attributes bit field. The least significant four bits are used
to represent the category values. These are the
categories used to split the databases for viewing
on the screen. A few of the 16 categories are
pre-defined but the user can add their own. There
is an undefined category for use if the user or
programmer hasn't set this.
0x10 (16 decimal) Secret record bit.
0x20 (32 decimal) Record in use (busy bit).
0x40 (64 decimal) Dirty record bit.
0x80 (128, unsigned decimal) Delete record on
next HotSync.
3 UniqueID The unique ID for this record. Often just a
sequential count from 0
end of record
info entry
2? Gap to data traditionally 2 zero bytes to Info or raw data
? Records The actual data in the file. AppInfoArea (if
present), SortInfoArea (if present) and then
records sequentially