PDB (Palm OS)

PDB adalah format wadah untuk database rekaman di Palm OS, Garnet OS, dan Access Linux Platform. Strukturnya mirip dengan basis data sumber daya RRT. Format eBook PalmDOC adalah versi khusus dari format PDB.

Struktur file PDB

File PDB berisi header PDB, header catatan PDB, dan catatan.

PDB Header
PDB Record Header
PDB Records

Judul PDB

Header PDB terletak di awal file dan berisi informasi meta pada file

Offset Name Type Size
0x00 name char (Modified ISO-8859-1) 32 Bytes
0x20 file attributes integer 2 Bytes
0x22 version integer 2 Bytes
0x24 creation time 32bit integer – PDB Datetime 4 Bytes
0x28 modification time 32bit integer – PDB Datetime 4 Bytes
0x2c backup time 32bit integer – PDB Datetime 4 Bytes
0x30 modification number integer 4 Bytes
0x34 app_info integer 4 Bytes
0x38 sort_info integer 4 Bytes
0x3c type integer 4 Bytes
0x40 creator integer 4 Bytes
0x44 unique_id_seed integer 4 Bytes
0x48 next_record_list integer 4 Bytes
0x4c num_records integer 2 Bytes

Tajuk Rekam PDB

Untuk setiap catatan, ada header catatan delapan byte, yang berisi:

name type size notes
offset integer 4 bytes Byte number in the PDB file (counting from zero), where the record is located
attributes byte 1 byte Attributes of the record (delete/dirty/busy/secret/category)
UniqueID integer 3 bytes Always 0

Catatan PDB
Sekarang catatan itu sendiri mengikuti. Urutan yang biasa adalah AppInfoArea, SortInfoArea dan record, secara berurutan.

Waktu Tanggal PDB
Banyak file format PDB menggunakan penghitungan waktu dalam hitungan detik dari 1904-01-01T00:00:00. Ini adalah waktu dasar yang digunakan oleh Macintosh asli (hingga Mac OS 9). Dapat dicatat bahwa ada hubungan erat antara Palm OS dan Mac OS selama pengembangan awal. Menggunakan integer 32-bit yang tidak ditandatangani dan zaman 1904, integer overflow akan terjadi sekitar tahun 2040.

Orang lain dapat diamati menghitung dari 1970-01-01T00:00:00 (waktu dasar zaman Unix), dan menggunakan bilangan bulat 32-bit bertanda tangan yang akan meluap sekitar tahun 2038.

Palm OS Protein C/C++ Compiler Language & Library Reference, Hak Cipta 2004 Palm Source menyebut tanggal yang dihitung dari tahun 1904 sebagai “zaman Palm lama”, dan tanggal yang dihitung dari tahun 1970 “zaman UNIX”. Protein C juga menyediakan fungsi (palm_seconds_to_time_t(), dan time_t_to_palm_seconds() ) untuk mengonversi keduanya.

Beberapa sumber bahkan menyarankan beberapa file yang sangat lama mungkin menggunakan penghitungan waktu dari tahun 1900 (yang akan konsisten dengan zaman Excel).

Sayangnya, konflik antara era Palm (Mac OS 9) lama dan era UNIX ini, heuristik berikut mungkin berguna saat memeriksa file yang disalin dari perangkat Palm OS:

  • Jika waktu telah menetapkan bit atas, itu adalah nomor 32-bit yang tidak ditandatangani yang dihitung dari 1 Januari 1904
  • Jika waktunya jelas, itu adalah angka 32-bit bertanda yang dihitung dari 1 Januari 1970.
    Ini didasarkan pada gagasan bahwa, jika tidak, waktunya akan sebelum tahun 1972 atau sebelum tahun 1970 (tergantung pada interpretasi) dan format PDB belum ada.

Utilitas palmdump dan perangkat lunak lain menggunakan aturan praktis ini saat membaca file.

This entry was posted in . Bookmark the permalink.
Table of Contents