[Introduction] [Address.dat/Address.aba] [Datebook.dat/Datebook.dba] [Todo.dat/Todo.tda]
[Users.dat] [Not So FAQ's] [Home]

Palm Pilot Desktop Software MEMOPAD.DAT and MEMOPAD.MPA File Structure

Field Name Type Size Comments
Version Tag Char 4*Byte 0x00 0x01 0x50 0x4D (MP10) for Memopad
File Name CString   Fully Qualified Filename of file on PC
Table String CString   Custom show header
Next Free Long 4*Byte Next Free Category ID
Category Count Long 4*Byte Count - 1 of the number of category entries (does not include Unfiled category)
Category entries Category-Entry   Occurs category count times
Resource ID Long 4*Byte Schema Resource ID
Fields per Row Long 4*Byte Schema Fields per row. Will be 6 for memopad.
Rec ID Pos Long 4*Byte Schema Record ID Position (index to field table entry that contains record id)
Rec Status Pos Long 4*Byte Schema Record Status Position (index to field table entry that contains record status)
Placement Pos Long 4*Byte Schema Placement Position (index to field table entry that contains record placement position)
Field Count Short 2*Byte Schema Field Count (number of fields in schema) Corrected April 19, 2000
Field Entry Short 2*Byte Schema field entry occurs field count times. For memopad the entries will be 1,1,1,5,6,1 Corrected April 19, 2000
Num Entries Long 4*Byte Record count * 6 (number of field entries in entire file, as noted, divide by 6 to arrive at actual record count)
Memopad entry Memopad-Entry   Occurs with record count

Category-Entry

Field Name Type Size Comments
Index Long 4*Byte Category Index
ID Long 4*Byte Category ID
Dirty Flag Long 4*Byte Category Dirty Flag
Long Name Cstring   Long Category Name
Short Name Cstring   Short Category Name

Memopad-Entry

Field Name Type Size Comments
Field Type Long 4*Byte value 1 Integer
Record ID Long 4*Byte
Field Type Long 4*Byte value 1 Integer
Status Field Long 4*Byte Bitwise Record Status: Pending = 0x08, Add = 0x01, Update = 0x02, Delete = 0x04, Archive = 0x80
Field Type Long 4*Byte value 1 Integer
Position Long 4*Byte
Field Type Long 4*Byte value 5 Cstring
Padding Long 4*Byte Always 0x0000
Memo Text Cstring Memo text
Field Type Long 4*Byte value 6 Boolean
Private Long 4*Byte 1 = True
Field Type Long 4*Byte value 1 Integer
Category Long 4*Byte

Cstrings

Cstrings are stored as follows:
  1. Strings less than 255 bytes are stored with the length specified in the first byte followed by the actual string.
  2. Zero length strings are stored with a 0x00 byte.
  3. Strings 255 bytes or longer are stored with a flag byte set to 0xFF followed by a short (2*Byte) that specifies the length of the string, followed by the actual string.

Field Types

The schema mechanism uses field types to identify the data. The meanings of the field types are in the table below.

Number Meaning
0 None
1 Integer
2 Float
3 Date
4 Alpha
5 Cstring
6 Boolean
7 Bitflag
8 RepeatEvent


Last updated: October 26, 2002