File Structure
All Psion files start with a block of 4 longs: the Header Section. The first three describe what kind of file this is, the last is a checksum.
The exact structure of the remaining file depends on what kind of file this is. But some general things can be said.
ID 10000037 files
Examples of these files are the Word File and Sheet File.
Address Size Description
0000 L UID1: 10000037
0004 L UID2
0008 L UID3
000C L UID4: Checksum of UID1, UID2 and UID3
0010 Offset Offset of Section Table Section
At offset 0010, usually a long is found with the address of the Section Table Section. The Section Table Section contains a list of section identifiers and their addresses.
ID 10000050 files
NOTE: BELOW DATA IS INCOMPETE AND PARTIALLY INCORRECT! SORRY...
Examples of these files are the Data File and Agenda File.
Address Size Description
0000 L UID1: 10000050
0004 L UID2
0008 L UID3
000C L UID4: Checksum of UID1, UID2 and UID3
0010 L Unknown
0014 L Unknown: always 00 00 00 00 ?
0018 LListB The file data
LListE Section start table
There are two ways in which you can see this structure. On the one hand, it contains, starting on address 0018, a sequence of a LListB, a word and a LListE. The LListB contains the bulk data, the LListE contains 5 byte elements with offsets, relative to address 001E, in each last long where all sections start.
On the other hand, at address 001E a list of sections start. Each section starts with a word encoding the length of the section. Seen in this way, the Section Start Table is part of just another of these sections.