About
Downloads
Register/Buy
FAQ

Manual
Features
Screenshots
Reviews/Media
User Forums
User Contributed
Developer Support
Thanks to...


About
Downloads
Register/Buy
Screenshots
User Forums
FAQ

Free Stuff
CaSTaway
Kronos
Zot!
Columbo
B.o.R.
GuineaPig
GP32
Telnet BBS
ZGrab
DevFAQ
All

Message Board
Support and Contact
Requests and Bugs
Home


Palm OS / Zodiac Dev FAQ

Copyright Codejedi 2004

This is a work in progress and only a very limited work so far :)

Enjoy at own risk ;)

Topics

  • Overview
  • Required background reading
  • Development models and tools for each
    • Pure 68k development - All Palm OS devices, good for newbies
    • 68k with "pnolet" (little ARM code pieces for speed) - Good for general development on all devices (many modern OS5 games use this approach)
    • 68k loader with full app as "pnolet" (68k loader is needed until OS6, but in this context the entire app is in pnolet except the loader) - This is a very powerful approach but can be very difficult
    • Tapwave Native App (TNA) - Requires CodeWarrior but is an easy way to do powerful applications on Zodiac's
    • Non 'C' based development (NSBasic etc)
  • Sneaky tricks
  • Forum links
  • Rudimentary dev kit
  • Sample code and downloads
  • Resources, other toolkits, links
    • Razor library

Overview

TBD

Required reading

Don't even try to read any of this page unless you've already read some of the background information. Some of it I've written, other parts are by others or by first parties. I'm not interested in re-answerign the same question for the 100th time :)

Development models and tools for each

For Palm OS in general, and Zodiac in specific, there are a number of development models due to the history of the platform. Its not an option.. you'll have to pick the one that best fits your needs and go with it.

You can do pretty much everythign in 68k that you can in ARM code. Fullscreen on Zodiac is same as fullscreen on every other Palm OS device.

Zodiac is NOT AN ISLAND UNTO ITSELF.

Models of development:

  • Pure 68k development - All Palm OS devices, good for newbies - FREE

    Original Palm OS handhelds (years ago) were some of the first handhelds and thus were lower power units carefully designed to be handhelds and not game machines; they ran on powerful but battery efficient variations of the Motorola 68000 processor. This platform essentially lasted through to the end of Palm OS 4, with Palm OS 5 being ARM based as we see things today. OS5 and OS6 include PACE, which is a 'layer' of emulation that allows these '68k' applications to run on the ARM based operating system. (OS6 also allows easy native ARM applications.)

    Due to this long history, many tools and samples exist for 68k applications, and to this day every Palm OS application starts life as a 68k application, and most are 100% 68k still. A few have ARM routines embedded within for speeding up time critical functions, while others use the 68k only as a loader to get to a 100% ARM based application. See below for those.

    As such, the most information and help available is available for prue 68k applications, and thus they are easiest to dive into.

    Implications of a pure 68k application:

    • Full device cross compatability; ie: Your application can run on every Palm OS device out there.
    • I wouldn't say slow since most 68k applications *blaze* under OS5, but an application with ARM snippets within can vastly outperform a pure 68k application while on OS5.
    • Cost: Zero. Free. Nada. Squat.

    Tools you'll need:

    Sample code:

    • See the SDK's!


  • 68k with "pnolet" subroutines - FREE

    In this model, you develop what is essentially a pure 68k based application but embed one or more ARM mini applications within it to do grunt work quickly. A little ARM function used to be called an "ARMlet" but is now called a "PNOlet" (for Palm Native Object".

    This is a powerful technique since you can leverage the vast 68k resources, and yet harvest the raw ARM speed as you need it. Many games use this technique to various degrees...

    • Full game with graphics blitting or rendering functions in ARM code
    • Full game with "logic" in 68k, with all the "do it" functions in ARM code
    • Game frontend in 68k (menus, options, loading stuff) while the entire game engine resides in ARM code (see below for that development model)

    Implications:

    • Can run very fast!
    • Can be easy to develop, with little special knowledge needed
    • COST: Free!

    Tools you will need:

    Sample code:

    • See my Kronos project source code

      Kronos is entirely in 68k for CodeWarrior and should be relatively easy to backport to gcc, but has optional PNOlet for faster rendering of Magnetic Scrolls artwork.

    • See the SDK's!

    In this model you will develop several separate applications that link together in the resources, with the 68k code managing the pnolets. More to point, you will write a 68k application that can call specific PNO functions. The 68k application is built with and linked into a .prc with PRC Tools. The PNO subroutines are built with Pnolet tools gcc and linked into the final prc by PRC tools.



  • 68k loader with full app as "pnolet" - Harder with gcc OR Easy with Cost CocdeWarrior

    TBD



  • Tapwave Native App (TNA) - Cost: Requires CodeWarrior

    TBD

  • Non 'C' based development (NSBasic etc)

    TBD

Sneaky tricks

Forum links

Rudimentary dev kit

Sample code and downloads

Resources, other toolkits, links

Send email to Jeff Mitchell at support@codejedi.com