HP製RPN電卓の特長

提供:Memorandum

< RPN電卓

端的には「他の電卓メーカと異なり演算結果の精確さ堅牢な造作に対するこだわりが尋常ではない」の一言に集約される。

二進化十進数による精確な演算

なぜ「HPの電卓事業撤退」のニュースに反響が大きかったのか。先述の通り、RPN電卓以外の電卓が使えなくなってしまったユーザが世界中にかなり居たというのもあるが、演算結果の精確さ機能の豊富さ(それに比例した)高価格でも、HPが他社の追随を許さなかったからだ。

十進数 二進化十進数
(BCD)
23 22 21 20
04 03 02 01
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1

何を以て一般的とするかは議論が分かれる[1]ものの、少なくとも先進国で算数や数学を学んだ人間は十進数で演算(するよう学ぶ)し、電卓を含むコンピュータはディジタル表現の基本である二進数で演算する[2]。これは、二進数で使用する数字が01の2種類しか無いことが、電圧/電流/電荷の有無、即ち、電圧や電流のON/OFFで状態を示せるため非常に相性が良いからである。この事実から、コンピュータは数値を含む全ての情報を二進数で扱うことでCPUやメモリなどの演算資源を最小限の規模で実装でき、結果として有効に利用できる[3]。このような理由で、電卓を含むコンピュータの内部では常に、人間から渡された十進数を二進数に変換し、二進数で演算、その結果を十進数に再変換して人間に返す動作を常に繰り返しているが、この十進⇔二進変換に問題がある。演算結果で端数が発生した場合である。

の数学として正しい演算結果は当然だが、最もポピュラーであろう二進数で演算する8桁電卓では 1  3  の時点での演算結果は0.3333333である。その理由は、数学として正しい演算結果が(小数点第1位が純循環小数)で、本来ならと小数点以降は無限にが続くべきところ、電卓やコンピュータが演算できる二進数の桁数は限りがあるため、どこかで打ち切らざるを得ないからだ。8桁電卓であれば、整数部に1桁のがあるので、小数部の連続するは小数点第7位で打ち切り、0.3333333が演算結果となる。これに  3  と入力・演算させても0.9999999にしかならず、人間が求める数学として正しい演算結果であるは得られない。

このように、演算できる桁数以上の数字を、ある一定の幅の整数倍の数値に置き換える処理を、俗に丸めと呼ぶ。丸めには、切り捨て・切り上げ・四捨五入・五捨六入・五捨五超入・偶数丸め・奇数丸めなど様々な種類があるが、どの丸めが入っても〝二進数による演算結果〟と〝数学として正しい演算結果〟の間には誤差が生じる。二進数演算で得られた端数を含む演算結果から更に端数を含む演算を実行するということは、数学として正しくない丸めた数字同士を演算することと同義であるとともに、更に誤差は増えることに繋がり、やがて〝数学として正しい演算結果〟と較べて無視できないほどズレが大きくなる。先ほどの例で言えば、「切り捨て」という丸めが入ったことで、〝数学として正しい演算結果〟であるではなく〝二進数による演算結果〟である0.33333330.9999999が得られたことで、最終的にの誤差が生じている。特に関数電卓で頻繁に扱う定数には、円周率にしろ自然対数の底にしろ地球の重力加速度にしろ電気素量にしろ、必ず端数が含まれるため、これらを含む数値を演算すると電卓内部は丸めの連続となり、最終的に得られる演算結果が信用できない事態となる。

この事態を可能な限り回避し精確な演算結果を得るため、HP製の電卓は発売当初から伝統的に数値をニブル単位で扱い二進化十進数:BCDで演算する。

