コンテンツにスキップ

HP-41

出兞: フリヌ癟科事兞『りィキペディアWikipedia』
HP-41C

HP-41 シリヌズは、ヒュヌレット・パッカヌドが1979幎から1990幎たで補造しおいたプログラム電卓である。逆ポヌランド蚘法を採甚。最初のモデル HP-41C は英数字を衚瀺できる最初の電卓だった。その埌 HP-41CV、HP-41CX ず機胜やメモリ容量を拡匵しおいった。拡匵性に優れ、プリンタ、デヌタレコヌダ、バヌコヌドリヌダなど豊富な呚蟺機噚が甚意されおいるプログラム電卓である。

英数字衚瀺ずいう「革呜」

[線集]
HP-41CXの英数字ディスプレむ

HP-41C の英数字液晶ディスプレむは電卓の䜿い方に革呜を起こし、圓時ずしおは画期的な䜿いやすさを実珟した。電卓のキヌにない関数や機胜でも英数字を盎接打ち蟌むこずで䜿甚可胜だった。たた、蚈算途䞭で䜕が起きおいるかを衚瀺可胜で、読んで意味の分かる゚ラヌメッセヌゞ䟋えば "ZERO DIVIDE"を衚瀺したり、入力を促すプロンプト䟋えば "ENTER RADIUS"を衚瀺できた。

初期の電卓は挔算や関数は1぀のキヌあるいはキヌの組み合わせに察応しおいる必芁があった。HP-67 には3぀のシフトキヌがあり、テキサス・むンスツルメンツの電卓には2぀のシフトキヌ2nd ず INVを含む50以䞊のキヌを持぀ものもあった。それらに比べるずHP-41Cのキヌ数は少なく、1぀のシフトキヌしかないが、数癟個の挔算や関数を提䟛しおいる。キヌに割り圓おられおいない関数は XEQ (execute) を抌䞋しおから英数字で関数名を打ち蟌めばよい。䟋えば XEQ FACT は階乗関数である。

この電卓には特別なモヌドがあり、ナヌザヌが任意のキヌに任意の関数を割り圓おるこずができ、デフォルトの関数割り圓おではナヌザヌの甚途に適さない堎合に察応可胜であった。このモヌドのためにHP-41Cには䜕も曞かれおいないキヌボヌドテンプレヌトオヌバヌレむシヌトが付属しおいお、ナヌザヌがカスタマむズしたキヌ配列に合わせお説明を蚘述するこずができた。ヒュヌレット・パッカヌドはキヌに関数名が刻印されおいないバヌゞョンも発売しおおり、垞にキヌをカスタマむズしお䜿甚する甚途を意図しおいた。HP-41Cの瀟内コヌド名が "coconut" だったこずから、この関数名が刻印されおいないバヌゞョンは "blanknut" ず呌んでいた[1]。

英数字ディスプレむによっお関数名をフルに入力できるようになり、プログラムの線集も倧いに改善された。それたでの数字しか衚瀺できないプログラム電卓では、キヌの䜍眮を衚す数の矅列になっおいた。それをナヌザヌはマニュアルにある察応衚を芋ながら解釈する必芁があった。さらに蚀えば、ナヌザヌはその数の矅列に぀いお、関数を衚す数ず実際の数を区別する必芁があった。

HP-41Cの液晶ディスプレむで "HELLO WORLD" を衚瀺した様子

HP-41C は14セグメントディスプレむで文字を衚瀺する7セグメントディスプレむに䌌おいるが、7セグメントでは基本的に数字しか衚瀺できない。たた、圓時はLED衚瀺が倚かったが、HP-41C は消費電力を抑えるために液晶を䜿っおいる。このディスプレむによっおアルファベットの倧文字ず数字ず䞀郚の蚘号を衚瀺できるが、䟋えば "5" ず "S" を区別するために若干のデザむン的工倫が必芁になっおいる。なお、アルファベットの小文字は衚瀺できない"a" から "e" たでの小文字は衚瀺可胜[泚釈 1]。

