Psion (EPOC) での開発の概要

最終更新: 2006年5月7日 (近藤の連絡先メールアドレスを変更)


はじめに

Psion 製品には、SIBO アーキテクチャと呼ばれる 16bit 世代の機械 (3mx,Siena など) と、 EPOC という OS を載せた 32bit 世代の機械 (5mx,revo,7 など) があります。 また、最近の携帯電話に搭載されている SymbianOS は、 EPOC の後継に当たりますが、開発手法が若干違っていたりします。 ここでは、以下のように分類して、それぞれ簡単に説明します。


ER5 マシン向けの開発

SIBO のことや linux の話はよく知らないので、 話を EPOC での開発だけに限定します。 Symbian から提供されている開発環境には、 OPL / C++ / Java の 3種類の選択肢があります。 Symbian (EPOC の開発元) による 簡単な説明 (日本語) はこちら

各言語ごとの情報 (ER5)

ここでは、EPOC Release 5 (ER5) での開発について、 特に Symbian 純正開発環境の用意されている 3つの言語について説明します。

  1. OPL (BASIC ライクな言語) でセルフ開発。
    通勤電車の中でプログラムが書ける点に魅力を感じている方が多いようです :-) ただし、Psion のラインナップの中で、 revo だけは標準で OPL 開発環境を搭載していません (別途インストール可能、詳細は後述)。
    1. おおやまさんのサイトに、解説や掲示板があります。
    2. 3lib の Programming ページでは、 OPL の詳しいチュートリアルが読めます (英文)。 また、@nifty AMIGA フォーラムの皆さんが中心となって、 和訳を公開されています
    3. OPL で組んだプログラムの実行速度は、それほど速くありません。 しかし、OPX と呼ばれる外部ルーチンの呼び出し機構を持っており (Windows で言う DLL のようなもの)、 速度の必要なところで併用すると効果的です。 OPX は、また OPL で扱えない機能を使うためにも使われます。 公開されている OPX の一覧は、 EPOC WorldMcAleely.com にあります。
    4. OPL のリファレンスマニュアルは、本体の付属 CD-ROM に入っています。 Psion 標準アプリケーションの Data で読める版 を インストールしておくと便利です。
    5. セルフ開発だけでなく、OPL SDK (入手方法は後述) には Windows 上で動作するエミュレータが入っていて、 クロス開発もできます。
    6. OOPL, OPL+ など、OPL に対して機能強化を図った言語も 幾つか存在します。 OPL+ (shareware) は revo 上でも動きますが、 メモリ的に厳しいと感じます。
    7. revo には標準では OPL 開発環境が搭載されていませんが、 自分でインストールすることが可能です。 My Psion でログインすると、 Software Downloads の下に「OPL editor for Revo」として配布されています (参考: 付録1)。
  2. C++ を使って、PC 上でクロス開発。
    Visual C++ とエミュレータを使って Windows 上で開発し、 デバッグが終ったらクロスコンパイラでコンパイルして 実機 (Psion) で走らせるという手順です。
    1. セルフ開発はできません。
    2. C++ SDK が必須です (入手方法は後述)。
    3. Visual C++ を、SDK とは別に自分で用意する必要があります (一番安い版で OK)。
    4. Unix での gcc (g++)、あるいは Win32 での MFC ベースの開発と比べると、 ずいぶん癖があるので、最初は戸惑います。 特に、メモリ管理周りとディスクリプタは、難解だと思います。
    5. 開発時に、 EikonWizard を使うと便利です。
    6. linux でのクロスコンパイル環境については、epocemx (後述) を参照してください。
    7. SDK を Windows2000 にインストールした時のメモは こちら
  3. gcc (C/C++/Objective C) を使ってセルフ/クロス開発
    1. epocemx を使うと、linux 上でクロス開発できます。
    2. 更に、epocemx を使うことで、セルフ開発も可能です。 例えば、netBook (64MB に増設済み) と 5mx Pro 日本語版 (32MB) の上で、 lha for Unix を make できることを確認しています。
    3. epocemx は開発環境としてだけでなく、実行環境としても使い勝手が良いです。 例えば emxconsole は、Symbian 純正の ESHELL の機能を全部含んだ上で、 キーボード上にない vertical bar 等の文字の入力機能が追加されています。
  4. Java
    セルフ開発・ クロス開発 (ER5 Java SDK 使用) ともにできる筈ですが、経験無いのでちょっとパス。
    Java 自身、5mx では動作しますが、series5 では動かないと思います。 また、revo でもメモリが少ないので実用的ではないと思います。

その他の言語 (ER5)

Symbian から提供されていない、 ユーザレベルで移植されているプログラム言語としては、 以下のようなものがあります。

  1. perl
    Olaf Flebbe 氏による移植版 (perl-5.6.1 for EPOC Release 28)があります。 E-shell から呼び出して使います。 Psion や EPOC 特有の機能は使えないようです。
  2. Python
    2種類の移植版 (Otfried Cheong 氏, Duncan Booth氏) があります。この言語はよく知らないので、紹介だけ。
  3. Prolog
    B-Prolog が動くそうです。
  4. 数式処理・数値解析
    開発に挙げて良いのかどうか判りませんが、 HartMath Yacas 等が動きます。

その他の情報源 (ER5)

その他の情報源としては、Symbian による公式なサイトである EPOC World が 第一に挙げられます。 上記 3種類の開発言語の SDK も、ここから無料で 入手できます

EPOC World には日本語のページもありますが、情報量は少ないので、 英語のページを読まれることをお勧めします。

書籍としては、以下があります。

  1. PSION Series5 完全マニュアル (イケショップ; 通常書店での扱い無し)
    →OPL マニュアルの関数部分(+α) が、和訳されて掲載されています。
  2. The Book of PSION (毎日コミュニケーションズ ISBN4-8399-0441-3)
    →「OPL使いへの道」として、1章を割いて 簡単なプログラミングができるようになるまでを実践的に説明しています。 初心者向け?
  3. Professional Symbian Programming
    →英文ですが、C++ での開発について SDK の説明よりも詳しくてお勧めできます。 Amazon.com で購入できます。

プログラミングの学習に欠かせないのが、 既に存在するプログラムのソースコードですが、 EPOC City (現 SymbCity) の Features - Japanese & Psion で 日本語表示に関する各プログラムを紹介しています。

Psion の日本語環境としては標準になった感のある UniFEP V2 / UniFEP Pro ですが、 これらに関する開発関連情報は、 エヌフォーのサイト Symbian Platform Development で公開されています。


EPOC Release6 (ER6) 以降 / SymbianOS

最終更新: 2003年9月21日 (各 SDK・開発ツールの情報を更新)

(注) 本項の内容は、「SymbianOS での開発 (概要)」 にまとめ直しましたので、そちらを御参照ください。 参考用として、古い内容を以下に残しておきますが、 混同されないようにお願いします。