BCDは、本来であれば二進法の4ビット(ニブル単位)が作成できる16種類のすべての状態に数値や文字や意味を割り当てて様々な演算をさせるべきところ、0〜9の10種類だけをそれぞれ十進数の1桁の数値である0〜9に割り当てて1桁ずつの数値演算に使用するものの、それ以降の6種類は敢えて使用しないという贅沢な仕様であり、近年流行りの言葉だと「メモリや実行効率を気にせず、条件が変わる度にすべての計算や表示を行う『富豪的プログラミング』で組まれたシステム」である。よって、純粋な二進法で多桁の十進数を演算する際、全桁を一括して二進数に変換しても演算できず、十進数の最下桁(一の位)から1桁ずつ順番に演算するしかないのだが、ここで繰り上がり/繰り下がりが発生した場合は、その事実を隣の桁へ確実に伝えることで、どんなに多桁の十進数であっても丸めが発生しないという圧倒的な利点がある。言い換えると、原理的には小学1年の算数で習う「繰り上がり/繰り下がりを含む1桁の加減算」を、実践的には小学3年の算数で習う「多桁の加減算」を、それぞれ筆算するかのように演算するのが、BCDでの演算である。

このような特性をもつBCDでの演算は、丸めが原因で演算結果に誤差が出ると大問題となる場面、具体的には、金銭出納に関わる銀行の勘定系システムでは現在でも世界中で採用されており、HPはこれを電卓で採用したのだ。その理由は、何を措いても、演算結果に精確さを求めたからである。

しかし、HPが電卓事業に参入した1968年には、BCDはおろか、二進数で演算するマイクロプロセッサは存在しなかった[4]。1970年、演算結果の精確さにこだわるHPは、世界初の可搬型RPN関数電卓HP-35のために、BCDで演算するマイクロプロセッサを自社で開発・製造する決断に至った。ここで開発されたマイクロプロセッサは、数度の世代交代を経たものの、基本的な演算アーキテクチャは一切変わらず、HPが電卓事業からいったん撤退する2001年まで採用され続けることになる。

演算アーキテクチャ

HPが自社開発したマイクロプロセッサ内で演算を実行する算術論理演算装置:ALUは、ビットシリアルアーキテクチャもしくはニブルシリアルアーキテクチャを採用している。シリアルアーキテクチャは「最下位ビットから順番に1ビットの演算を回繰り返すことで、1命令のビット演算を実行・成立させる」という考え方に基き、電子計算機の黎明期である1930年代後半に産み出されたが、その理由は、当時、ALUを設計・製作しようにも、マトモに使えるスイッチングデバイスが物理的に大きいうえに高価だった真空管しか無かったからである。ハードウェアとしての加減算器(演算回路)は1ビット分だけで済むため開発期間の短縮とプロセッサ自体の小型化と省電力化に向き経済的という利点と、処理時間は倍に伸びるという圧倒的な欠点が背中合わせとなっているシリアルアーキテクチャを採用することは、ハードウェアを可能な限り極小化して費用と規模を節約する代償として演算速度には目を瞑る[5]ことを意味するものの、1970年代の電卓に求められた存在意義はコンピュータ並の高速な演算では無かった[6]ため、開発・製造コストと基板の小型化(ICやLSIと配線の極小化)の面からも、当時は理に適っていた。

HP製マイクロプロセッサは一貫して4ビットだったので、1命令を実行・成立させるのに4回演算することになる。そのため、1クロックで1回演算するHP製4ビットマイクロプロセッサの実効演算速度は、プロセッサクロック周波数の¼程度と考えて良い。例えば、HP-35に実装した初代マイクロプロセッサ(Classic)のプロセッサクロック周波数は200kHzなので、1桁あたり50kHz=20µsで演算できる。HP-35の仕様は最大で仮数部10桁、指数部2桁まで演算できるので、これらをすべて埋めるような数値同士でも240µs前後で演算結果を得られることになる。

なお、HP-35に実装した初代マイクロプロセッサ(Classic)が加減算[7]する動作を、HP自ら以下のように解説している。

The adder-subtractor computes the sum or difference of two decimal numbers. It has two data inputs, storage for carry or borrow, and sum and carry/borrow output. For the first three clock time, the addition is strictly binary. At the forth clock time the binary sum is checked, and if the answer is more than 1001 (nine), then the sum is corrected to decimal by adding 0110 (six). The result is then entered into the last four bits of the receiving register and the carry is stored. A similar correction is done for subtraction. 

