温故知新 - fx-7000G
プログラム電卓 温故知新
- 搭載プログラミング言語に注目して、プログラム電卓の変遷を考える -
追記修正 2019/12/03
過去から現在に至る性能や仕様の変化を調べ、プログラミング言語を中心にカシオ製プログラム電卓の系譜を明らかにする。
3. グラフ機能の追加
今回は、世界初グラフ関数電卓 fx-7000G を取り上げる。
このシリーズには、発売順で下記の機種がある;
- fx-7000G
- fx-7200G
- fx-7500G
- fx-7000GA
- fx-7000GB
- fx-7300G
1985年に fx-7000G が発売された。
搭載言語仕様については、グラフィックコマンド (グラフィック画面消去の Cls コマンド含む) を除けば fx-7000G 搭載言語およびコマンド類は同年発売された fx-4000P と全く同じである。一方プログラム処理速度は fx-7000G の方が fx-4000P よりも2~3倍速い。fx-7000G で保存出来るプログラムステップは最大 422ステップで、fx-4000P の最大 550ステップより少ない。
左がfx-7000G、右が fx-4000P のキーボード
fx-7000G の上から2行目のキーはグラフィックス関係 (写真左側)。この行を除けば、テンキーを含む他のキーの種類と配置が fx-4000P (写真右側) と全く同じ。さらに [SHIFT] や [Alpha] キーと共に使う機能の割り当ても全く同じだ。同時期に発売されたことから、開発が同時に進められた可能性が高く、興味深い。
翌年 1986年には fx-7200G が発売された。fx-7000G と同じ機能を持っているとの情報 (Kyoro's Room Blog - Casio グラフ関数電卓 fx-7200G) があるが、ネットではマニュアルやその他情報が殆ど得られない。あまり出回らなかった機種かも知れない。カシオの関数電卓 のサイトによれば、fx-7200G は fx-7000G よりも処理速度が僅かに速い (四則演算は 1.1倍、グラフィックス描画はほぼ同じ)。
1988年には fx-7500G が発売された。これは 折りたたみ式だが、マニュアルを見る限り言語仕様は fx-7000G と変わりが無い。但し保存できるプログラムステップが最大 4009 と大幅に増量された。カシオの関数電卓 のサイトによれば、fx-7000Gシリーズの中で fx-7500G の処理速度が最も速い (四則演算は 1.2倍、グラフィックス描画は 1.35倍)。
1990年には fx-7000GA が、1991年には fx-7000GB が発売された。これらの言語仕様もマニュアルを見る限り fx-7000G と変わりが無く、保存できるプログラムも最大422ステップと同じだ。カシオの関数電卓 のサイトによれは、GAは省電力の代わりに処理速度が遅くなり、GB で多少速くなったが初代の fx-7000G よりも遅いとある。
▋Casio fx-7000G
fx-7000G のマニュアルはネットで見つからないが、機能上(消費電力以外)は、ほぼ同じと思われる fx-7000GA のマニュアルは以下からダウンロードできる。
▶ fx-7000GA のマニュアル
関数電卓としては、内部演算精度が13桁で、よく使う関数キーが[SHIFT]キー無しで押せる(表に出ている)ので、例えば fx-5800P よりも使いやすい。
ドットマトリックス液晶ディスプレイは、テキスト表示が16桁8行である点は、使い勝手を大幅に改善してくれる。液晶自体は 96ドットx64ドットだが、グラフィック表示の範囲はの95ドットx63ドットになっていて、上端1ラインと左端1ラインはグラフ (グラフィック) の描画コマンド (Sketchコマンド)である Plot と Line の描画領域に含まれない。このコンセプトは最新の fx-CG50 まで引き継がれている。
ちなみに、カシオの関数電卓 のサイトではベンチマークで 96dot x 64dot の塗りつぶしを行っているが、ドット表示されない無用な塗りつぶし動作が含まれる結果になっているので、その分余計な時間がかかっている。95dot x 63dot の塗りつぶしで良いと思う。但し、このサイトでは他の機種についても同一条件 (描画範囲を超えた範囲での描画をベンチマーク) で行っているので、問題は無いことは申し添えておきたい。
さて、プログラミング環境については、先ず保存容量が 422 ステップとかなり少ない。 プログラム編集画面は、デフォルトで上書きモードなので、PCや最近の電卓の挿入モードに慣れていると、とても使いにくい。
なお、カシオの電卓は、スタンダード関数電卓を含めて 2005年発売の機種から一斉にデフォルトで挿入モードに切り替わって使いやすくなっている。
▍数値演算
fx-7000G 搭載言語のグラフィックス以外の主なコマンドは、
・キー入力: ?→A
・出力:" ", ◢
・代入:→
・無条件ジャンプ:Goto/Lbl
・条件ジャンプ:⇒
・カウントジャンプ: Isz, Dsz
・比較演算:=, ≠, <, >, ≦, ≧
・サブルーチンコール: Prog
・配列変数 A[ ] が使える。
これらは全てキーに割り振られている。
なお、条件ジャンプ (⇒) は、[条件式]⇒[文1]:[文2] という書式で、1行に書かないとエラーになる。
この条件分岐は、
If [条件式]
Then
[文1]
Else
[文2]
IfEnd
と同じだ。但し、文1 と 文2 は1つの文しか使えず、句切り文字 : や ◢ を使ってマルチ文を書くことは許されない仕様だ。
これらの仕様は、同時期の 1985年に発売されたプログラム関数電卓 fx-4000P に極めて似ており、fx-7000G にある Cls コマンドが唯一違うくらいだ。但し、Cls コマンドはグラフィック画面の消去でありテキスト画面を消去するコマンドは備わっていない。また、文字列出力コマンド " " は内部カーソルの改行を伴う。
上記の fx-7000G 搭載言語の仕様は、時を経て現在のグラフ関数電卓に引き継がれている点は興味深い。私が調べている限り、fx-7000G や fx-4000P の搭載言語は現在のグラフ関数電卓やプログラム関数電卓に引き継がれている。一例として以下に示す4つのプログラムは、CFX-9850G シリーズ、fx-9860G シリーズ、fx-CGシリーズ、fx-5800P でもそのまま動作する。
▍数値演算プログラム例
上で比較した「加算プログラム」と「数値積分プログラム」を fx-4800P と fx-5800P も加えて、実行速度比較を比較する。
▶加算プログラム
プログラムを起動し、N に 1000 を入力して実行時間を計る。
fx-7000G のプログラム
変数 I のカウントアップに I+1→I と Isz I の2通りで処理速度を調べることにする。
▶数値積分プログラム
この通史積分は、とね日記 - 席初の手帳型プログラム関数電卓 CASIO FX-502P (1979), FX602P (1981) で取り上げられているものをそのまま使わせていただく。
プログラム起動し、分割数として 1000 を入力して、実行時間を計る。
fx-7000G のプログラム
変数 B のカウントアップに B+1→B と Isz B の2通りで処理速度を調べることにする。
以前調べた結果と併せて、上記の計算速度のを比較結果を示す [2019/07/31 修正];
fx-7000G の A=A+1 と Isz A の結果が逆になっていたので修正した [2019/07/31]
記念すべき FX-502P を基準に、速度が何倍になっているかも併せて示している。
同じ年(1985年)に発売された fx-4000P よりも処理がかなり速い。11年後 (1996年) 発売の fx-4800P は関数処理が速くなり、上表の関数計算が最速になっているが、発売当時の製品としては fx-7000G はかなり速い機種と言える。
▍グラフィック描画
fx-7000G 搭載言語のブラフィックコマンドは以下の通り;
・Cls (グラフィック画面消去)
・Graph (数式からグラフを描画する)
・Range (描画範囲を座標で定義する)
・Plot (点を描画する / ポインタを描画する)
・Line (線を描画する)
・Factor (描画グラフの倍率を設定する)
これらは、全てキーに割り振られている。
数式をグラフ化する機能としては、必要最小限のコマンドしかない。これをグラフィック描画コマンドというのは、明らかに間違いだ。その後の機能増強の結果グラフィック描画ができるようになってきているので、ここでは敢えてグラフィックと言うことにする。
▍グラフィックプログラム例
グラフィック画面で全てのドットを塗りつぶしてみる。
描画には 213秒 (3分33秒) 要した。
fx-7000G 以降のグラフ関数電卓でも上記のコードがそのまま走る。ところで2001年以降に発売されたグラフ関数電卓の中では fx-9860G が最もグラフィックス描画が速いのだが、同じコードの実行に 260秒程度かかり、fx-7000G よりも遅い。fx-7000G のグラフィック描画が意外に速いことが分かる。
▋プログラム電卓の系譜 [2019/08/08 修正]
FX-502P で手帳型のプログラム電卓の市場が形成され、カシオが世界で認知されるブランドになった。fx-4000P は FX-502P よりも小さく軽く、処理速度も速いことから、多くのエンジニアに支持されたようだ。
fx-4000P とほぼ同時発売された fx-7000G は世界初のグラフ関数電卓だが、グラフ描画コマンドは至ってシンプルだ。グラフ機能以外のコマンドは プログラム関数電卓 fx-4000P と同一で、配列が使え、構造制御を行うための必要なものは揃っている。足りないのはプログラム保存容量 (422ステップ)と言えよう。ところでプログラム編集画面は、デフォルトで上書きモードなので使いづらい。ちなみに FX-502P / FX-602P / FX-603P は挿入モードで使いやすかった。
カシオのプログラム電卓の系譜において、その黎明期のマイルストーンといえる機種を並べてみた。
左から、FX-502P、fx-4000P、fx-7000G
fx-4000P にグラフ機能を付加してまとめたのが fx-7000G と考えて差し支えないだろう。これら2機種の搭載言語仕様は、その後のプログラム電卓の系譜の原点に位置づけられる。fx-7000G 搭載のコマンドは、現在最新のグラフ関数電卓 fx-CG50 にほぼそのまま採用されており、fx-7000G から fx-CG50 に繋がる系譜が現在の主流になっている。
なお、詳しくは "温故知新" の fx-5800P 編で触れる予定だが、fx-4000P から fx-5800P への進化は直接繋がっておらず、途中に幾つかのグラフ関数電卓を経由した進化がある。fx-4000P と fx-7000G はグラフ機能を除けば残りは全く同じ。fx-4500P から fx-4850P までの機種の言語仕様は fx-4000P とは別系統である。これは言語仕様を見れば明白で、この系統は今は途絶えている。
一方、言語仕様以外のハードウェアデザインやソフトウェアメニューの共通性と変化に着目すると、fx-5800P は fx-4800P や fx-4850P の後継機と言って良い。fx-4800P/4850P の言語仕様の系統は途絶えていても、それ以外は fx-5800P に無駄なく引き継がれている。
現在主流のグラフ関数電卓に搭載されている言語は、fx-7000G から直接繋がっており、その後ハードウェアの進化やOSの進化を経て、一旦 CFX-9850G で大きな進化を見せる。
温故知新 - FX-502P / FX-602P / FX-603P
温故知新 - fx-4000P / fx-4500P / fx-4800P
温故知新 - fx-7000G
温故知新 - CFX-9850G
温故知新 - CFX-9850GC PLUS
温故知新 - fx-9860G
温故知新 - fx-5800P
温故知新 - fx-9860GII
温故知新 - fx-CG10 / fx-CG20
温故知新 - fx-CP400
温故知新 - fx-CG50
温故知新 - fx-9750GIII
温故知新:番外編 - 関数電卓としての使い勝手
温故知新:番外編 - 電卓評価用の積分を解いてみた
温故知新:番外編 - 電卓評価用の複素数を解いてみた
応援クリックをお願いします。励みになるので...
keywords: プログラム関数電卓、プログラミング、Casio Basic、CFX-9850GC PLUS
リンク集 | ブログ内マップ
- 搭載プログラミング言語に注目して、プログラム電卓の変遷を考える -
追記修正 2019/12/03
過去から現在に至る性能や仕様の変化を調べ、プログラミング言語を中心にカシオ製プログラム電卓の系譜を明らかにする。
3. グラフ機能の追加
今回は、世界初グラフ関数電卓 fx-7000G を取り上げる。
このシリーズには、発売順で下記の機種がある;
- fx-7000G
- fx-7200G
- fx-7500G
- fx-7000GA
- fx-7000GB
- fx-7300G
1985年に fx-7000G が発売された。
搭載言語仕様については、グラフィックコマンド (グラフィック画面消去の Cls コマンド含む) を除けば fx-7000G 搭載言語およびコマンド類は同年発売された fx-4000P と全く同じである。一方プログラム処理速度は fx-7000G の方が fx-4000P よりも2~3倍速い。fx-7000G で保存出来るプログラムステップは最大 422ステップで、fx-4000P の最大 550ステップより少ない。
左がfx-7000G、右が fx-4000P のキーボード
fx-7000G の上から2行目のキーはグラフィックス関係 (写真左側)。この行を除けば、テンキーを含む他のキーの種類と配置が fx-4000P (写真右側) と全く同じ。さらに [SHIFT] や [Alpha] キーと共に使う機能の割り当ても全く同じだ。同時期に発売されたことから、開発が同時に進められた可能性が高く、興味深い。
翌年 1986年には fx-7200G が発売された。fx-7000G と同じ機能を持っているとの情報 (Kyoro's Room Blog - Casio グラフ関数電卓 fx-7200G) があるが、ネットではマニュアルやその他情報が殆ど得られない。あまり出回らなかった機種かも知れない。カシオの関数電卓 のサイトによれば、fx-7200G は fx-7000G よりも処理速度が僅かに速い (四則演算は 1.1倍、グラフィックス描画はほぼ同じ)。
1988年には fx-7500G が発売された。これは 折りたたみ式だが、マニュアルを見る限り言語仕様は fx-7000G と変わりが無い。但し保存できるプログラムステップが最大 4009 と大幅に増量された。カシオの関数電卓 のサイトによれば、fx-7000Gシリーズの中で fx-7500G の処理速度が最も速い (四則演算は 1.2倍、グラフィックス描画は 1.35倍)。
1990年には fx-7000GA が、1991年には fx-7000GB が発売された。これらの言語仕様もマニュアルを見る限り fx-7000G と変わりが無く、保存できるプログラムも最大422ステップと同じだ。カシオの関数電卓 のサイトによれは、GAは省電力の代わりに処理速度が遅くなり、GB で多少速くなったが初代の fx-7000G よりも遅いとある。
▋Casio fx-7000G
fx-7000G のマニュアルはネットで見つからないが、機能上(消費電力以外)は、ほぼ同じと思われる fx-7000GA のマニュアルは以下からダウンロードできる。
▶ fx-7000GA のマニュアル
関数電卓としては、内部演算精度が13桁で、よく使う関数キーが[SHIFT]キー無しで押せる(表に出ている)ので、例えば fx-5800P よりも使いやすい。
ドットマトリックス液晶ディスプレイは、テキスト表示が16桁8行である点は、使い勝手を大幅に改善してくれる。液晶自体は 96ドットx64ドットだが、グラフィック表示の範囲はの95ドットx63ドットになっていて、上端1ラインと左端1ラインはグラフ (グラフィック) の描画コマンド (Sketchコマンド)である Plot と Line の描画領域に含まれない。このコンセプトは最新の fx-CG50 まで引き継がれている。
ちなみに、カシオの関数電卓 のサイトではベンチマークで 96dot x 64dot の塗りつぶしを行っているが、ドット表示されない無用な塗りつぶし動作が含まれる結果になっているので、その分余計な時間がかかっている。95dot x 63dot の塗りつぶしで良いと思う。但し、このサイトでは他の機種についても同一条件 (描画範囲を超えた範囲での描画をベンチマーク) で行っているので、問題は無いことは申し添えておきたい。
さて、プログラミング環境については、先ず保存容量が 422 ステップとかなり少ない。 プログラム編集画面は、デフォルトで上書きモードなので、PCや最近の電卓の挿入モードに慣れていると、とても使いにくい。
なお、カシオの電卓は、スタンダード関数電卓を含めて 2005年発売の機種から一斉にデフォルトで挿入モードに切り替わって使いやすくなっている。
▍数値演算
fx-7000G 搭載言語のグラフィックス以外の主なコマンドは、
・キー入力: ?→A
・出力:" ", ◢
・代入:→
・無条件ジャンプ:Goto/Lbl
・条件ジャンプ:⇒
・カウントジャンプ: Isz, Dsz
・比較演算:=, ≠, <, >, ≦, ≧
・サブルーチンコール: Prog
・配列変数 A[ ] が使える。
これらは全てキーに割り振られている。
なお、条件ジャンプ (⇒) は、[条件式]⇒[文1]:[文2] という書式で、1行に書かないとエラーになる。
この条件分岐は、
If [条件式]
Then
[文1]
Else
[文2]
IfEnd
と同じだ。但し、文1 と 文2 は1つの文しか使えず、句切り文字 : や ◢ を使ってマルチ文を書くことは許されない仕様だ。
これらの仕様は、同時期の 1985年に発売されたプログラム関数電卓 fx-4000P に極めて似ており、fx-7000G にある Cls コマンドが唯一違うくらいだ。但し、Cls コマンドはグラフィック画面の消去でありテキスト画面を消去するコマンドは備わっていない。また、文字列出力コマンド " " は内部カーソルの改行を伴う。
上記の fx-7000G 搭載言語の仕様は、時を経て現在のグラフ関数電卓に引き継がれている点は興味深い。私が調べている限り、fx-7000G や fx-4000P の搭載言語は現在のグラフ関数電卓やプログラム関数電卓に引き継がれている。一例として以下に示す4つのプログラムは、CFX-9850G シリーズ、fx-9860G シリーズ、fx-CGシリーズ、fx-5800P でもそのまま動作する。
▍数値演算プログラム例
上で比較した「加算プログラム」と「数値積分プログラム」を fx-4800P と fx-5800P も加えて、実行速度比較を比較する。
▶加算プログラム
プログラムを起動し、N に 1000 を入力して実行時間を計る。
fx-7000G のプログラム
変数 I のカウントアップに I+1→I と Isz I の2通りで処理速度を調べることにする。
▶数値積分プログラム
この通史積分は、とね日記 - 席初の手帳型プログラム関数電卓 CASIO FX-502P (1979), FX602P (1981) で取り上げられているものをそのまま使わせていただく。
プログラム起動し、分割数として 1000 を入力して、実行時間を計る。
fx-7000G のプログラム
変数 B のカウントアップに B+1→B と Isz B の2通りで処理速度を調べることにする。
以前調べた結果と併せて、上記の計算速度のを比較結果を示す [2019/07/31 修正];
加算プログラム | 数値積分プログラム | ||||
機種 | 実行時間 | 比較 | 実行時間 (秒) | 比較 | |
FX-502P | 123.1 秒 | --- | 1261.8 秒 | --- | |
FX-602P | 111.2 秒 | 1.1 倍 | 716.5 秒 | 1.8 倍 | |
FX-603P | 37.8 秒 | 3.3 倍 | 166.2 秒 | 7.6 倍 | |
fx-4000P | 61.7 秒 | 2.0 倍 | 349.1秒 | 3.6 倍 | |
fx-4500P | 195.0 秒 | 0.6 倍 | 798.1 秒 | 1.6 倍 | |
fx-4800P | A=A+1 | 26.3 秒 | 4.7 倍 | 114.3 秒 | 11.0 倍 |
Isz A | 21.2. 秒 | 5.8 倍 | 109.4 秒 | 11.5 秒 | |
fx-7000G | A=A+1 | 20.7 秒 | 5.9 倍 | 146.1 秒 | 8.6 倍 |
Isz A | 19.3 秒 | 6.4 倍 | 143.2 秒 | 8.8 倍 |
記念すべき FX-502P を基準に、速度が何倍になっているかも併せて示している。
同じ年(1985年)に発売された fx-4000P よりも処理がかなり速い。11年後 (1996年) 発売の fx-4800P は関数処理が速くなり、上表の関数計算が最速になっているが、発売当時の製品としては fx-7000G はかなり速い機種と言える。
▍グラフィック描画
fx-7000G 搭載言語のブラフィックコマンドは以下の通り;
・Cls (グラフィック画面消去)
・Graph (数式からグラフを描画する)
・Range (描画範囲を座標で定義する)
・Plot (点を描画する / ポインタを描画する)
・Line (線を描画する)
・Factor (描画グラフの倍率を設定する)
これらは、全てキーに割り振られている。
数式をグラフ化する機能としては、必要最小限のコマンドしかない。これをグラフィック描画コマンドというのは、明らかに間違いだ。その後の機能増強の結果グラフィック描画ができるようになってきているので、ここでは敢えてグラフィックと言うことにする。
▍グラフィックプログラム例
グラフィック画面で全てのドットを塗りつぶしてみる。
描画には 213秒 (3分33秒) 要した。
fx-7000G 以降のグラフ関数電卓でも上記のコードがそのまま走る。ところで2001年以降に発売されたグラフ関数電卓の中では fx-9860G が最もグラフィックス描画が速いのだが、同じコードの実行に 260秒程度かかり、fx-7000G よりも遅い。fx-7000G のグラフィック描画が意外に速いことが分かる。
▋プログラム電卓の系譜 [2019/08/08 修正]
FX-502P で手帳型のプログラム電卓の市場が形成され、カシオが世界で認知されるブランドになった。fx-4000P は FX-502P よりも小さく軽く、処理速度も速いことから、多くのエンジニアに支持されたようだ。
fx-4000P とほぼ同時発売された fx-7000G は世界初のグラフ関数電卓だが、グラフ描画コマンドは至ってシンプルだ。グラフ機能以外のコマンドは プログラム関数電卓 fx-4000P と同一で、配列が使え、構造制御を行うための必要なものは揃っている。足りないのはプログラム保存容量 (422ステップ)と言えよう。ところでプログラム編集画面は、デフォルトで上書きモードなので使いづらい。ちなみに FX-502P / FX-602P / FX-603P は挿入モードで使いやすかった。
カシオのプログラム電卓の系譜において、その黎明期のマイルストーンといえる機種を並べてみた。
左から、FX-502P、fx-4000P、fx-7000G
fx-4000P にグラフ機能を付加してまとめたのが fx-7000G と考えて差し支えないだろう。これら2機種の搭載言語仕様は、その後のプログラム電卓の系譜の原点に位置づけられる。fx-7000G 搭載のコマンドは、現在最新のグラフ関数電卓 fx-CG50 にほぼそのまま採用されており、fx-7000G から fx-CG50 に繋がる系譜が現在の主流になっている。
なお、詳しくは "温故知新" の fx-5800P 編で触れる予定だが、fx-4000P から fx-5800P への進化は直接繋がっておらず、途中に幾つかのグラフ関数電卓を経由した進化がある。fx-4000P と fx-7000G はグラフ機能を除けば残りは全く同じ。fx-4500P から fx-4850P までの機種の言語仕様は fx-4000P とは別系統である。これは言語仕様を見れば明白で、この系統は今は途絶えている。
一方、言語仕様以外のハードウェアデザインやソフトウェアメニューの共通性と変化に着目すると、fx-5800P は fx-4800P や fx-4850P の後継機と言って良い。fx-4800P/4850P の言語仕様の系統は途絶えていても、それ以外は fx-5800P に無駄なく引き継がれている。
現在主流のグラフ関数電卓に搭載されている言語は、fx-7000G から直接繋がっており、その後ハードウェアの進化やOSの進化を経て、一旦 CFX-9850G で大きな進化を見せる。
温故知新 - FX-502P / FX-602P / FX-603P
温故知新 - fx-4000P / fx-4500P / fx-4800P
温故知新 - fx-7000G
温故知新 - CFX-9850G
温故知新 - CFX-9850GC PLUS
温故知新 - fx-9860G
温故知新 - fx-5800P
温故知新 - fx-9860GII
温故知新 - fx-CG10 / fx-CG20
温故知新 - fx-CP400
温故知新 - fx-CG50
温故知新 - fx-9750GIII
温故知新:番外編 - 関数電卓としての使い勝手
温故知新:番外編 - 電卓評価用の積分を解いてみた
温故知新:番外編 - 電卓評価用の複素数を解いてみた
応援クリックをお願いします。励みになるので...
keywords: プログラム関数電卓、プログラミング、Casio Basic、CFX-9850GC PLUS
リンク集 | ブログ内マップ
- 関連記事
-
- 温故知新:番外編 - 電卓評価用の積分を解いてみた 2021/07/03
- 温故知新 - fx-5800P 2021/02/10
- 温故知新:番外編 - 関数電卓としての使い勝手 2020/02/21
- 温故知新 - fx-7000G 2019/12/03
- 温故知新 - FX-502P / FX-602P / FX-603P 2019/12/03