私はいまでも机の上に電卓を置いてちょっとした計算をポチポチやっているのだが、そうやっていまでも愛用している1台が、1982年にヒューレット・パッカードから発売された「HP-16C」だ。ごちゃごちゃとここで書くよりも日本でも横河ヒューレット・パッカードから発売されていたので、当時の広告を読んでいただいたほうが早いかもしれない。
ということで、本棚をガサゴソとやったらすぐに出てきました。1985年11月号の『月刊アスキー』にモノクロの広告がのっている。16進、10進、8進、2進の基数変換、ビット演算、さらには203ステップまでのプログラミングができる。ハードウェアエンジニアやアセンブラプログラマ向けのものだったのだ。
広告をよく見ると下のほうに販売店として、三越、阪急百貨店、東急東横店、西武百貨店(池袋)、小田急百貨店、横浜高島屋、大丸……とデパートがずらりと並んでいて、当時、電卓などをデパートでよく扱っていたのを思い出した(売り場は違うが初期のゲーム機もだが)。とくに、三越は、ヒューレット・パッカードの電卓のあつかいでは、丸善、紀伊國屋アドホック店など限られていた時から売ってた。
プログラマー向けの電卓は、仕事でアセンブラを使うことも多かった私には、ずっと欲しかったものの1つだった。1980年頃か、同僚がテキサスインスツルメンツの「TI Programmer」というこれもプログラマー向けの電卓を持ってきた。コアダンプ(わからない人は検索してくださいね)の16進になったカウンタなんかの値を10進に変換したり、ビット演算の結果をシミュレートしてみたいとかデバッグ時の便利さがうらやましい。ところが、TI Programmerは、ビンボーな若者には気軽に買えるものではなかった(何万円だったかは忘れたが)。
もっとも、当時はコンピューター開発にかかる工数はプログラミングやデバッグに使用するツールによらないという経験側のようなことがまことしやかに言われていた。いくらなんでも、これはさすがに当時のデバッグ環境によるものなのだが。それだけノートの上で鉛筆と消しゴムでやる作業が有効だったというのも真理なのだろう。
そんな頃から少しして登場したのが「HP-16C」だった。広告にも「コンピューター技術者がコンピューター技術者のために開発した」と書かれており、まさにいたせりつくせり。ユーザーがどんなアキーテクチャのコンピューターを使っていようがほぼすべてに対応するといってもあながち大袈裟ではない(ワード長1~64ビット、補数やキャリーなど自由自在)。それが、ワイシャツの胸のポケットにはいって、電車の中はもちろんのことトイレの中でだっていつでも役に立てる。
つまり、HP-16Cは世の中のあらゆるコンピューターを使うエンジニアもプログラマーもあまねく救いたもうプログラマーの守護神のようなデバイスだったのだ。
HP-16CとSwiss MicrosのHP-16C互換電卓DM-16。この会社いつの間にかHP互換電卓のラインナップがどんどん増えている。
そんなコンピューター愛あふれる製品内容については、多くの方が語られているが、代表的なものではHHKBなどでも知られる日本最初のハッカーこと和田英一先生の「HP-16Cのプログラム技法」という文章がある。タイトルのとおりプログラム電卓としてのHP-16Cについてのものだが、和田先生は、HP-16Cを「名器」と表現され、「いまも毎日持ち歩いている」と書かれている。
ところで、ヒューレット・パッカードの電卓は、HP-16Cもそうなのだが逆ポーランド記法(RPN)を採用していることが大きな特徴である。一般的な電卓では、(6+7)×(9-3)=みたいな計算をやるときは、1個しかないメモリか紙にメモするかしてやることになる(もちろん人間が覚えてもよいのだが間違いのもと)。それに対して、RPNでは、6[ENTER]7+9[ENTER]3- ×でスルスルと淀みなく計算できる。
いわば、思考をストップさせない気持ちよさ。これがどのくらいの威力を発揮するのかは、HP-16CのWebベースのエミュニレーターがあるので試してみることをお勧めする。詳しい使い方は、HP-16Cの日本語マニュアルがHPのサイト上にあるのでご覧あれ。
http://h10032.www1.hp.com/ctg/Manual/c01094895.pdf
https://stendec.io/ctb/hp16c.html
HP-16Cにおけるプログラミングは、キーボード操作をそのまま書いていく感じのものだが、ラベルや条件分岐もあるのでかなりのことができる。レジスタが32個あって変数として使えるのに加えて、(インデックス経由でさらに多くのレジスタを使うこともできるので配列的な使い方も可能=詳しくはマニュアル参照)。
和田先生は、素因数分解やユリウス日の計算なんかを紹介している。ということで、私も、この原稿を書いている間にひさしぶりにHP-16Cでプログラムを書いてみたくなった。以下は、プログラムが動作しているようすの動画。
これは、ルイス・キャロルの本に出てきたと思う、「142857」を足すごとに出てくる数字がローテーションした値になるという計算。計算中には「running」と表示されるカワイさを見てほしい。参考までにどんなコードかを書いておくと次のような感じだ(計算モードから「GSB 0」で実行)。
LBL 07STO I0ENTERLBL A142857+SHOW DECPSEDSZGTO ARTN
プログラミングやデバッグで、電卓的に役に立つ感じはすぐに想像できると思うのだが(アセンブラとか書いていた人なら)、プログラムまで書いてやることなんてあるのか? と思われかもしれない。しかし、手元にパソコンがないような仕事場を考えてみてほしい。言語はハードウェアにめちゃめちゃ近いレベルである。
ちょっとしたお試しや確認、繰り返しの作業でしかできず手間だけかかり絶望的な気分になったことはないだろうか。そういうとき、キーボードマクロ的な10行か20行のプログラムが、ほとんど“神”になることがある。戦争だったらその道具が命の分け目。HPの電卓のマニュアルの冒頭には、スペースシャトルの宇宙飛行士、アメリカズカップのヨットマン、エベレストの登山家に選ばれて使われているとあった。
そんなふうに自分の仕事では役に立つプログラムをいくつも入れておいて、それぞれのラベルから実行させることもできる。ういやつなのだ。ということで、この機会にあなたも超チマチマなプログラミングの世界へ踏み出されてはいかがだろう? これからでも、RPNという正しい教理を学ぶのには遅すぎるということはない。eBayやヤフオクにはHPの古い電卓がよく出ている。
私のHP-25、HP-27、HP-29C。いずれも1970年代に発売されていた電卓だがいまでも稼働する。HP-16Cのようにプログラマー用ではないが、LED表示がみとれるほど繊細でいい感じだ。
私が歴史的なマシンをブロックで作る「ブロックdeガジェット」で、HP-16Cを作った。動画の中でも語っているが、記事中ごろの写真がスイス製のHP-16Cの互換電卓DM-16。世界中のRPNファン、HPの電卓ファン、HP-16Cファンの気持ちが10センチくらいは伝わるか? 以下、動画をご覧あれ。
■ 「ブロックdeガジェット by 遠藤諭」:https://youtu.be/PekeqwWUsg8 ■再生リスト:https://www.youtube.com/playlist?list=PLZRpVgG187CvTxcZbuZvHA1V87Qjl2gyB ■ 「in64blocks」:https://www.instagram.com/in64blocks/
遠藤諭(えんどうさとし)
株式会社角川アスキー総合研究所 主席研究員。プログラマを経て1985年に株式会社アスキー入社。月刊アスキー編集長、株式会社アスキー取締役などを経て、2013年より現職。角川アスキー総研では、スマートフォンとネットの時代の人々のライフスタイルに関して、調査・コンサルティングを行っている。「AMSCLS」(LHAで全面的に使われている)や「親指ぴゅん」(親指シフトキーボードエミュレーター)などフリーソフトウェアの作者でもある。趣味は、カレーと錯視と文具作り。2018、2019年に日本基礎心理学会の「錯視・錯聴コンテスト」で2年連続入賞。その錯視を利用したアニメーションフローティングペンを作っている。著書に、『計算機屋かく戦えり』(アスキー)、『頭のいい人が変えた10の世界 NHK ITホワイトボックス』(共著、講談社)など。
Twitter:@hortense667