[Upgrading, Modifying and Unlocking] cavyman:
That is actually a harder question to answer than it may seem. First of all, caching icons is still typically going to be done in the RAM. The pagepool is a hard concept to grasp for someone who has had no real programming experience before. I have no idea if you fall in that category or not, but I will try my best to give an easy idea of what the pagepool does.

At a very high level, the smaller the pagepool, the more free RAM you will have available. Conversely, the larger the pagepool the less free RAM you will have.

In a standard PC CPU, you have a hierarchy of memory referred to as L1 and L2 cache. L1 cache on a full blown CPU is the closest thing to compare to the Axim's pagepool. When a program gets into any sort of loop (a Do...While, For...Next, etc...), there is a certain block of code that is going to probably be executed many times. This block of code is what gets copied, essentially, into L1 and L2 cache for a PC. The same concept occurs with an Axim pagepool. The idea is to get code that is going to be used most often as close to the CPU as possible so that execution time is reduced as much as possible. Compared to L1 and L2 cache, RAM is VERY SLOW. It's hard to imagine RAM being that slow, but it is when compared to CPU cache.

So to put this in more practical terms, if you are primarily running one or two applications on your Axim at any given time, a smaller pagepool is most likely going to be fine for you. What this means is that when you open up PIE, for example, up to 4mb of the 4mb total of this ROM's pagepool can be used to store code that is accessed most often in PIE. That is typically more than enough pagepool to allow PIE to run quickly. Images and text (web content) are still stored in RAM and eventually cached to your persistent storage. But portions of the PIE program code are what is stored in the pagepool.

Let's say that you have PIE open and then you open Pocket Outlook. Well, what happens is that now you are sharing 4mb of pagepool between two programs. Though this is not exactly how the pagepool is portioned, you can think of this as now each program only has 2mb of pagepool available to use. You all can do the math from there and figure that for each additional program you open, the pagepool available to each program becomes increasingly smaller.

Now, I said that my example above is not exactly an accurate representation of how the pagepool is portioned. What I mean by that is that some system programs (services) will always be using a portion of the pagepool. Services that always run when your Axim is running will always be using some of the pagepool. So, you don't actually have 4mb of free (usable) pagepool in this ROM for your programs. Another trick is that a program loses focus to another program, the program that lost focus will have some or all of the code in the pagepool purged. The program that gained focus then is allowed to load more of its own code in the pagepool. So each running program does not get an exact, even chunk of the pagepool.

Let me put this in very practical terms. If you primarily use PIE and POutlook, the 4mb pagepool will probably be very beneficial to you as neither program will need much pagepool space at all and a lot more RAM will be available for caching images and text. However, if you typically run many programs at a time, or if you run a lot of heavily CPU intensive programs (ie. audio capture utilities, heavily math intensive apps, audio/video viewers, etc..), you probably would benefit from a larger pagepool as more of a heavily CPU intensive program's code (or lots of smaller programs' code) can be kept in the pagepool for faster execution.

If anyone needs me to clarify this more, I would be glad to do so. Just let me know. I hope this helps out some! :cool: