Warning: This software is not production quality, nor should it be used on production systems. It is by no means stable, and may cause damage or loss of data to your PalmOS-based device. The developers of WabaJump work hard to prevent such occurances, but not all of the code has been tested. Please run your own exhaustive tests on any software you write that uses WabaJump!
What is WabaJump?
WabaJump is a Java API to allow programs written for the Waba or SuperWaba VMs to be compiled to PalmOS PRC files, removing the need for a VM to be installed. This also allows people who currently write Jump programs to use an easy API, while keeping the power and speed of Jump.
What do I need to use WabaJump?
You will need the following programs:
*Jump 2, beta 2 requires a patch that is currently only available from the Jump newsgroup, pilot.programmer.jump. You can get to this newsgroup from news.massena.com. Hopefully by the time you read this, the patch will be available on the Jump web page.
How do I convert my existing Waba app to use WabaJump?
This is something that takes a few steps, but is still relatively easy to do.
Step 1: Create a .jump file for your app. Let's say your app is called MyApp. You would create a file called MyApp.jump, and the contents would look like this:
appname=MyApp
appid=MyAp
This is a simple file. appname is the name of your application as it will appear on the PalmOS device, and appid is your app's creator id.
Step 2: Create a .rcp file. A .rcp file is used by PilRC to include resources such as images and icons into your app. Let's say that MyApp uses two bitmaps and an icon. The MyApp.rcp file would look like this:
BITMAP ID 101 "image1.bmp" COMPRESS
BITMAP ID 102 "image2.bmp" COMPRESS
ICON "icon.bmp"
Make sure that you use unique numbers for the bitmap ids.
Step 3: Go through your code, and everywhere that you refer to an image files, replace the filename with number you assigned that file in Step 2.
For example, if MyApp contained this code:
Image img1=new Image("image1.bmp");
Image img2=new Image("image2.bmp");
it would be changed to this code:
Image img1=new Image(101);
Image img2=new Image(102);
Step 4: Add a PilotMain function to your app. This is easy, just copy the following example, changing MyApp() to the name of your class that extends MainWindow().
public static int PilotMain(int cmd, int cmdBPB, int launchFlags)
{
if(cmd!=0) return 0;
(new wabajump.sys.JumpApp(new MyApp())).start();
return 0;
}
Step 5: Let's compile! Compiling is itself a multi-step process, so you want to make a batch file or shell script to compile for you. One thing before I show you an example, I discovered I had to copy Pilot.inc and startup.inc from Pila into my app's directory in order to compile. If there is a better way to do this, I would like to know about it.
Your batch file/shell script should look similar to this:
javac -classpath c:\wabajump\classes *.java
pilrc -R MyApp.res MyApp.rcp
set JUMPCLASSPATH="c:\jump\jar\jump.jar;.;c:\wabajump\classes;%CLASSPATH%"
java -classpath %JUMPCLASSPATH% Jump -m MyApp
pila MyApp.asm
That's it! You should now have a MyApp.prc file which you can upload to your PalmOS device.
Why do I keep getting unallocated memory errors with Palm OS Emulator?
This is caused by Jump's garbage collector. It's quite harmless on an actual device, although Ralf Kleberhoff (developer of Jump 2) has stated that he will improve the garbage collector soon. If you get a different error from POSE, such as invalid handle or bus error, please report this to the WabaJump developers. (See the "How do I report bugs?" section)
How do I report bugs?
Visit the official WabaJump website at http://wabajump.org, there will be a link to report bugs.
How do I get support for WabaJump?
Visit the WabaJump website (see above) for links to a support discussion forum for WabaJump. You may also check out the newsgroup, pilot.programmer.jump, hosted by news.massena.com.
Source Code License
I'm not sure about the legalities involved with the hundreds of different licenses out there but in general I feel that if you use WabaJump in a commercial, shareware, or freeware program, no source code is required to be distributed, but should you make changes to WabaJump that are useful to everyone, you should submit them to the WabaJump developers.
|