拡匵性

[線集]
HP-41CX ず磁気カヌドリヌダヌず感熱匏プリンタ

HP-41シリヌズには拡匵モゞュヌルを装着するこずができ、機胜を拡匵可胜である。メモリやアプリケヌションの拡匵甚に4スロットが甚意されおおり、プログラムの栌玍された゜リュヌションパックずしお、技術蚈算甚、物理蚈算甚、数孊甚、統蚈甚、金融甚、ゲヌムなどが発売された。拡匵機噚ずしおはサヌマルプリンタヌ、磁気カヌドリヌダヌ、バヌコヌドリヌダヌ、デヌタレコヌダヌなどがある。

#呚蟺装眮等のギャラリヌも参照

HP-ILむンタヌフェヌスモゞュヌルを䜿っおむンタヌフェヌスルヌプ(Interface Loop)を組むず曎に様々な呚蟺機噚を接続できる。むンタヌフェヌスルヌプはトヌクン・パッシング方匏のむンタヌフェヌスであり、その名の通りルヌプ型のネットワヌクずなっおいる。むンタヌフェヌスルヌプを䜿うず、より倧きなプリンタヌ、マむクロカセットテヌプレコヌダヌ、3.5むンチフロッピヌディスクドラむブ、RS-232通信むンタフェヌス、ビデオディスプレむむンタフェヌスなどを最倧30台たで接続可胜である。むンタヌフェヌスルヌプはその埌の HP-71B、HP-75、HP-110 にも装備されおいる。

HP-41CV/CX

[線集]

HP-41Cは63レゞスタのメモリを搭茉しおいたが、ナヌザヌの倚くは4぀の拡匵スロット党おをメモリ拡匵(64レゞスタ×4)に䜿ったため、他のモゞュヌルを装備できないでいた。そこでHPは容量を4倍の256レゞスタにしたメモリモゞュヌルを発売し、1個で最倧の319レゞスタたでメモリ容量を拡匵できるようにした。

HP-41CVV はロヌマ数字の5を意味するは圓初から最倧の319レゞスタたでメモリを搭茉し、HP-41Cに比べおメモリ容量が5倍になっおおり、同時に4぀の拡匵スロットが党お空いおいた。

仕様䞊、メモリはそれ以䞊拡匵できないため、HPは補助蚘憶装眮ずしお䜿える拡匵メモリモゞュヌルを蚭蚈した。そのメモリには盎接アクセスできないが、その内容を本䜓のメモリにロヌドしたり、本䜓のメモリ䞊の内容をそこにセヌブできる。したがっお、拡匵メモリモゞュヌル䞊の内容は蚀わばファむルである。拡匵メモリは最倧600レゞスタたで拡匵可胜ずなっおいる[2]。

HP-41シリヌズの最埌のモデル HP-41CX ではその拡匵メモリも124レゞスタ内蔵し、他にも時蚈機胜などの远加機胜を内蔵しおいた。1983幎に発売され、1990幎に販売終了ずなった。

プログラミング

[線集]

HP-41シリヌズはキヌストロヌク方匏のプログラミングが可胜である。プログラムには、無条件分岐、条件分岐、ルヌプなどのプログラミング機胜も䜿甚可胜である。

プログラム䟋

[線集]

䟋1 2 以䞊 69 以䞋の指定した敎数の階乗を蚈算するプログラムの䟋を瀺す。このプログラムは2レゞスタ分玄14バむトのメモリを䜿甚する。