(加減算器は、2個の数値入力、桁上げまたは桁下げを格納するストレージ、和と桁上げ/桁下げの出力を備え、2個の十進数の和または差を演算する。最初の3クロックの演算は、厳密に二進法で加算を行う。4クロック目の演算は二進数の和を確認し、1001(十進数の9)より大きければ、0110(十進数の6)を加えることで二進数の和を十進数に補正、レジスタの最後の4ビットに桁上げを設定する。減算でも同様の補正をする。)
「5と7の和」での
十進数への補正例
十進数 二進化十進数(BCD)
flag digit
23 22 21 20 23 22 21 20
04 03 02 01 04 03 02 01
5 0 0 0 0 0 1 0 1
7 0 0 0 0 0 1 1 1
12 0 0 0 0 1 1 0 0
十進数 二進化十進数(BCD)
flag digit
23 22 21 20 23 22 21 20
04 03 02 01 04 03 02 01
12 0 0 0 0 1 1 0 0
6 0 0 0 0 0 1 1 0
12 1 1 1 1 0 0 1 0

4ビットシリアルアーキテクチャのALUでBCDを加減算する動作を端的に記した非常に解り易い文章である。先述の通り、BCDは1ニブル(4ビット)には0〜9の1桁の数値しか使用しない仕様だが、1桁同士の加減算は最大18[7]まで発生し得る。そのため、加減算の結果が10以上となったときは「一の位の値だけ抜き出し、繰り上がり/繰り下がりが発生した事実を隣の桁に伝える情報の組へ変換する」必要があり、それがこの文章にある the sum is corrected to decimal (二進数の和を十進数に補正) である。

具体的には、2個の1桁同士の十進数の和または差を演算した結果が1010(十進数の10)〜1111(十進数の15)の6種類と10000(十進数の16)/10001(十進数の17)/10010(十進数の18)であったとき、その結果に更に0110(十進数の6)との和を取ることで、一の位の値だけ抜き出すのと同時に、繰り上がり/繰り下がりが発生した事実を隣の桁へ伝えるための特別なビット(繰り上がり[桁上げ]はcarry、繰り下がり[桁下げ]はborrow)を生成する処理を「十進数への補正」という。この処理により、スタックに積まれた数値が何桁あっても、小学3年生がやる筆算と同じように、最下桁(一の位)から順にこの動作を繰り返せば良いことが判る。

この解説をもとに、以下に序説でも例題として記載した「5と7の和」を演算するときの動作を示す。

  1. 5 ENTER 7 と入力し、それぞれをスタックに積む。この際、十進数からBCDへ変換するので、5は0101、7は0111となって、各スタックの最下桁(一の位)に積まれる。
  2. これらの和を演算すべく  を入力する。最初の3クロックでは二進数で和を演算、演算結果として1100(十進数の12)を得る。
  3. 最後の4クロック目で1100(十進数の12)が1001(十進数の9)より大きいと確認されるので、十進数へ補正するため、0110(十進数の6)との和を二進数で演算、演算結果として10010を得る。
  4. 1001010010に、最下位ビットからニブル単位で分割する。1〜4ビット目の0010(十進数の2)はそのままスタックへ返すため触れずに保持。5ビット目の1が桁上げ(carry)であるため、flag用レジスタの4ビットに1を設定する。これにより12が筆算のように表記すると12となる。
  5. flag用レジスタの4ビットに1が立ったため、「隣の桁へ1を加えよ」と指示する。
  6. それまで0000(十進数の0)だった隣の桁(十の位)に1を加え0001(十進数の1)とすることで繰り上がり処理が完了。十の位が0001、一の位が0010というBCDがスタックへ返される。これを各桁毎に十進数へ変換、ディスプレイには「5と7の和」の演算結果である12が表示される。

この解説はClassic以降のHP製マイクロプロセッサにもそのまま当て嵌り、基本的に同じ動作だが、HP製の電卓が他社と異なるのは、先述の通り、「1970年代前半」に「BCDによる演算」を「マイクロプロセッサによりハードウェアレベルでネイティブに実装」したことである。

