PALM PROGRAMMING: The Emulator


The illustration is of the binary 'pose'. It emulates the palm model of your choice, and runs any number of resource files that you choose to put on that palm..

In theory, an emulator is not necessary, you could, in theory, simply load and run on the palm.



In reality, loading resource files to palms is

  • slow and tedious
  • dangerous
The steps below will get your pose emulator created. It is the first step in this SxS, because it's important to get something functional, early.




Step Zero:

You must already be in a position to load apps into your palm. Use jpilot, kpilot, or even console app pilot-xxx. Windoze loaders are no use to you here. You must already have established communicaton with /dev/pilot in Linux. Back out of these steps and do so.





Step One: FLTK Widget set.

pose uses fltk as it's gui widget set. Not not gtk+, not xforms, fltk.

fltk is not part of general distros, not redhat, not suse. You must download and comple fltk from source.

go to www.fltk.org

The file you want is NOT the latest 'n greatest.

You need fltk-1.0.11-source.tar.gz

If you attempt to compile ftk-1.1.xxx, it wont. It doesn't work in Linux (without a patch)
If you attempt to compile ftk-2-CVS, it won't, it is windoze centric with crlf's


download and unpack
./configure
make
make install # as su


Step two: The emulator and skins

http://www.palmos.com/dev/tech/tools/emulator


download the source (emulator_src_33.tar.gz)
AND
download the skins (emulator-skins-18.tar.gz)

unpack and change to the ~/Emulator directory, then

cd BuildUnix
./configure
make

Unusually, there is no make install associated with this build. A binary called pose is created in the ~/BuildUnix folder. Since there are other items in this tarball tree of use, I prefer to do the following to execute pose

ln -s <location of emulator src>/BuildUnix/pose $HOME/bin/pose


In otherwords, I am leaving everything exactly as-is, and providing a convenient symlink

You are not ready to use pose yet.



Step Three: Skins

similarly unpack the skins tarball.

There is NO compilation or configuring required. You are done.

Skins are simply widget emulations of all models, all variants, of palm and relatia. You have no control directly, over which skin is used. pose discovers that for you.
pose will look in the $home directory for it's /Skins. As a convenience

ln -s ~/Skins_v1.8  $HOME/Skins

IE. put a symlink to wherever you unpacked the skins tarball

Step Four: The Target Rom prc file


pose
being an emulator, emulates a palm device. The best device to emulate, is yours.

You need the rom contents of your palmtop. Later on, you can branch out and get any number of rom contents from any model from the PalmOS site. The most important ones being the debug versions. But right now, yours is best.

Fire up your preferred pilot program (Kpilot, Jpilot etc), select the following prc to load into the palm, and, of course, hotsync

~/ROMTransfer/Source/ROM_Transfer.prc

Step Five: Getting the target rom

After succesful transfer, you should see a rom transfer icon on the palm.

Completley remove any hotsync daemon. Do not allow Kpilot (for instance) to activate, monitor, or take over /dev/pilot.

Fire up pose for the first time and right click.

Select rom transfer and follow the instuctions.

(Basically hit the palm icon for same, and click next)


Save the file appropriately, in my case I chose the name ~/BuildUnix/m100.rom

Note Bene: pose looks for it's rom emulations in it's startup folder, NOT, $home


Step Six: Select your rom

right click on pose and select new

it will ask you for a location of a rom, select yours.


Step Seven: Ready Set Go.

From now on, firing up pose will automatically invoke the correct skin with a base set of prc files for that model. You can add prc's simply by right click->adding.

Once added, you can test them to your heart's content. You could, initially, add some of the files you have saved away during (jpilot) backup, or, you could use a series of example prc's in the ~/Emulator tree.

Step Eight: Heavy Bedtime Reading

~/Docs/UserGuide.pdf for more info. This is an excellently written blurb on how to use pose and what it can do for you. It is packed with erroneous windoze/mac examples, but the Linux ones get equal billing. Worth a read.


Enjoy!

Next -> The SDK


searchSearch Index