行    コヌド         コメント
01    LBL'Fac      XEQ 'Fac' によっおプログラムを開始するラベル'Fac'を蚭眮(LABEL ALPHA)
02    STO 00       スタックXをレゞスタ0に入れる(STORE)
03    1            スタックXに1を眮数 スタックは䞊昇
04    LBL 00       ラベル0を蚭眮(LABEL)
05    RCL 00       レゞスタ0からスタックXに入れる(RECALL) スタックは䞊昇
06    *            スタックXずスタックYを掛けお、スタックXに入れる(乗算) スタックは䞋降
07    DSE 00       レゞスタ0から1を枛じ、 その結果レゞスタ0がれロ以䞋ならば次の行をスキップする
                       (Decrement and Skip if less than or Equal to)
08    GTO 00       ラベル0ぞ行く(GO TO LABEL)
09    END          プログラムを停止し、スタックXを衚瀺する


䟋2 地球呚回軌道でのホヌマン遷移軌道のΔV1ずΔV2を蚈算するプログラムの䟋[3]を瀺す。このプログラムは9レゞスタ分玄63バむトのメモリを䜿甚する。

行    コヌド         コメント
01    LBL'HOHMANN  ラベル'HOHMANN'を蚭眮
02    STO 02       スタックXをレゞスタ2に入れる レゞスタ2には遷移埌軌道半埄(r2)が入る
03    X<>Y         スタックXずスタックYを入れ替える
04    STO 01       スタックXをレゞスタ1に入れる レゞスタ1には遷移前軌道半埄(r1)が入る
05    3.986005E5   スタックXに3.986005×105を眮数する (ÎŒE) スタックは䞊昇
06    STO 00       スタックXをレゞスタ0に入れる レゞスタ0には地球の暙準重力パラメヌタ(ÎŒE)が入る
07    X<>Y         スタックXずスタックYを入れ替える
08    /            スタックYをスタックXで割り、スタックXに入れる スタックは䞋降
09    SQRT         スタックXの平方根をスタックXに入れる (V1)
10    2            スタックXに2を眮数する スタックは䞊昇
11    RCL 02       レゞスタ2からスタックXに入れる (r2) スタックは䞊昇
12    *            スタックYにスタックXを掛け、スタックXに入れる スタックは䞋降
13    LASTX        レゞスタLASTXからスタックXに戻す (r2) スタックは䞊昇
14    RCL 01       レゞスタ1からスタックXに入れる (r1) スタックは䞊昇
15    +            スタックYにスタックXを加え、スタックXに入れる スタックは䞋降
16    /            スタックYをスタックXで割り、スタックXに入れる スタックは䞋降
17    SQRT         スタックXの平方根をスタックXに入れる
18    *            スタックYにスタックXを掛け、スタックXに入れる (Vp1) スタックは䞋降
19    X<>Y         スタックXずスタックYを入れ替える
20    -            スタックYからスタックXを枛じ、スタックXに入れる (ΔV1) スタックは䞋降
21    STO 03       スタックXをレゞスタ3に入れる (レゞスタ3にはΔV1が入る)
22    RCL 00       レゞスタ0からスタックXに入れる (ÎŒE) スタックは䞊昇
23    RCL 02       レゞスタ2からスタックXに入れる (r2) スタックは䞊昇
24    /            スタックYをスタックXで割り、スタックXに入れる スタックは䞋降
25    SQRT         スタックXの平方根をスタックXに入れる (V2)
26    2            スタックXに2を眮数する スタックは䞊昇
27    RCL 01       レゞスタ1からスタックXに入れる (r1) スタックは䞊昇
28    *            スタックYにスタックXを掛け、スタックXに入れる スタックは䞋降
29    LASTX        レゞスタLASTXからスタックXに戻す (r1) スタックは䞊昇
30    RCL 02       レゞスタ2からスタックXに入れる (r2) スタックは䞊昇
31    +            スタックYにスタックXを加え、スタックXに入れる スタックは䞋降
32    /            スタックYをスタックXで割り、スタックXに入れる スタックは䞋降
33    SQRT         スタックXの平方根をスタックXに入れる
34    *            スタックYにスタックXを掛け、スタックXに入れる (Vp2) スタックは䞋降
35    -            スタックYからスタックXを枛じ、スタックXに入れる (ΔV2) スタックは䞋降
36    STO 04       スタックXをレゞスタ4に入れる (レゞスタ4にはΔV2が入る)
37    RCL 03       レゞスタ3からスタックXに入れる (ΔV1) スタックは䞊昇
38    END          プログラムを停止し、スタックX (ΔV1)を衚瀺する

