Am Dienstag, den 19.02.2008, 16:48 +0100 schrieb Patrick Georgi:
How about doing segments per file (like right now), and simply prepending their data "section" with the load address (as they already get special treatment anyway).
Follow up to this issue: the first bytes would also be compressed (otherwise we have a special case again).
Currently the decoding routines only decode a whole file, but at least lzma is capable of stopping after a given number of output bytes. The only remaining issue is that the actual starting position for the decode is then 4 bytes below the intended loading position.
Just decoding the first 4 bytes into some scratch space probably won't work (easily) because the lz-family uses decompressed data as dictionary space..
This could be solved by ordering the segments by the lar tool to be highest-start-address-first, but this detail would have to be documented in a way that no-one will ever stumble over "weird 4 byte memory corruption" without quickly figuring out what's going on.
Comments?
Patrick Georgi