EPOC は Release 6 (ER6) になって、SymbianOS v6.x と呼ばれるようになりました。 同時に、SymbianOS v7.x を搭載した機種も発売されています。 これらの開発環境は ER5 とは別で、現在入手可能なものには以下があります。 開発のための書籍も、いくつか発売されているようです。
また、ER6 になって SDK のドキュメントが整備されたようで、 9210 SDK のドキュメントは、ER5 の開発にも便利だという意見もあります。

  • Nokia 9200 の SDK
    フォーラム・ノキア に登録すると 無償でダウンロードできる他、 CD-ROM でも配布されています。 Personal Java 開発ならばこれだけで行けますが、 エミュレータ上での C++ 開発・デバッグのためには、以下の開発ツールが推奨されています。
    • Microsoft Visual C++ 6.0
      (既に出荷停止らしいが、後継の Visual Studio .NET でも動作するとのこと)
  • Nokia Series60 の SDK
    フォーラム・ノキア に登録すると 無償でダウンロードできる他、 CD-ROM でも配布されています。 エミュレータ上での C++ 開発・デバッグのためには、以下の開発ツールが推奨されています。
    • Metrowerks CodeWarrior
      (Series60, UIQ 用; v2.0 の Personal Edition が USD 399 / Professional Edition が USD 1674。15日間の試用版有り)
    • Borland C++ Mobile Edition for Series60, Nokia Edition
      (Series60 のみ; Forum Nokia のサイトから無償ダウンロード可能。 Borland からダウンロードできるものとは異なり、 Borland C++Builder Version 6 Personal Edition の限定版を含んでいる)
    • Borland C++ BuilderX Mobile Edition
      (Series60, UIQ 用; USD400 だが、Mobile Edition の同等機能は Developer Edition にも入っているそうで、ボーランド製品ユーザならば割安に購入可能; Developer plathome 2.0 for Series60 または UIQ SDK 2.1 が必要。Bluetooth 経由での実機デバッグ可能なのが特徴?)
  • Sony Ericsson P800
    Symbian OS 7 UIQ SDK for Sony Ericsson P800 Ericsson Mobility World から無料でダウンロードできます。 インストールした際のメモを、 「Symbian OS 7 UIQ SDK のインストールメモ」 のページに書きました。
    同 SDK には、UIQ エミュレータや Java のテスト環境が入っています。 また、gcc (arm-epoc-pe,thumb-epoc-pe,i686-pc-cygwin32) も含まれていますが、 エミュレータ上での C++ 開発・デバッグのためには以下のいづれかの開発ツールが推奨されています。
  • OPL
    Psion 製品に古くから搭載されていた、BASIC に似た言語です (ER5 の項を参照)。 2003年4月に Symbian からオープンソース化され、 sourceforge で開発が進められています ( http://sourceforge.net/projects/opl-dev/)。 2003年5月現在、SymbianOS 6.x を搭載した Nokia 9210 用のリリース版と Series60 用のα版が、LGPL で公開されています。

ER6 での開発については、 [psion-ml:0900] (2000年11月14日) であきらんさんの簡単なレポートがある他、 2ch で関連の話題が出ているそうです


付録1: revo で動く texted (OPL エディタ) を、Windows2000 で作成したメモ

最終更新: 2002年8月8日 (Symbian 謹製 OPL 開発環境のリンク先)

【最初にご注意】 revo plus の登場に伴い、2000年9月に Symbian (My Psion) から revo 用の純正 OPL 開発環境が公開されました (前述)。 ですから、以下の作業を行う必要はありません。 ここでは、過去の記録として残してあります。

revo には標準では OPL が搭載されていませんが、 texted が、C++ SDK に含まれています (OPL SDK は未確認)。 revo への載せ方については、 日本語の記事が登場したので、こちらを参照されると良いでしょう。

私は、以下のように載せました。 EPOC World discussion.epoc.OPL ニューズグループで、 2000年1月17日の「Revo OPL」と題する mmurray 氏の投稿から始まる、 一覧のスレッドに書かれています。 要約すると、以下のようになります。

  1. Windows マシンと、ER5 C++ SDK を用意する。
  2. 適当な空ディレクトリを用意する。
  3. Sylvain Michel 氏の記事に添付されている バッチファイル revo_OPL.bat を入手し、 上記のディレクトリに置く。
  4. 同バッチファイルを編集し、 環境変数 drv_epoc32 を C++ SDK のインストールしてあるドライブ名に、 target を上記ディレクトリに書き換える。
  5. コマンドプロンプトで、同バッチファイルを実行する。
  6. 同ディレクトリに texted.sis ができるので、 revo にインストールして使う。
  7. ここで作った texted は、ライセンスの関係上 二次配布することができない。 そのため、自分で作って使うしかない。

なお、近藤が試したところ、Windows2000 では

echo &EN > %pkgfile%
という行がエラーになってしまいました (& が特別な文字として扱われる模様)。 そのため、「&EN」という文字列だけを含んだファイル en.txt を作成しておいて
copy en.txt %pkgfile%
に変更して作成しています。

このバッチファイルの入手先であるサポートフォーラムは、 よくある web (http) ではなくて、 NetNews (nntp) という形でしかアクセスできません。 私はマイクロソフトの Outlook Express 5 を使っていますが、 [ツール]→[アカウント] で新しいアカウントを作成し、 サーバに publicnews.epocworld.com を指定すると 読めるようになります。

また、似た方法は、 revo world の記事にも書かれています。


rey@fb3.so-net.ne.jp 近藤玲史
[Home] / リンクについて