[MDA III, XDA III, PDA2k, 9090 Software Upgrading] Tuatara:
Ok ... a couple of things to also remember in all this UPX'ing and compressing ... :-)

1). The IMGFS Filesystem is already compressed.

2). UPX decompression requires available memory/RAM.

3). Direct access into the files (resource usage/extraction) is obviously impossible in a UPX'd exe or dll.

By UPX'ing things you are only gaining the difference between the UPX'd image (which would be uncompressible in IMGFS), and the original compression achieved by the (not as good) IMGFS standard. Also, your RAM overheads (for decompression) are a little bit higher - since not only is IMGFS decompressing, but also UPX (pretty much in-place though).

So, for HUGE applications like ppt.exe, you will see a reasonable gain in ROM space - since the IMGFS compression will not achieve something as good as UPX can. Also, as long as there is no direct usage of resources from the files OUTSIDE of the UPX'd application, you won't experience any issues.

TuMa v1.3 already used some UPX'd applications, and TuMa v1.4 used a few more - but they were carefully chosen and checked. In the end it gained me about 300K in the ROM, which is very worthwhile.

But going "too far" and trying to UPX everything wouldn't be worthwhile. The small ROM gains would (in my opinion) outweigh the dangers of accesibility/stability - especially with PIM managers and other "hacks" which might make direct use of resources in applications.

Each IMGFS sector is 512 bytes (exactly) AFTER compression.

To start with you have 0xD2A8 * 0x80 = 0x1A55000

(53,928 sectors * 512 bytes/sector = 27,611,136 bytes in ROM)

The remainder of the 32K ROM space is used in the boot sector, XIP section, and the portion of the ROM which contains the 'informational' and 'locational' data.

Exceeding the available sectors will create an unusable IMGFS filesystem. Currently mamaich's tools will not check for IMGFS overflow conditions. Always check the Free Sectors and ensure you have at least 1 (in hex or binary). ;-)

Also, I hope to find some time shortly to help in the "BASE ROM" elements of this. I'd like to have a go at optimizing the filesystem (as per TuMa v1.4/v1.5) at the boot level, and also ensuring the driver set used is 100% compatible, and the main registry is 'stripped' of any legacy elements, so as to permit full customization from a "ground up" point. This would include media types, and applications, and any other element (maybe even some core ones?) which are 'additions', and not 'replacements'.

Bepe's methodology is excellent for 'adding' elements to a ROM, but can't 'replace' elements already existing, as the registries will only be merged, not removed. This can lead to some 'interesting' issues. At present I think some of the registry needs to be pruned, and elements in the ROM removed. Once that has been done to a 'mininal' level, and packages made for the elements to add back in, we could have an incredible ROM building system!

ASIDE: I'll like to find some time soon to do this ... life has just been incredibly unfair to me in the past few weeks. The whole family has been in and out of the hospital for 6 weeks now ... both my son and I have pneumonia, which has taken us out of action for a week, and my wife and daughter have bronchitis now. But HOPEFULLY we're all now finally "on the mend", and will be better soon.