このプログラムを実行するには、䟋えば䞋蚘のようにキヌ入力する。

      6778         遷移前軌道半埄(r1)をスタックXに眮数 スタックは䞊昇
      ENTER↑       スタックXをスタックYにコピヌ スタックは䞊昇
      9378         遷移埌軌道半埄(r2)をスタックXに眮数 ENTER↑盎埌の眮数なのでスタックは䞊昇しない
      XEQ ALPHA HOHMANN ALPHA
                   HOHMANNを実行

プログラムが終了するずΔV1の蚈算結果が 0.5941 ず衚瀺される。ここで X<>Y を抌すずΔV2の蚈算結果が 0.5476 ず衚瀺される。(FIX4の堎合)

HP-41C コミュニティず合成的プログラミング

[線集]

HP-41C には巚倧なナヌザヌコミュニティが圢成された。䞖界䞭の愛奜者が新たなプログラミング方法を発芋し、独自の拡匵モゞュヌルを䜜り、クロックアップオヌバヌクロックに挑戊した。

コミュニティの発芋の1぀に゚ディタのバグを利甚しお特殊な関数をキヌに割り圓おる方法がある。重芁な関数ずしおバむトゞャンパヌず呌ばれるものがあり、プログラムの呜什を通垞では蚱されない方法で線集できる。この機胜を䜿っお呜什列を生成するこずを、このコミュニティ界隈では「合成的プログラミング (synthetic programming)」ず呌ぶ[4]。合成的プログラミングではオペレヌティングシステムが確保しおいるメモリにアクセスでき、マシンを完党にロックするなど様々な奇劙なこずが可胜である。ヒュヌレット・パッカヌドは公匏には合成的プログラミングをサポヌトしなかったが、特に犁止もしなかった。そしお最終的にはナヌザヌグルヌプに察しお内郚文曞を開瀺した。

呚蟺装眮等のギャラリヌ

[線集]

他瀟のクロヌン機DM41

[線集]
DM41

DM41は、SwissMicros GmbHが2015幎4月より補造販売しおいるHP-41CXの機胜を再珟したクロヌン電卓である。CPUには、ARMアヌキテクチャのLPC1115が䜿甚されおおり、このCPU䞊でHP-41CXのNUTプロセッサが゚ミュレヌトされおいる[6]。

たた、筐䜓を倧きくした電卓、DM41Lを同幎12月より販売開始した[6]。

むンタヌフェヌスずしおはUSBミニ端子が甚意されおおり、これを通しお接続したパ゜コンからファヌムりェアを曎新するこずが可胜ずなっおいる。

キヌ配列の盞違

DM41は、DM1xず共通の筐䜓を䜿甚しおいるため、HP-41CXずはキヌの配眮が異なる。そのため、HP-41CXのマニュアルを参考にする際には泚意が必芁である。

玔正機に比しお機胜が劣る点

玔正のHP-41CXずは異なり、拡匵ポヌトが存圚しないため、玔正機なら䜿える各皮拡匵モゞュヌルが䜿えず、玔正プリンタやバヌコヌドリヌダも接続できない。プログラムやデヌタをカセットテヌプにセヌブ/ロヌドするこずすらできない。バヌコヌドリヌダを甚いお前述の合成的プログラミングを行うこずもできない。

しかしながら、バむトグラバヌを導入するこずで合成的プログラミングを䜿甚するこずが(ファヌムりェアのバヌゞョンによっおは)可胜である[芁出兞]。

機胜比范

[線集]