半導体技術が未熟で集積度がそこまで高くなかった1970年代前半は、世界初のマイクロプロセッサであるIntel 4004が1971年11月15日に登場し、単純な二進数による演算回路がようやくLSI化された時期だが、もしIntel 4004でBCD演算をさせるのであれば、ソフトウェアで実装するしか無かった。即ち、HPが望むように「常にBCDで演算させたい」場合、演算する度に「二進数による演算⇔BCDによる演算を変換するソフトウェア」が起動することになり、動作が重く、遅くなる。それを嫌ったHPは「ソフトウェアによる変換を無くして軽くするには、すべての演算をBCDで実行するマイクロプロセッサを自社で作れば良い」と考えたのだ。この時点で、HPが演算結果の精確さに対する異常なこだわりが判る。HPがBill Hewlettの指示でHP-35の開発に着手したのが1970年初頭、発売開始が1972年2月1日なので、日本ビジコンがIntelと共同で実質的に開発を開始したのが1969年8月末であるIntel 4004とは開発時期が1年ほど被っていることになるが、この差からも、HPと日本ビジコンで電卓市場に対する視座が、HPとIntelでコンピュータ市場に対する視座が、それぞれまったく異なっている[8]ことは非常に興味深い。

メモリアーキテクチャ

HPが自社開発したマイクロプロセッサ内で数値を格納するレジスタ(メモリ)は、1スタック(1ワード)あたり1ニブル1桁の二進化十進浮動小数点数を割り当てる構成で、初代(Classic)〜第3世代(Nut)までは「1ニブルの仮数部正負符号」「10ニブル(10桁)の仮数部」「1ニブルの指数部正負符号」「2ニブル(2桁)の指数部(範囲は±99)」の14ニブル(56ビット)、最終世代である第4世代(Saturn)では仮数部を2桁増やし「1ニブルの仮数部正負符号」「12ニブル(12桁)の仮数部」「3ニブル(3桁)の指数部(範囲は±499)[9]」の16ニブル(64ビット)である。


初代(Classic)から第3世代(Nut)までのメモリ割り当て
13 12 11 10 9 8 7 6 5 4 3 2 1 0
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
仮数部
正負符号
仮数部 指数部
正負符号
指数部


第4世代(Saturn)でのメモリ割り当て
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
仮数部
正負符号
仮数部 指数部


以上のように、マイクロプロセッサ(ハードウェア)内部のすべての演算過程をBCDで行う環境を整え、演算結果の精確性を可能な限り保証した。あとはHPが販売ターゲット毎に「科学・数学向け」や「金融・財務向け」の演算ロジックや関数(ソフトウェア)を組み込めば、高精度な関数電卓を販売できることになる。例えば、仕様上の最大演算桁数である小数点第9位まで演算する設定にした科学・数学向けRPN関数電卓HP-25/HP-67/HP-97/HP-34C/HP-15C/HP-41CXの5機種で演算させても、すべての機種で、先のは 3  3  で1.000000000が、かつて横河・ヒューレット・パッカード株式会社(YHP)が顧客向けに出したカタログで演算結果の精確さを試させるための例として挙げていたは 7 8 0     で780.0000000が、それぞれ演算結果として得られる。

異常に堅牢な造作

2001年の撤退前のHPでは、マイクロプロセッサやソフトウェアはもちろん、基板、キーボードやケース、LEDや液晶ディスプレイに至るまで、全てを自社で開発・製造していたが、その際は製品が『頑丈さ』『堅牢さ』を持つよう一貫していた。

例えば、基板の素材は頑丈さを求めて当時主流のベークライトではなくガラスエポキシ樹脂を、基板上の配線は錆びを避けるために通常採用される錫メッキではなく金メッキを、キーボード上の文字が摩耗で消えるのを防ぐために通常採用される印刷ではなく象嵌[10]を、それぞれ採用した。ケースに組み込む際も、基板や配線や部品にゴミや湿気が侵入することを防止するために、外気に触れる電池ボックスとアセンブリの間に必ずポリエチレンシートを敷き詰めた。後期に至ってはケースも後から開閉可能なネジ留めでははく、ケース自体を熱で溶かして圧着し密閉することで二度と開閉不可能な構造[11]へ変更されるほどだ。

