mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-06-23 15:30:45 -04:00
105 lines
4.0 KiB
Plaintext
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
|
|
|