2009年3月17日火曜日

Ubuntuで、HP-GCC !

はるまき様のWikiを参考に、UbuntuでHP-GCCを入れてみました。と書こうかと思ったのですが、Egan Ford氏のHP-GCCパッケージが初心者にとても使いやすく、これで取り敢えずは簡単なCのプログラムが動いてしまったので、その報告を行います。

Egan Ford氏のサイトから、hpgcc-linux.tgzというファイルを持ってきて、ホームディレクトリに展開すれば、これで導入は終わりです。簡単でしょう。もちろん、本格的にHP-GCCを活用するのであれば、はるまき氏紹介の方法の方が良いのでしょうが、取り敢えずCのプログラムをHP50gで動かしたいという初心者には、この方法がおすすめです。

** Egan Ford 氏サイト

「Extend your 50g with C (HPGCC 2.0SP2)」
http://sense.net/~egan/hpgcc/

しかし、これだけではコンパイルの環境が用意されて居りません。Ubuntuの場合、次の2つのパッケージをSynapticsを使い、導入しておきます。

** build-essential
** libgtk2.0-dev

Ford氏のパッケージの便利なところは、HPAPINEも同じMakefileでコンパイル出来てしまう所です。それでは、Ford氏に従いCプログラムをコンパイルしてみましょう。
先ずは端末を動かし、hpgccディレクトリに移動します。

cd ~/hpgcc

続いて、つぎのように入力します (点、スペース、「hpgccenv」、Enter)。

. hpgccenv

これで、環境変数を設定しました。後は、コンパイラを動かすだけです。でも、その前に作業用のディレクトリを用意しておきましょう。ここでは、展開して出来上がった「hpgcc」ディレクトリの中に「user」というディレクトリを設けました。以降は、このディレクトリの中で作業するので、つぎのように端末に入力して、ディレクトリを移動します。

mkdir user
cd user

続いて、ここへ「hpgcc/test/Makefile」をコピーしておきます。後はCのプログラムソースファイルを置きますが、ここでは「hpgcc/2.0SP2/examples/balls.c」を例に使う事にしました。

cp ../test/Makefile .
cp ../2.0SP2/examples/balls.c .

これで、コンパイルの準備が整いましたので、端末から

make

と入力すると、電卓向けのバイナリ「balls.hp」が作られる筈です。しかし、出来上がったバイナリは実機(電卓)に持っていって初めて実行できるものであり、開発を行うUbuntu側では実行できません。そこで登場するのが「HPAPINE」です。実は、Ford氏のパッケージでは、同じMakefileでHPAPINEを使って、Ubuntu上で実行可能なバイナリも作れるのです。

HPAPINEは、「HP-calc API Not Emulator」の略だそうで、電卓のエミュレータではなく、電卓のAPIをUNIXで実行できるように置き換えたもののようです。そのため、HPAPINEを用いると、電卓向けのCプログラムをPC-UNIXでコンパイルし、実行できるようになります。電卓用バイナリの実行については、はるまき氏のサイトを御参照下さい。
Ford氏のパッケージでは HPAPINEもコンパイル済みなので、すぐに利用できます。電卓のバイナリを作る際にはmakeと入力するだけでしたが、HPAPINEを用いたUNIX向けの実行ファイルを作るには、Cプログラムファイルのサフィックス「.c」を「_local」に置き換えたファイル名を指定します。先程のballs.cをコンパイルするには、

make balls_local

と入力するのです。すると、実行ファイル「balls_local」が出来上がるので、これを実行して、プログラムの出来具合を調べられます。

./balls_local

プログラムの終了は、電卓の場合にはONキーですが、HPAPINEの場合はESCキーです。

Ford氏のサイトでは、gdbを使ったデバッグ手法についても述べられています。残念ながら英語ですが、入門記事として平易に書かれているので、辞書を片手に読めば、どうにか理解できるものと思います。

ちなみに、Ford氏のパッケージは、HPAPINEがGDKを使って実行するようにコンパイルされています。通常はこのままで実行に支障はないと思われますが、非力なマシンだと、ウィンドウの表示に一拍、時間が掛かってしまうので、Xlibを使ったものに変更することも可能です。
hpgcc/2.0SP2-hpapine/ に移動して、make clean を実行後、 Makefile.inc を書き換えて make しなおせばOKです。

2009年3月13日金曜日

eInkが流行らないワケ ... ?

AmazonのKindleでも使われているeInkですが、なかなか普及していないようですね、特に本邦では。
2年くらい前、eInkが使われ始めた頃の話ですが、書き換えの時にだけ電気が必要とのことで、液晶よりも電力を必要としない装置に使われるとの事でした。最近は、スーパーマーケットの商品の値札に、液晶表示器が使われておりますが、いくら液晶表示器の消費電力が少ないとは言いましても、やはり表示をしている間は、若干ながらも電気を喰います。そこで、eInkを使った電子値札、という話もありました。
しかし、本邦ではなかなか普及しないようです。AmazonはKindleを出しているというのに。電卓のマニュアルもPDFになっているので、eInkを使った手頃なPDFビューワーがあると、こうした文書が手軽に見られてウレシイかな、などと考えて居りました。すると、今日になってBrotherから、まさにそうした文書ビューワーが6月にも登場するというじゃありませんか ! コリャーエエ。

「ブラザー、A4サイズ1万枚の情報を持ち歩ける薄型電子ペーパービューワー発表」
http://pc.nikkeibp.co.jp/article/news/20090312/1013103/

しかし、法人向け、業務用を想定しているのですかね、コレは。価格が「14万円」だって。Kindleだってここまでしませんよ。アーア。期待して損した。道理で、本邦でeInkの文書ビューワーが普及しない訳でした。高々、PDFを見るためだけのeInkビューワーが、1桁も違う値段になってしまうんですから。これじゃあ、スーパーの値札にも使えない訳です。いや、eInk自体はそれほど高いものではないと思うのですが、本邦のメーカーが製品にすると、何故か値段が上がってしまうのですね。何なのだろう、コレは。Brotherは、複合機にLinux向けのドライバソフトも提供するなど、結構イイ感じだったのですが、やはり慣れない事はしないほうがいいのかな。いや、法人向けなら、それはそれで結構な話なのですが。