logo separator

[mkgmap-dev] Commit: r1268: Make all fields that are known to be variable size

From Steve Ratcliffe steve at parabola.me.uk on Fri Oct 9 15:42:21 BST 2009

Hi

On 08/10/09 17:20, Steve Hosgood wrote:
> That's adapting for the number of entries in MDR1 is it? Forensics on
> other sources of MDR files seems to indicate that the indexes into the
> MDR1 list (which occur in many other MDR sections) may use one or two
> bytes, depending (presumably) on the length of MDR1.

It is pretty much every place that a quantity is stored.  So yes you
are right that the map number (index into MDR1) is two bytes if there
are more than 255 maps.  But there are also minimum sizes that apply.
So the index in mdr11 that points back to mdr5 is always at least two
bytes, and will expand if needed, whereas the pointer in mdr10
is fully variable sized.

I am able to just try setting different minimum values to see what
works and so I currently believe that the index to MDR15 in many of
the sections has a min size of three.

>> There is still a lot unknown in this area and very small maps just do not
>> work.

> Do you know if the definition of "very small map" is that the number of
> cities is less than some given constant, or what?

Maybe, I don't have enough information to know.  Also things get
progressively worse the smaller the map so its not like you get more
than 127 cities and then it suddenly all works or anything.  A map no
more than a mile radius fails even when searching for a city, whereas
on larger files that may be ok and a crash only occurs when attempting
to search for a state/county in the address tab.

..Steve



More information about the mkgmap-dev mailing list