プログラマyasuhoの隠れ家

某ソフトウェア企業に勤務するおじさんプログラマyasuhoです

HP-16Cへの想い

 米HPは電卓の発売35周年を迎えるに当たり、その愛好者に対し、電卓への想いを込めたYouTubeスタイルの短いドキュメンタリーフィルムを作成し、コンテストに応募するよう呼び掛けている。
 最終選考に残った8人は今夏ハリウッドに招待され、そこで開催される記念式典「HP Golden Calculator Awards」に出席できる。観客の人気投票で選ばれた優勝者には、3000ドルの高精細プラズマテレビが贈られる。

Expired


HP電卓が発売35周年ですか。今でもHP-16Cを愛用していますよ。未だにこれを超える16進電卓*1はないですね。


この電卓への想いは過去の関連記事を見ていただくとして、今回はこの電卓にまつわる思い出なんかを書いてみたいと思います。どうせ私はクールな映像を作るセンスはありませんので。:)


ちなみにHP-16Cとはこんな電卓。



f:id:yasuho:20070406210305j (大きいイメージ)

私と16進電卓


プログラマならば誰もがお気に入りのコンピュータ用電卓を持っているのではないでしょうか。10進<->16進に始まり、AND/ORなどの論理演算、さらにシフト演算など、プログラミングやデバッグにはこういった計算が欠かせません。最近は開発環境がよくなったおかげで、こういった計算をする機会は以前より減りましたが、ちょっとした時に使える電卓は手放せません。


プログラマとして働くようになってから、いくつかの16進電卓を購入してきました。今はこのような電卓を出しているのはカシオとシャープぐらいですが、昔はHP以外にTIなども出していました。どれもそれなりに使えたのですが、なかなか気に入った道具には出会えませんでした。


そんな頃、ふとしたきっかけからHPのHP-16Cという電卓を知ったのです。

出会い


HP-16Cは見た瞬間、強烈に引かれるものがありました。独特ながら使いやすそうなデザイン。設計者のこだわりを感じさせる数多くの機能。プログラミングもできる。当時はプログラミング電卓やポケットコンピュータが全盛の時代で、高機能な電卓は数多く販売されていたのですが、HP-16Cはそれに引けをとるどころか、どれよりも輝いて見えたのです。


そんなHP-16Cは何と50,000円程度!当時の為替レートからすればそんなものかもしれませんが、ポケットコンピュータが楽々買えてしまう価格に、どうしようか三越の電卓売り場で大いに悩んだものです。三越は当時HP電卓の唯一の代理店だったようで、秋葉原でさえHP電卓はなかったように思います。デパートなので当然値引きとかもないわけです。


どのような経緯でこれを購入したかは定かではないのですが、たしかデパートの店員さんと話したことがきっかけになったような気がします。何しろ毎週のように見に行ってましたからね(笑)ちょうどその時使っていたTIの電卓が壊れたことも影響したのかもしれません。


ともあれ、私は50,000円ほどを払って、この電卓のオーナーとなったのでした。今から20年以上も昔のことです。

気に入った理由


これを気に入った理由はいろいろあるのですが、主な理由は以下のようなことです。

豊富すぎる機能


ただ機能が豊富なだけではありません。そこには尋常ではない開発者のこだわりがあります。


10/16/8/2進数相互変換。AND/OR/XOR等の論理演算。各種シフト演算。などはもちろんのこと。ビット幅を1-64ビットから指定でき、1/2の補数・符号なしまで指定可能。さらにレジスタを二つつなげた倍精度演算や、オーバーフロー・キャリービットの概念があり、キャリーを含めたローテートまで装備。


プログラミング用には、条件及び無条件分岐、サブルーチンコールと一通り用意されています。レジスタは直接してと間接指定があって、配列も扱えます。


これほどまでにプログラマ泣かせな機能を持つ電卓を私は他に知りません。

よく使う機能が使いやすい


16進電卓で最もよく使う機能は10/16進変換でしょう。しかし多くの電卓はShift+キーといったように変換に2アクション必要とするものが多かったのです。よく使う機能はやはり最小限の入力で済ませたいものですよね。


HP-16Cはもちろんこれを1キーで行うことができます。多くの機能をがあるので一つのキーに3つぐらいの機能を割り当てているのですが、配置がよく考えられていて、あまり迷うことがありません。よく使う機能はShiftなしで使えるようにもなっています。

逆ポーランド方式


逆ポーランド方式は主にHPの電卓に広く採用されている方式です。


値をスタック上へ置き、演算結果をスタックへ再び戻すという方式。例えば以下の式:

12 x ( 15 - 6 ) =

は、逆ポーランド方式では以下のようになります。

12 15 6 - x


この方式は直感的でないので最初分かりづらいのですが、慣れるととても便利です。最大の利点は入力するキーの数を減らせるというところにあります。何より私はこのいかにもコンピュータ的な計算方法に惚れたのでした。:)

お気に入りの本当の理由


もちろんこの電卓にも欠点はあります。演算速度が少し遅い。浮動小数点と整数の混在ができない*2。などなど。


それでも私がこの電卓を使い続けているのは、そこに開発者のユーザに対する愛情を感じるからです。


プログラマならこんな機能が欲しいだろう。こんなこともできたら嬉しいかな。この電卓を設計した人はそんな風に思いながらこれをデザインしたに違いありません。限られたハードウェア資源にできる限りの機能を盛り込んだことが見えるのです。


電卓の需要も減っている今、もうこのようなものは作られることはないかもしれません。でも、こんな製品を作っていけるような企業の熱意は失われることがないよう願いたいものです。


HP-16Cの熱狂的な1ユーザより。




P.S.


懐かしくなってHP-16Cでググってみたら、なんとHP-16Cのエミュレータが!!しかもよく出来ている上にPocket PC用まである。


HP-16Cに興味を持った方はぜひダウンロードしてみて下さい。:)




過去の関連記事:
yasuhoの隠れ家 - ぜひHP-16Cも復刻を!
yasuhoの隠れ家 - 究極の16進電卓

*1:昔はこう呼んでたんだけど、これって一般的な言い方なのかな?

*2:内部表現がいかにもコンピュータちっく