出自が測定機の開発・製造・販売であることや、電卓そのものが高価格だった黎明期の1960年代から市場に参入したHPだからこそのこだわりだと管理人は受け取っているが、人によっては「病的だ」とまで評されるこれらの品質対策を施したからこそHP製電卓は非常に堅牢な造作で有名となり、「机から落とした程度では壊れなかった」のは言うまでもなく、「自動車に轢かれても壊れなかった」「動物園のカバ担当飼育員が飼料の混合比をHP-12Cで演算していたが、ある日HP-12Cを落としてしまい、挙句カバに食べられたものの、後日、カバの糞から見つけたHP-12Cは洗浄後に何の問題もなく正常に動作した」等の武勇伝じみた話も方々で聞き、〝電池を入れ替えて電源さえ入れば、20年振りだろうと30年振りだろうと、何の問題もなく正常に動作する〟のは日常茶飯事である。つまり、高価格に見合うだけの製品であり、だからこそ現在でも当時の新古品や中古品が高値で取引されているのだ。

とは言え、形あるものは必ず壊れる。ここまでこだわったところで未来永劫故障しないことなど無く、壊れるときは非常にあっさりとしている。管理人の印象は「壊れる筐体と持つ筐体の差が激しく、両極端」である。即ち、壊れる筐体は、何の前触れもなく突然電源が入らなくなる等、予兆を感じさせずに逝き、持つ筐体は、不注意で落としてしまおうがどうしようが壊れる気配すら感じられない。

いずれにしろ、最も新しいHP-48GXですら製造終了から15年以上経過しており、かつ、代替品が無いので、管理人を含むRPN電卓マニアは不断使いするにしても異常に丁寧に扱っている。

