〜 Palm ソフトを作ってみよう その1 〜
 
以前、Palm ウエアの開発は GNU で行っていました。 GNU ツールは無償のコンパイラで、ユーザは自分の作成したソースコードをコンパイルし、 Palm デバイス上で動くソフトウエアを作成することができました。しかしながら、 Windows マシン上で開発環境を整えるとなるとコマンドラインでの操作や環境変数設定など、実際のプログラムとは別の壁が立ちはだかり、 Palm ソフトをちょっと作って試してみたい、という人たちには高い壁になっていました。かといっていきなり高価な CodeWarrior を購入するのも...
 
そこでお金をかけずに Palm プログラミングに接してもらい、簡単な Palm アプリ作成を通して Palm プログラマの裾野が広がれば幸い、といった事で書いてみました。
ということですので、これを読んで役立つ人は多分、 C 言語はやったことはある、 Palm プログラムは未経験といった人たちが対象になると思います。( Windows などイベント型アプリ経験者は、理解が早いと思います。 Palm アプリ開発既経験の方は、ほとんど役に立たないでしょう... )
 
お金をかけないと言うことで、本来ならば GNU ツールのダウンロード、インストール、立ち上げと... 解説しようと思ったのですが、私自身かなり忘れてしまっており、今から調べる元気もでないし... そこで CodeWarrior for Palm OS のデモ版を用いて、その開発手法を一通り説明していきたいと思っています。(私は Metrowarks 社とは無関係ですが、デモ版で Palm プログラミングに興味を持たれたら、正規版をお勧めします。正規版の Version9 では、Simulator での安定動作や、 Palm OS 5.0 サポートなど、より深く、より楽しいソフトウエア作成が可能になります。つまりデモ版は評価に用いるという意味ですね。)
デモ版では、作成できるコードサイズが 5K バイトまでという制限があります。何も無い単純なアプリで 4K バイト程度だったので、今後いろいろな API を用いたアプリを説明していくと、デモ版の限界が来ると思います。その時までということで、話を進めたいと思います。
 

 
1回目の今回は、ツールのダウンロード、セットアップ、簡単なアプリの作成、デバッグまでの一連の流れを書いています。
 
■ ツール準備
 
Palm アプリの開発に最低限必要なものは、作成したソースコードをコンパイルするコンパイラと、それを実行&デバッグする環境です。
今回は、コンパイラとして CodeWarrior (GUI デザインツール含む)、実行環境として PalmSimulator を用います。
共に Windows 環境で動作します。 PalmSimulator は、Windows 上で Palm デバイスをシミュレートし、Palm アプリの動作確認が可能なツールです。( PalmSimulator 以前は、POSE と呼ばれるエミュレータを用いていました。 POSE は、Palm デバイスのメイン CPU であった モトローラ 68000 をエミュレートし、Palm の ROM データを与えることで、Palm アプリケーションのデバッグができるというものです。この時用いる ROM データは、購入した実機から吸い上げたり、旧 Palm 社や SONY などの Palm デバイス発売元と契約することでダウンロードし、入手することが可能です。)
PalmSimulator には既に ROM データが添付されているので、POSE の時のような ROM データを別途入手する必要はありません。
 
CodeWarrior のダウンロード
 
開発元 Metrowerks 社のホームページからダウンロードします。
 
 http://www.metrowerks.com/
 
[Download] に入り [CodeWarrior for Palm OS Platform Version 8.0 Demo] を指定。
 
ダウンロード画面では簡単な情報入力が求められます。名前など必要事項を記入し登録すると、登録したメールアドレスにダウンロードアドレスとインストール時のシリアルコードに関する情報が送られてきます。
この情報を元に cwpalmr8.0eval.exe をダウンロードします。
 
PalmSimulator のダウンロード
 
開発元 PalmSource のホームページからダウンロードします。
 
http://www.palmos.com/dev/tools/simulator/
 
[Palm OS 5.3 -- Debug/Release ( 20.4 MB)] を指定してダウンロードします。
 

 
■ CodeWarrior のセットアップ
 
ダウンロードした cwpalmr8.0eval.exe を実行すると、インストーラが起動します。
指示に従ってインストールを完了させます。
 

 
■ PalmSimulator のセットアップ
 
ダウンロードした Palm_OS_53_Simulator.zip を解凍します。
解凍後、...\Debug\enUS\PalmSim.exe が今回使用するシミュレータです。
この PalmSim.exe を起動すると、使用する ROM データを指定するダイアログが表示されます。ここで、...\enUS\NTFullDbg_enUS.rom を指定します。すると Palm デバイスの顔をしたダイアログが表示されます。
 
 
 
本物のデバイス同様、デジタイザの初期化操作を行った後、ホームボタンを押すといつもの Palm のアイコン画面が表示されます。
 
 
 
ここで、CodeWarrior との連携をさせるために1つの設定を行います。
ダイアログ上で右クリックし、メニューから [Settings] - [Communication] - [Redirect NetLib Calls to Host TCP/IP] にチェックを入れておきます。
一旦、Simulator を終了します。
 
 
 
 
■ CodeWarrior で簡単なアプリを作成
 
CodeWarrior を起動すると、何とも素っ気ないダイアログが表示されます。
 
 
メニューバーから、[File] - [New] と指定し、 New ダイアログで [Palm OS Application Stationery] を選択します。
この状態で、 Project name に " test " と入力し [OK] をすると、 New Project ダイアログが表示されます。
 
 
ここで [Palm OS C App] を選択し、 [OK] をすると新たなプロジェクト test が作成されます。
この状態で、メイクボタン(赤丸)を押します。するとコンパイルが実行され、実行可能ファイルが作成されます。
ここで、ファイルをセーブし、一旦 CodeWarrior を終了します。
 
 
 
 
■ CodeWarrior と Simulator を用いたデバッグ
 
CodeWarrior を起動します。 先ほど作成した プロジェクトを読み込むため、メニューバーの [File] - [Open] でダイアログを開き、 test.mcp を読み込みます。
 
 
 
Simulator との連携をとるため、メニューバーの [Edit] - [Preference] から、 IDE Preferences ダイアログを開きます。
[Debugger] - [PalmDebugger Settings] を選択し、 Target として [Palm OS Emulator] を指定し、 Location に先ほどの ...\enUS\PalmSim.exe を設定し、 [Use TCP/IP connection to emulator] にチェックを入れます。
 
これで、 Simulator との連携準備ができました。
まず、 PalmSimulator を起動しておきます。( Palm のアイコン画面状態にします)
 
 
ここで、CodeWarrior のデバッグボタン(青丸印の虫の絵のボタン)を押すと、先ほど作成した test プログラムをダウンロードし、実行後、メイン( C 言語の main() は、Palm では PilotMain() という名になってます)の先頭で止まります。
引き続き RUN ボタンを押すことで、アプリケーションが PalmSimulator 上で動作し始めます。
 
 
 
ここまでが、CodeWarrior と PalmSimulator を用いたアプリケーション開発の流れです。
次回からは、この test プロジェクトを元にちょっとした機能追加など検討していきたいと思います。