Quote:
Originally Posted by user_none
The pdb header is documented on the wiki. Within the pdb container is the a header for the ereader format. It is record 0 of the pdb file. The ereader header is a 132 byte package that defines certain values regarding to the ereader format within the pdb container. The 132 byte ereader header is not defined in the wiki and I have not been able to find it defined fully anywhere.
|
If you know how to read Perl code, this may help
http://cpansearch.perl.org/src/AZED/...ols/EReader.pm . It is part of
EBook-Tools by Zed Pobre.
Here is an excerpt of the ParseRecord0 code:
Code:
my $version; # EReader version
# Expected values are:
# 02 - PalmDoc Compression
# 10 - Inflate Compression
# >255 - data is in Record 1
my $headerdata; # used for holding temporary data segments
my $offset;
my %header;
my @list;
debug(1,"DEBUG: EReader Record 0 is ",length($data)," bytes");
$headerdata = substr($data,0,16);
@list = unpack('nnNnnnn',$headerdata);
$header{version} = $list[0]; # Bytes 0-1
$header{unknown2} = $list[1]; # Bytes 2-3
$header{unknown4} = $list[2]; # Bytes 4-7
$header{unknown8} = $list[3]; # Bytes 8-9
$header{unknown10} = $list[4]; # Bytes 10-11
$header{nontextoffset} = $list[5]; # Bytes 12-13
$header{nontextoffset2} = $list[5]; # Bytes 14-15
$headerdata = substr($data,16,16);
@list = unpack('nnNnnnn',$headerdata);
$header{unknown16} = $list[0];
$header{unknown18} = $list[1];
$header{unknown20} = $list[2];
$header{unknown22} = $list[3];
$header{unknown24} = $list[4];
$header{footnoterecs} = $list[5];
$header{sidebarrecs} = $list[6];
$headerdata = substr($data,32,24);
@list = unpack('nnnnnnnnnnnn',$headerdata);
$header{bookmarkoffset} = $list[0];
$header{unknown34} = $list[1];
$header{nontextoffset3} = $list[2];
$header{unknown38} = $list[3];
$header{imagedataoffset} = $list[4];
$header{imagedataoffset2} = $list[5];
$header{metadataoffset} = $list[6];
$header{metadataoffset2} = $list[7];
$header{footnoteoffset} = $list[8];
$header{sidebaroffset} = $list[9];
$header{lastdataoffset} = $list[10];
$header{unknown54} = $list[11];