Module Compression
Martin Avison (27) 1494 posts |
When the module Initialisation Code offset at module+4 has bit31 set, it indicates the module is compressed. In this case: Does the rest of that word still hold the Initialisation offset? These do not seem to be covered by the Relocatable Modules File Format wiki page. |
Stuart Swales (1481) 351 posts |
I was surprised to notice this myself for the first time just the other day. When did compressed modules become a thing? |
Rick Murray (539) 13851 posts |
RISC OS 3? The code responsible (…kernel.s.unsqueeze) is dated “15-Feb-90”. |
Martin Avison (27) 1494 posts |
After a bit more digging round in my memory, I can answer myown questions!
No. It holds the length of the compressed module.
Yes. Everything, including the header, is replaced. I discovered this after remembering two utilities in the DDE.Apps folder – !ModSqz and !UnModSqz |
Andrew Rawnsley (492) 1445 posts |
IIRC back in the Acorn era, !Squeeze was part of the C toolkit, but ModSqueeze was only available on request / via developer support. I remember receiving it from Sue Wall, I believe. I remember it was a life saver (well, not literally) when we did SecureSockets module, and needed it to fit on the floppy disk! |