Palmwareプログラミングに関して

まずは、ツールのインストールから

フリー(助かります)の開発環境としてGCCをベースに考えます。

ツールのインストールについては、いろいろなサイトにおいて、既に書かれてい ます(私も参考にさせていただきました)が、ちょっと古かったりしたので、自分 がやった方法を下記に残しておきます。

ツールとしては、Palm社が提供しているものとHandspring社が提供しているもの があって混乱する面があり、また、リソースというもののために、第3者がフリー で提供しているツール(Pilrc)を使う必要があるなど、最初はわけがわかりませ んでした。(と言って、今も明確にわかっているわけではありませんが。。。)

2001年9月現在の状態にアップデート中です。

【Palmツールインストール手順】

現在(2001年9月)であれば、基本的にPalm-Japanのページに書かれた方法で開発環境は整備でき ます。
ここから デベロッパーゾーン(上部中央)を経て、左のデベロッパをクリックし、本文タイ トル(Developers)の下にあるメニューの開発ツールをクリックするとと各種のツー ルのリンクが書かれたページにたどり着きます。
こ こです。
ここからまず、PRCツールへ移動し、必要なツールをダウンロードします。
開発に必要なものは、以下の4つです。それとデバッグのためのエミュレータで す。

その手順は、下記参照。
私の環境は、Windows98なので、Windowsでのインストールの項目に従います。

  1. Cygnus-Win32をインストール
    《ダウンロード》
    (ここには、親切に「Handspring社のGCCツールを用いている場合、これは同ツー ルと共に既にインストールされているcygwin_b20.1.exeと同一です」と書かれて います。バージョンは、必ずb20.1というβ版を使ってください。cygwinは現在 1.1とかのバージョンが出ていますので注意して下さい。)。

    ということで、Visor使いの私は、Handspring社のページからダウンロードしま した。
    Handspringのペー ジから、デベロッパー→Handspringのデベロッパーサイトへはこちらから。 →(GO)はじめに→開発キットを入手してください→ソフトウェア開発キットへ  とたどっていって移動します。ふ〜長い。 直接行く方は、ここです。
    現在リンクが切れています。
    恐らく日本Handspring社の縮小のため、サポートができなくなったためと思われ ますが、日本語のページがリンクから外れ、米国のページへ行くようになってい ますが、まだ、古い情報も残っているようです。
    日本語ではないので、たどりにくいかもしれませんが、ここです。
    ここから、Handspring PalmOS GNU Tools:内の Cygwin.exe Ver B20.1(〜13.9MB)と PalmOSGNUTools(1.10).exe (〜15MB)をダウンロードします。56Kモデムでは、ちょっとダウンするのに苦労 しました。
    2001年9月現在は、Version2.03(〜20MBと巨大です)になっています。

    《インストール》
    1. Cygwin.exeは、そのままインストールします。いろいろ聞かれますが、 デフォルトのままでいいでしょう。
      デフォルトでは、C:\Cygnus へUNIXでおなじみのコマンド類がインストー ルされます。

    2. PalmOSGNUToolsも、そのままインストールします。このツールは、2の PRC-TOOLSと同等の環境で、簡単なのですが、古いバージョン(0.5)をベースに作っ てあるためか、例題をコンパイルする時などうまく行きませんでしたので、折衷 策を取っています(後述)。
      PalmOSGNUTools 2.03はPRC-tools 2.0をベースに しているようですので、現在は、折衷策は必要ないかもしれません。(未確認で すm(__)m) 注:こんな使い方は、複雑なので、Palm社のみの環境で構築し たほうがいいのかも知れません。
      デフォルトで、C:\Handspring\PalmToolsにインストールされます。この時、リ セットが必要です。
      利点としては、こちらは、スタートメニューに登録されます。また、Palm-RCと いうprcファイルからrcpを取り出すことができるツールがあったりするので、結 構便利だったりします。

  2. PRC-TOOLSをインストール
    Handspringの環境では、バージョンが0.5なので、Palm-Japanに掲載されている ツールもインストールします。
    《ダウンロード》
     一度Palmのページに戻って、 PRCツール2.0をダウンロードします。こちらは、バージョンが2.0です。
    PRCツールの本バージョンには浮動小数点に伴うバグがあり、浮動小数点と整数 型との間の変換がうまく機能しません。このバグはPRCツール2.1で修正される予 定です。修正されるまでの間、浮動小数点を用いるアプリケーションを開発する 場合は、UnixまたはWindowsに対応する本代替ライブラリをダウンロードしてく ださい。浮動小数点を使用していなければ、このバグは何ら問題ありません。 とありますので、float.zip もダウンロードします。FuncCalcのようなソフトの開発には重要です。
    《インストール》
    1. ファイルをクリックするとインストールでき、デフォルトで
        ツール類     C:\Program Files\PRC-Tools
        ドキュメント類  C:\PalmDev
      に格納されます。スタートメニューには、登録されないので、自分で環境の設定が 必要です。(後でやります)
    2. また、float.zipを展開し、READMEに書かれている通りに、2つのファイルを格 納します。libgcc.aは元のファイルと置き換えます。
      デフォルトでは、以下のディレクトリにあるファイルと置き換えます。。
      C:\Program Files\PRC-Tools\H-i586-cygwin32\lib\gcc-lib\m68k-palmos\2.95.2-kgpd\libgcc.a
      また、もう1つlibnfm.aも同一のディレクトリに格納します。

      以下のディレクトリにも同様に入れ替えます。(実際は、多分上の方しか使って いないと思うけど、ちゃんと整理していませんのでわかりません。こんなことで いいのか?) C:\Handspring\PalmTools\lib\gcc-lib\m68k-palmos-coff\2.7.2.2-kgpd-071097  ディレクトリの下に
        libgcc.a  ←浮動小数点のバグFix版
        libnfm.a

      これは、READMEに
      	m68k-palmos-gcc -o myapp main.o calcs.o libnfm.a
      
      のように使うと書かれていますが、使っていません。

  3. Palm SDKをインストール
    《ダウンロード》
     プログラムのコンパイルには、SDKと呼ばれるSoftware Development Kitが必 要です。
     現在SDKには、3.1以前のものと、3.5、それに最新の4.0とありますが、3.5を 使いましょう(でも、私の使っているVisor Deluxeは、Ver.3.1なので、厳密な意 味では、3.5で開発すると動作しない場合もありますが、現状できるだけ新機能 は使わないようにしています)。3.5のダウンロードには、 ここPalm OS(R) SDK version 3.5から行くと、英語のページに 行きます。
    契約書なので、一応ちゃんと読んだことにして、ここのページの一番下にI Agreeを押して、Windowsの項目のツールをダウンロードします。以下の4つ+1 をダウンロードしましょう。

    もし、3.1以前のものが必要であれば、それもダウンロードして下さい。古いバー ジョンのPalm用のソフトを作るときは必要だそうです。
    このページの一番下から、SDKバージョン1、2、および3.1のWindows版がダ ウンロードできます。ファイル名:palmos-1-2-3.1-sdks-1.zip(701KB)

    Visorは、3.1ですが、浮動小数点がうまく動作しなかったため、FuncCalcでは、 3.5を使用しました。ただし、3.5の新機能は使っていないので、Visorでも動く のだと思います。(本当か?)
    《インストール》
    1. sdk35-prc.zipは、解凍して、Palm OS 3.5 SDK for prc-tools.exeを起動します。 デフォルトで、C:\PalmDev\sdk-3.5 にインストールされます。
    2. palmos-1-2-3.1-sdks-1.zipは、インストーラがないので、解凍して C:\PalmDev\includeへ移動します。
      その後、sdk-3.1\include\core\以下のファイルをC:\PalmDev\includeにコピー します。
    3. その他のファイルは、適当に解凍して使って下さい。

  4. リソースコンパイラのインストール
    《ダウンロード》
     最後に画面の情報であるメニューなどの設定をするリソースコンパイラをダウ ンロードします。
    このペー ジから最新版をダウンロードしましょう。
    現在は,v2.8になっています。Archiveには、古いバージョンもあり、場合によっ ては古いものをインストールしても構いません。ちなみに、私はまだv2.7のままです。
    ファイル名:pilrc_w32.zip(398KB)
    《インストール》
    ダウンロードしたpilrc_w32.zipを適当なディレクトリに解凍して、その解凍し たディレクトリ直下にあるpilrc.exeを  C:\Program Files\PRC-Tools\H-i586-Cygwin\bin へ移動すれば、使えるようになります。その他のドキュメントやなどは、適当に 使って下さい。

  5. 実行パスの設定
    ここからが、設定として重要です。今回の折衷案の場合特に。

    まず、シェルとして、HandspringのPalm-Bash.BATを使う(スタートメニューから Handspring→tools→Palm-Bash shellを選択して下さい)ことを考えます。
    簡単には、これだけで、Bashシェルがウィンドウが起動します。
    lsとかpwdとかUNIXコマンドを知っている人は、入力してみましょう。上カーソ ルで入力ヒストリも使えます。

    ただし、これだと使いにくい面もあるので、下記のファイルに手を加えました。
    (ファイルは、デフォルトのままインストールしたと仮定しています。)
     C:\Handspring\PalmTools\bin ディレクトリの下の
      Palm-Bash.bat
      Palm.bashrc
      Palm-RunGnu.bat
     C:\Handspring\PalmTools\m68k-palmos-coff\include\ ディレクトリの下の
      setjmp.h
      specs
    これらの変更が本当に必要かわかりませんでした。このページに書いてあったのですが。。。
    1. Palm-Bash.BATを修正(以下のように)(お好みで)
      以下の3行を追加。PATHの設定と、HOMEの設定をします。HOMEはお好みに合わせ てどうぞ。
      cls
      SET PATH=c:\progra~1\prc-to~1\h-i586~1\bin;%PATH%;
      rem set HOME=//d/My_Documents/palm_file(HOMEはAutoexec.batで設定)
      
      メニューのPalm-Bashを右クリックでプロパティを変更しましょう。
      プロパティはプログラム終了時にウィンドウを閉じる(こうするとCtl-Dで終了と 同時にウィンドウが閉じます)、マウスを範囲指定に使う(簡易編集モード)を設 定して使いやすくしましょう。
      また、プロパティのその他のその他の「高速に貼り付け」は、チェックを外して おきます。こうすると、別ウインドウでコピーしてPalm-Bashのウインドウへ貼 り付けができるようになり、便利です。
    2. palm.bashrcを以下のように修正
      このファイルは、bashの起動時の設定を決めています。
      これは、好みの問題でもありますが以下を追加して、.aliasを読みこむことと、 プロンプトを変更します。
      # Show slashes (/) next to directories for the ls command
      #alias ls='ls -F'
      #change by K.Ohno
      source /cygnus/.alias
      
      # Show the current working directory in the bash prompt
      # PS1="\W\$ "
      #change by K.Ohno
      PS1="\! \W>"
      
      デフォルトのままだと、alias設定がされていませんので、UNIXを使っていた人 (私)にはちょっと使いにくく、上記のようにして、aliasの設定をしました。
      1. 上に書いてあるpalm.bashrcの変更により、起動時に.aliasの読み込みを指 定します。
      2. C:\cygnus\.aliasというファイルを作成しました。
        内容は、以下のような感じです。詳しくは、UNIX関係の本を見て下さい。
        alias a=alias
        a so=source
        a ls="ls -CF"
        a la="ls -CFa"
        a lt="ls -Flt | less"
        a ll="ls -Fla"
        
        a hi=history
        a cp="cp -i"
        a rm="rm -i"
        a rmdir="rmdir -i"
        a mv="mv -i"
        a head='head -30'
        a tail="tail -30"
        a md=mkdir
        a rd=rmdir
        a more=less
        a which=type
        
    3. mountの変更
      初期のmount状態
      bin$ mount
      Device           Directory           Type        Flags
      C:\Handspring    /usr/local          native      text!=binary
      C:\Program Files\PRC-Tools /prc-tools          native      text!=binary
      C:               /                   native      text!=binary
      
      ここまで。

      私の環境では、以下のようにマウントしてあります。
      4 bin>mount
      Device           Directory           Type        Flags
      c:\Handspring    /usr/local          native      text!=binary
      c:\tmp           /tmp                native      text!=binary
      C:\Program Files\PRC-Tools /prc-tools          native      text!=binary
      d:               /d                  native      text!=binary
      c:\cygnus\cygwin-b20\H-i586-cygwin32\bin /bin                native      text!=b
      inary
      C:\PalmDev /PalmDev            native      text!=binary
      c:               /                   native      text!=binary
      
  6. POSE(Palm OS Emulator)のインストール

    《ダウンロード》
    Palm Computing社のページでPalm OS Emulator のページへ行き、そこの指示に従って下さい。
    《インストール》
    1. ダウンロードしたemulator-win.zipと、スキンファイル emulator-skins-18.zip、skin_j.zipを解凍し、Skinsというディレクトリに格納 してください。こうしないとSkinを読み込めません。
      Visorのスキンは、ここの一 番下からダウンロードして解凍後、Skinsディレクトリ下のHandspringディレク トリに格納しておいて下さい。
    2. 次にROMファイルを何らかの方法で、入手します。
      私は、自分のVisor Deluxeから取り込みました。Visorの場合は、付属のROM Transfer.prcは、シリアル転送なので、取り込めず、こちらのページの方法 を使いました。この時、Handspring社のPalm-Debuggerが役に立ちます。
      Handspringのページ内を探して下さい。
      やり方を下記に書くと(リンクが切れるとまずいので、ほとんど写した状態です。 visorzfanさん、すいません。)、
      1. Palm-Debugger.exeを実行。
      2. [Connection]を"USB"に変更。
      3. クレードルにVisorをセットし、メモ帳を立ち上げる。
      4. 適当なメモ帳を開き、"ショートカット(筆記体のL).(ドット)1"と入力。
      5. するとPalm-Debbuger上の"Debbuger"窓にメッセージがでてくるのでデバッ グモードに入ったことがわかる。このとき、Visorは操作できなくなっているの で注意すること。
      6. "Debbuger"窓へ※save "visor.rom" 10c00000 400000と入力後Enterを入力すると、吸い上げが始まり、表示が0%から 100%になれば完了。
      7. [reset]と入力後Enter。デバックモードを抜 ける。
      8. "visor.rom"というファイルが、C:\Handspring\PalmTools\bin\Deviceの 下にできているはず。ない場合は、検索して探して下さい。
      9. Visorはリセットして、デバッグモードから抜けて下さい。

      取り込んだROMデータは、先ほどインストールしたemulatorのディレクトリに格 納しておきます。

    《使い方》
    1. Emulatorを立ち上げます。
    2. ROMファイル、Device、Skin、RAMサイズの選択をして起動します。いつも見 慣れているPalmの画面がでれば、後は、実物と同様に使用できます。好きな Palmwareをドラッグしてエミュレータの画面上に持ってくるとインストールでき ます。
    3. 右クリックするとコマンドメニューがでます。Exitで終了です。この時の状 態をセーブできますので、セーブしておきましょう。

  7. その他の環境設定
    デフォルトのままだと、私がいつも使う、whichコマンドが使えませんの で、インストールします。 私は、Uxtl1412cという、ウインドウズ上で使えるUNIX系のコマンドツールを使っ ています。そのページは、こちら。 cygwinでは、whichはtypeと同等なので、alias which typeとして使っています。 ややこしくなるのと、特に現状問題もないので、Uxtl1412cは使用をやめました。
実際のプログラムの作成に関しては、以下のページが詳しいので、そちらを見て下 さい。(思いっきり手抜きですが、私は、これらのページでプログラムを作成して 来たので、大変ためになります。)
ぱむpamu?の Palmware 作成講座(理論は後からついてくる?!)
脱力ゲームの作り方講座1の猿でもわかる!うっき〜ぱ〜む脱力ゲームの作り方講座
他にもありますが、今回はこのくらいに。
これ以降は、これらにページに触れられていないTIPSについて、書いていこうと思 います。

参考文献:DOS/Vマガジン(2000年10/15号)に書かれた方法


Meadowを使ってコンパイル
  1. インストール

  2. まず、Meadow(メドウ?と読む)をダウンロードしてきます。 私は、ここから、Meadow-1.14-i386-base.tar.gzだけをダウンロー ドしました。このファイルだけで、8632kBもあるので、ダイヤルアップでは大変 です。(早くYahoo!BBが開通しないものか?すでに予約から2ヶ月)本当は、全部 で3つのファイルがあるので、残りも余裕がある方はダウンロードしましょう。
    めどうさん -- Meadow 入門 --With Emacsのページが参考になると思います。
    これを解凍して、適当なディレクトリに格納(私は、c:\Meadowに入れました)し ます。それから、DOS窓などで、c:\Meadow\1.14へ移動し、installを起動します。 この時、.emacs(色々な設定情報が入っているファイル)を読み込むディレクトリ を聞かれるので、自分の環境に沿って設定(私は、 c:\Meadowc:\home\ohno)して下さい。

    Tips:実は、ここで、私ははまりました。上に書いたように c:\Meadowに.emacsを格納しているのですが、読みに行ってくれませんでした。 これは、MeadowがHOME環境変数が設定されていると、そちらを優先するためとい うことです。ご自分の環境に合わせ注意して設定して下さい。

    ここで、必要な設定を行います。変更必要なファイルは、Autoexec.batと.emacs です。

    Autoexec.batの変更
    以下のような設定を追加して下さい。私の環境ではHOMEは使っていません。
    .emacsの変更
    これは、付属のdot.emacs.jaを.emacsに名前を変更して使えばいいのですが、 今までのmuleでの環境とは、フォントも変わってしまいいやだったので、色々調 べて変更しました。恥ずかしながら、私の.emacsをここに置いておきます。muleと共用できる形に なっています。
    shellとして、Palm-Bash.batを指定しています。PATHを通すことをお忘れなく。

    また、漢 字モード時にサーチをできるようにするものcygwinの mountをシェルモード時に使えるようにするものをc:\Meadow\site-lispの下 に入れておきます。
  3. シェルの起動

  4. M-x shellと打つといつも見慣れた、Bashが起動するはずです。
    あとは、普通に使ってください。

  5. 現在の問題点