脚注

  1. 古代エジプト数学は現代と同様の十進法だが、古代インド数学では当初は八進法だったものの十進法に代わり、メソポタミア文明でシュメール人が使用したバビロニア数学では六十進法が、スペインに侵攻され絶滅したマヤ人が使用したマヤ数学では五進法と二十進法を併用する特殊なものであった。事程左様に数学で使用する位取り記数法は多様で、約5,000年前の各文明間の力関係如何では、現代に生きる我々も八進法や六十進法を一般的とした可能性が有ったことになる。
  2. 少なくとも日本の理系大学で情報理論を受講した学生であれば、指折り数えて十進数→二進数に変換できるよう学んでいると思われるが、それを常用するか? と言われると、なかなか微妙ではある。話のネタとしては知っていよう。
  3. 旧ソ連では1959〜1965年にモスクワ国立大学により三進数で設計されたコンピュータシステムとしてСетуньセトゥンが50台製造されたものの、一般的とはならなかった。三進数は正負を分けずに扱える(1トリットで-101が表現できるため、二進数では負数を示すのに必須の符号ビットが不要となる)メリットが有るものの、製造/運用コストと演算速度では二進数と較べてもメリットが無かったからである。そのため、1970年に製造された後継機であるСетуниセトゥニ-70はエミュレータでの実装となった。なお、Сетуньセトゥン(キリル文字からラテン文字へ翻字するとSetun)とは、モスクワ国立大学の近くを流れるモスクワ川の支流の名前である。
  4. 1968年頃に電卓はようやく一部がIC化され始めたが、そのICは電卓の各機種毎に開発・製造する専用品(カスタムIC)であり、マイクロプロセッサという概念は無かった。この年にHPが電卓業界へ参入するにあたって販売したHP-9100A/BはICを一切使用せず、全てを個別単体部品(ディスクリート)で構成したハードワイヤード制御計算機である。即ち、CPUを含む演算部はトランジスタとダイオードと抵抗で40個のJKフリップフロップ回路と論理ゲートを構成、プログラム用ソフトを格納したROM(64ビット長で512ワード分=32,768ビット)は1平方インチあたり1,000ビットの密度で16層プリント基板に作り込んでマザーボード代わりとし、制御用ソフトを格納しているROM(29ビット長で64ワード分=1,856ビット)と、スタックを含むワーキングメモリ用のRAM(6ビット長で16×23=368ワード分=2,208ビット)は磁気コアメモリで実装、ディスプレイは3段スタックを全て表示する縦3インチ×横4インチの単色CRTといった具合で、IC(集積回路)は存在しない。この回路にクロックサイクル825ナノ秒=クロック周波数1.21MHzの同期パルスを流すと、半導体と較べると遅いことで有名な磁気コアメモリへの読み出し/書き出し時間(1.6ミリ秒)を含め、加減算は2ミリ秒、乗算は12ミリ秒、除算は18ミリ秒、開平は19ミリ秒、三角関数は280ミリ秒、自然対数は50ミリ秒、ネイピア数を底とする冪乗は110ミリ秒という、比較的高速な応答速度で演算した。1969年8月末から開発が始まったIntel 4004のクロックサイクルが1.35〜2.0マイクロ秒=クロック周波数が500〜741kHzであるため、演算部は単純に比較してもHP-9100A/Bのほうが1.6倍ほど速かったことになる。
  5. シリコンウェハに億単位のトランジスタを比較的容易に作り込め、超大規模な演算回路が実現できる現代のマイクロプロセッサは、加減算器をビット分だけ並列にすることで高速に演算できるパラレルアーキテクチャが一般的である。
  6. 電卓が世に出た当初、電卓に求められた第一の訴求点は「小ささ」でも「速さ」でも「値段の安さ」でもなく『静粛さ』であった。それまでの機械式計算機やリレー式計算機は演算時に盛大な音を出すため、日常業務があらゆる計算で終わるというエンジニアや経理の担当者にとって、その音は苦痛以外の何物でもなく、まさに頭痛の種だったからだ。その次に求められたのが「速さ」だが、その比較対象はあくまで機械式計算機やリレー式計算機であり、『コンピュータと同等』というものではなかった。尤も、電子式になれば、電卓に数値を入力するのに要する時間より、電卓がそれらを演算するのに要する時間が大幅に短いため、人間にとっては『瞬時』と同等の感覚に陥り、機械式やリレー式と比較するまでもなく「速さ」も満たされることになる。
  7. 7.0 7.1 内部で使用している数値表現が補数表現であれば、四則演算はすべて加算器による加算のみで演算できる。よって、十進数の減算で繰り下がり(桁下げ)が発生しても、ニブルの値は10〜18のいずれかとなる。HP自身の解説に記載されているArithmetic And Register Circuit (MOS/LSI)のブロック図(Fig. 3)にもAdder(加算器)しか無い。尤も、Classicが採用している補数表現が「1の補数」と「2の補数」のどちらかは不明である。
  8. かたやHPは、当時は本業である「電気・電子計測機の製造・販売」が順調だったので、ハードウェアオリエンテッドな思考から、とにかく高精度演算に特化して開発したこれらBCD演算マイクロプロセッサを外販する気も無く、したがって半導体では顕著な「大量生産による価格下落」にも特に期待せず、せいぜいが、プリンタやハンドヘルドコンピュータなどの自社の電卓以外の製品への適用に留まってしまった。かたや日本ビジコンとIntelは、両社とも当時は財務基盤が脆弱な半導体ベンチャー企業であったが故、当初は電卓用に開発したマイクロプロセッサに著しい汎用性があることを気付いた直後から、ソフトウェアオリエンテッドな思考に基き電卓以外への応用の可能性を広げ、否応なしに積極的に外販することで「大量生産による価格下落」を引き起こし、延いては粗利を増やさないと、会社が存続できないことを意味しており必死だった。その差がそのまま、現在のHPとIntelの有り様と、身近にマイクロプロセッサが溢れる現代人の日常生活を示していることになる。
  9. この指数部の割り当て方から、最終世代であるSaturnの内部で使用している数値表現が「2の補数」であることが判る。
  10. 文字を別の材料で立体的に成形し、それをキーに埋め込む構造。
  11. この構造を採用した時点で修理を考えていないことは明らかである。故に、熱溶着ケースを採用した製品が保証期間中に故障した場合は、同じ製品の新品と交換した。管理人の所有品ではHP-35/HP-45/HP-46/HP-65/HP-25/HP-67/HP-97/HP-34C/HP-12C/HP-10C/HP-11C/HP-15C/HP-16C/HP-41CXがネジ留めケース、HP-28S/HP-42S/HP-48SX/HP-48GX/HP-50g/HP-35sが熱溶着ケースである。