If you download POSE, install it, and run it, the first thing you will see is a prompt to create a new session, and to supply something called a "ROM." You can think of the ROM as a snapshot of the software environment that runs inside a Palm OS device, including the operating system itself, the applications shell and preferences, system components, and the built-in applications.
Just as your PC cannot run without an operating system like Windows, POSE cannot run without a ROM. POSE itself represents an empty shell of a housesupplying POSE with a ROM is like moving in, putting up wallpaper, adding furniture, and stocking the refrigerator. The ROM makes POSE a living, breathing, environment for running Palm OS-based applications.
As you shall see, there is in fact no real difference between ROMs that are used in POSE and the ROMs that are found inside the actual devices. In fact, Palm OS licensees such as Handspring and Sony get tools from Palm that allow them to create their own unique ROMs that are distributed inside of their devices.
Where to Get ROMs
So where does one get a ROM? This is one of the more frequently asked questions by new Palm developers. Many new developers will ask for someone to simply email them a ROM. This is a pointless question, so don't even bother to ask. A ROM is in fact a full copy of the Palm operating system, so it is actually a violation of the license agreement to distribute unauthorized copies of the ROM without permission from Palm.
A ROM is legally obtained by transferring it from an actual Palm OS device or preferably by joining the developer program at Palm. Although it is possible to get by with transferring a single ROM from your Palm OS device, doing so is a cumbersome process, and unless you are keen on purchasing one unit of every Palm OS device ever shipped, you will not get to use POSE to emulate the wide array of devices that your application may encounter in the real world. Thus I highly recommend that you join the Palm developer program, which gives you not only access to a full set of ROMs to test with, but also to a wealth of tools and support from Palm Inc. You can join the developer program at http://www.palmos.com.
After logging into the developer area at Palm OS, you will find you have access to ROMs representing every operating system version that shipped with any modern Palm OS-based device. This instantly gives you the capability to test your applications on every device that is out there, which is a phenomenal benefit of obtaining ROMs through the developer program.
Note that at present, the developer area does not include ROMs from Palm OS licensees; only ROMs from Palm-branded devices are available. For Handspring, Sony, Symbol, or other licensee ROMs, you will need to join the licensee-specific developer programs as well before gaining access to them. Depending on the likelihood that your customers will run your application on the devices, it is probably a good idea to obtain those ROMs for testing as well.
Because Palm is breaking out its OS group from its device group, and is portraying the device group as just another Palm OS licensee, it is unclear at this point whether the OS group will able to make available ROMs from all licensees, or whether the OS group might need to direct developers over to the Palm device group for ROMs in the same manner as other licensees.
The Different Kinds of ROMs
Aside from the ROM variations due to operating system versions and devices, there are a couple of other types of ROMs that are interesting to investigate. The first is what is known as a "debug" ROM. Most of the available Palm ROMs come in "non-debug" and "debug" flavors.
The non-debug ROMs are the same as the ROMs found on devices. The debug ROMs, however, are special versions of the device ROMs that are designed to subject applications to a "stricter" operating environment than that of the regular device. A debug ROM offers extra error checking and debugging features above and beyond what a normal ROM has. Running your application under this environment can help you catch and repair poor programming practices and buggy code that would otherwise be hard to recognize when your application is running on an actual device.
It is highly recommended that you use the debug ROMs regularly in testing your application under POSE. So why wouldn't you just use the debug ROMs all the time? Although strict error checking can expose the most problems with your code, at times in the development of your product it may be inconvenient and/or distracting to have every little error pop up. Also, POSE can be used to demonstrate applications, either internally among development teams, or even to clients and customers. In those situations, you would want to suppress debugging alerts and messages.
Beginning with Palm OS 3.0, ROMs became available in non-English languages. ROMs are now available in English, French, Italian, German, Spanish, and Japanese. Starting with OS 3.5.1, the non-Japanese target language may be selected within a single ROM by the POSE user. Previous versions of the OS require an entire ROM to be distributed for each target language.
Because the Internet generally provides easy access to your applications from all over the world, it is worthwhile testing your application under a variety of languages for compatibility. These ROMs also can be helpful when you create localized versions of your programs.