Epoc32 File formats: Longs in intel byte order, hex. XX means one byte. UID Checksum: ---------------------------- The epoc file store mechanism uses 3 UIDS and a checksum at the beginning of each file for identification purposes. Each of the four parts are longs, stored in intel byte order. The checksum consists of to parts: - the first half is the crc16 of the 1. and 3. byte of UID1, UID2 and UID3, in that order. - the second half is the crc16 of the 2. and 4. byte of UID1, UID2 and UID3, in that order. MBM (Multi BitMap) ---------------------------- Epoc Id: 3700 0010 (KDirectFileStoreLayoutUidValue) Mbm Id: 4200 0010 (KMultiBitmapFileImageUid) Constant: 0000 0000 (UID3, which is not needed in this case) Checksum: 3964 3947 (Checksum of the 3 UID's; Constant for all MBM's ) TrailerOffset: XXXX XXXX (Offset of [Trailer] in the file) [ From here it repeats for each picture ] [Header] Length: XXXX XXXX (Includes these bytes) Headerlength: 2800 0000 (Always 0x28) X-Size XXXX XXXX (Width of image in pixels) Y-Size XXXX XXXX (Height of image in pixels) Twips-X XXXX XXXX (Width of image in twips, i.e. 1/1440 inch) Twips-Y XXXX XXXX (Height of image in twips) BitsPerPixel XXXX XXXX ImageIsColor XXXX XXXX PaletteSize XXXX XXXX Compression XXXX XXXX (0:No, 1:8BitRLE, 2:12BitRLE, 3:16BitRLE, 4:24BitRLE) [ Data ] - Not RLE compressed lines are rounded to 8 byte boundery - RLE (??? UNCOMPLETE) [Picture loop end ] [Trailer] NumberOfPics XXXX XXXX (Number of pictures in the mbm file) Offset 1 1400 0000 (Offset of first chunk, always 0x14) Offset 2, if present ... AIF (Application Information File(?)) ---------------------------- Epoc ID: 3700 0010 (KDirectFileStoreLayoutUidValue) AIF ID: 6a00 0010 (KUidAppInfoFile8) App UID: XXXX XXXX (UID of the application) Checksum: XXXX XXXX (Checksum of the 3 UID's.) TrailerOffset: XXXX XXXX (Offset of [Trailer] in the file) [mbm file, without trailer and header, the repeating stuff only] [for each caption:] Length: XX (Length_of_Caption*4 + 2, e.g. 14 for "OPL") Caption: ABCDEFG (The string itself, whithout suffix or prefix ) [caption loop end] [Trailer] CaptionNo: XX (Number of Captions * 2) [for each caption:] Offset: XXXX XXXX (Offset to the length byte for the caption) LangCode: XXXX (See e32std.h, e.g.: ELangEnglish) [caption loop end] IconNo: XX (Number of picture-pairs * 2) [for each picture] Offset: XXXX XXXX (Offset of picture in the file) Size: XXXX (Width or Height of picture in pixels) [picture loop end] Constant: 0100 0000 (?) Embeddable: 0X00 0000 (X = KAppEmbeddable ? 1 : KAppEmbeddableOnly ? 2 : 0) NewFile: 0X00 0000 (X = KAppSupportsNewFile ? 1 : 0) Hidden: 0X00 0000 (X = KAppHidden ? 1 : 0) [ Following seems to be optional: Must be MIME types ] ???? 0100 0000 ???? 00