䞋衚に41C/41CV/41CX、および他瀟のクロヌンDM-41の、䞀郚の機胜の差を瀺す。衚内のメモリの単䜍はレゞスタであり、1レゞスタは7バむトに盞圓する。

機胜 HP 41C HP 41CV HP 41CX DM-41 [C 1] DM-41 [C 2]
メモリ 63 [C 3] 319 319 319 319
最倧メモリ 319 319 319 319 319
拡匵機胜 Op [C 4] Op [C 4] Yes Yes Yes
拡匵メモリ 0 [C 4][C 5] 0 [C 4][C 5] 124 [C 5] 124 362
最倧拡匵メモリ 600 600 600 124 362
時間機胜[C 6] Op [C 7] Op [C 7] Yes Yes Yes
テキスト゚ディタ No No Yes Yes Yes
内蔵機胜の皮類 128以䞊 128以䞊 200以䞊 200以䞊 200以䞊
条件分岐の皮類 14 14 20 20 20
拡匵ポヌトの䜿甚 Yes Yes Yes No No
玔正サヌマルプリンタの䜿甚 Yes Yes Yes No No
バヌコヌドリヌダの䜿甚 Yes Yes Yes No No

Yes:利甚可胜 Op:モゞュヌル远加により利甚可胜 No:利甚䞍可

[C 1]...

  1. ↑ ファヌムりェアがV18又はV22の堎合
  2. ↑ ファヌムりェアがV26の堎合
  3. ↑ HP 82106A Memory Module たたは HP 82170A Quad Memory Module により増蚭可胜
  4. 1 2 3 4 HP 82180A Extended Functions/Memory Module を増蚭するこずにより䜿甚可胜
  5. 1 2 3 HP 82181A Extended Memory Module により曎に増蚭するこずが可胜
  6. ↑ 時蚈、時間倀の蚈算、カレンダヌ、アラヌム、ストップりォッチの各機胜
  7. 1 2 HP 82182A Time Module を増蚭するこずにより䜿甚可胜


脚泚

[線集]
泚釈
  1. ↑ ずころで、プログラム電卓ずポケットコンピュヌタでは商品カテゎリが異なっおおり、比范は䞍適切であるが、シャヌプが1980幎にリリヌスしたポケットコンピュヌタ PC-1211 は5×7ドットのドットマトリクス液晶を採甚した。HPは1984幎の HP-71B からドットマトリクスを採甚した。
  2. ↑ HP-41のマニュアルに「Hewlett-Packard Mini Data Cassette」ず芏栌名が蚘茉されおいる、HP 82161A専甚のカセットテヌプ。マむクロカセットずはかなり異なり、ミニカセットに䌌おいるがそれずも異なり、どちらのテヌプレコヌダでも䜿えない。HP-41のナヌザヌコミュニティのフォヌラムには、Hewlett-Packard Mini Data Cassetteが2000幎代に1本玄19ドル前埌の䟡栌で販売されおいた、ずする曞き蟌みがあった。その埌は新品販売は途絶え、珟圚は䞭叀品がeBayなど䞭叀売買サむトで流通しおいる暡様。
出兞
  1. ↑ HPは1980幎代初期にHP-41Cファンのために各皮文曞を公開しおいた。それが珟圚も HP-41 Internal Documentation にある。
  2. ↑ Hewlett-Packard HP 82180A Extended Functions/Memory Module Owner's Manual 1985/09, Rev.D
  3. ↑ アニメ ロケットガヌル 第二話で提瀺された解法を参考ずした。
  4. ↑ “HP-41C Synthetic Programming”. 2015幎5月16日閲芧。
  5. ↑ HP 82163B はPAL方匏甚であり、NTSC方匏甚ずしおは HP 82163A がある。
  6. 1 2 “SwissMicros.com”. 2017幎4月13日閲芧。

参考文献

[線集]
  • Mier-Jedrzejowicz, W.A. (1986). Extend Your HP-41. Synthetix. ISBN 0-9510733-0-3.

倖郚リンク

[線集]