The following question is a hot runner on Palm OS forums like 1src:
Where should I put foo Palm OS app? Into RAM, or onto SD card/MMC card/MemoryStick/CF.
This post is my attempt to finally clear out the mess, feel free to link to it as needed.
To get started, we need to define what we are actually talking about. Internal RAM is the memory area that the Palm OS has used since version 1.0. It sits in NVFS or a traditional RAM chip and usually cannot be removed from the device easily. A few classic Palm OS handhelds allowed you to expand their RAM with proprietary expansion cards – but these times are long gone. The CPU can more-less directly run programs from this memory area.
VFS, on the other hand, is external memory much like the hard disk of a PC. It comes in SD, MMC, CF, MeoryStick and other shapes and can even be included into the device. VFS is intended to store large amounts of non-executable data like MP3 songs, movies or documents.
In order to run a program from VFS; it needs to be copied to RAM first. This takes time, and if there isn’t enough RAM free, the app cant start.
Now, a regular Palm OS program that you launch via the launcher, run it and then kick out of the execution space can reside on VFS easily. It gets copied to RAM when started(you can actually take the card out once started), resides there and gets kicked out when you leave it.
However, problems arise when some kind of “background action” is needed. Background action means that the program gets active when another program is beeing displayed. Here are a few examples of background action, and popular examples:
- Notifications, like hardware docked for AutoSync
- Alarms, like Wakeup for Binary Clock or background email check for VersaMail
- Net Lib activity/callbacks, like for VeriChat
- Find support, like in Address Book
Now, if your application does any of the things said above, it cant work from the SD card as it can’t be executed when the notification comes(no copying).
For you as end user, the simplest way to find out if your app can work from VFS is asking the developer. Just send him an email, and he will probably respond very fast. Many programs also contain information about VFS compatibility in their manuals.
Or, just try it out. Copy the app over, and see if it still works ok after you delete the resident RAM copy…