楽屋裏 - プログラム電卓メモワール2006-9

2019/06/13
追記 2019/06/15
更新 2019/12/27
 

今回はカシオ電卓のカタログ2006年9月版を紹介する。前回紹介のカタログから一気に16年後のものだ。

全16ページのうち関数電卓が4ページ。特筆すべきなのは、ポケットコンピュータのカテゴリが消え去っていることだ。

2006年9月版カタログの関数電卓のページ

今回のカタログでは、fx-5800P が NEW として初めて掲載され、一方で FX-603P がカタログから消えた。


FX-603P 掲載カテゴリの謎
前回紹介した1990年12月のカタログの後から今回紹介するカタログの直前まで、実際に確認できる範囲では1994年1月のカタログ以降、2005年1月のカタログ までは、FX-603P はプログラム関数電卓のカテゴリには掲載されておらず、ポケットコンピュータと同じカテゴリの中で "プログラム関数電卓" として掲載されていた。これは、どういうことなのだろうか?
[2019/06/15 追記]
sentaro様から以下を教えて頂いた。
FX-603Pと同じCPUを持つポケコンには FX-840P、FX-860P、FX-860Pvc があり、これらは共通してRS232Cシリアルインターフェスを持っており、共通のインターフェース機器 FA-6s が使えることからポケコンとして共通のハードウェアを持っている。このことから FX-603P がポケコンと同じカテゴリに入れる理由は十分にある、とのこと。 

さらに、今回のカタログから FX-603P を含めてポケットコンピュータのカテゴリが消えた。1981年7月のカタログでポケットコンピュータが新発売になってから25年後に、カシオはポケットコンピュータを FX-603P と共に終焉させたことになる。

長い間、業務用としても使われ続けていたのが FX-603Pでありポケットコンピュータであり、ユーザーに支えられ市場の要求に応え続けたのが FX-603P でありポケコンだったのであろう。そして fx-5800P の登場で FX-603P は製品寿命を終え、安価なノートPCの登場でポケコンは製品寿命を終えた、と当時のカシオが判断したのだと思う。

16年販売が続いた FX-603P の真の後継機と考えられる fx-5800P がついに発売されたタイミングで発行された今回のカタログは、新旧交代の瞬間を捉えた貴重なもので、感慨深い。

 
fx5800P_2006_9

NEW
とあるのでちょうど発売開始のタイミングでのカタログだ。

fx-4850P、fx-4800Pは生産中止となり (★印が生産中止を意味する)、しばらく販売は並行していた。
fx4500PA

fx-4500PA の謎
何故か fx-4500PA が生産継続になっていた。fx-4500PA は2行出力1行入力で、プログラム処理速度は極めて遅い。一方、fx-4800P や fx-4850P は4行出力4行入力で、さらに処理速度が遙かに速い。これら3機種の言語仕様は殆ど同じだ。それにもかかわらず高性能で使いやすい fx-4800P や fx-4850P を生産中止にし fx-4500PA を生産継続する理由がよく分からない。
fx-4500PA取扱説明書   fx-4800P取扱説明書

4行表示の fx-5800P を新たに投入し、販売促進のために、同様に4行表示の fx-4850P と fx-4800P を強制的に退場させたかったのだろうか? それにしても2行表示の fx-4500PA を残す理由はどこにあるのだろうか? fx-4000Pシリーズのユーザー資産であるプログラムをしばらくは引き続き使えるようにする配慮ならば、価格が近くメモリの多い fx-4800P を残す方が良いと思うのだが、謎である。
[2019/06/15 追記]
sentaro様から以下のコメントを頂いた。
fx-4500PAが fx-4850P や fx-4800P に勝っているのは、おそらく電池の持ちが良い点のみだが、これは電卓として重要なポイント。また、今でも残っている2ライン出力1ライン出力のシンプルで小型の電卓と言える。逆に言えば、これくらいしか fx-4500PAが残る理由が考えにくい、とのこと。

[2019/12/27 更新]
新たに発売開始された fx-5800P は、ハードウェア設計やメニューからコマンドを選択する方式に着目すれば、fx-4800P / 4850P からの世代交代機である。一方でプログラミング言語自体は fx-4000P の直系であり、その後 CFX-9850G  シリーズ、そして fx-9860G に引き継がれ、さらに改良が進んたものが fx-5800P に搭載されている。往年の名機 FX-603P を引き継ぐただ1つの製品という位置づけにあることは、カタログが物語っている。そして fx-9860G よりも  fx-5800P がいくつかの点で進化している。例えば 入力命令 ? の追加、また [FILE]キーでプログラムリストを呼び出して実行したり、プログラムのお気に入り登録ができるようになった。関数電卓としては、多くの公式がプレインストールされ、新たに数式を公式として登録でき、一般によく使う関数キーが残っているなど、グラフ関数電卓と、スタンダード関数電卓の良いとこ取りのバランスの良い設計になっている。

私自身は 2007年5月に fx-5800Pを購入し FX-603P を引退させ、現在まで fx-5800P をほぼ毎日利用している。
=== 更新ここまで ===


さてこの時期のグラフ関数電卓は CFX-9850GC PLUS だ。

CFX-9850GC PLUS

CFX-9850G は3色カラー表示のグラフ関数電卓で、ここに掲載されているのは CFXシリーズの最終型だ。★印が付いているので既に生産中止品だ(2005年1月のカタログではNEWが付いていて新発売なので、1年8ヶ月で生産中止)。しかし次機種の掲載がないので、次機種の販売開始が近いことを示している。後継機種である fx-9860G は、2006年9月にはまだカタログに掲載されておらず、まだ国内販売されていない。海外では2005年に発売されている。

ところで、右のTVインターフェース付きの機種は驚くほど高価で、アナログRGB出力というのも時代を伺わせる。今であればUSB出力でPC経由のモニター表示だ。


Casio Basicの系譜 [2019/06/14 修正] 
プログラム言語に着目すれば、CFX-9850GC PLUS 搭載のプログラム言語を進化させた fx-9860G が海外で2005年に登場し、そこからグラフ描画機能とI/Oコマンドを無くし、旧来の命令 (" "、) を改善し、新たに ? (入力)命令を追加したものが fx-5800P に搭載された 。製品の市場投入の時系列に加えて、実際に両者でプログラミングをしてコマンドを詳細に調べた結果から、このように結論づけて良いと思う。(参考:fx-9860GII への移植 - 厄介な旧来の命令

fx-9860G のアップデート機 fx-9860GII には文字列処理機能が追加され、さらに高精細カラー液晶搭載の fx-CG10 / CG20ではカラーコマンドが追加された。

CFX-9850GC PLUSの構造制御コマンドには、例えば IF ~ Then ~ Else ステートメントで Then や Else の直後で改行できない、改行だけの空行はエラーになる、While / Do ループ内に複雑な制御構造があるとスタック処理に失敗してエラーになるなどの惜しい欠陥があったが、次機種の fx-9860G では解決された。fx-5800P でもこの問題は解決されている。fx-4500P 以降の シリーズ最後の fx-48500P までは代入に = を使うが、グラフ関数電卓や fx-5800P では → を使う。fx-5800P 搭載言語は、fx-4000Pシリーズの系統ではなく、グラフ関数電卓の系譜だと言える。


ウィキペディアの間違い [2019/06/14 追記]
ウィキペディアで "プログラム電卓" のエントリには、プログラミング言語の項でキーストローク方式を採用している機種に "カシオのfx-5800Pなど" と記載があるが、これは明らかな誤りだ。"カシオのFX502P, FX602P, FX-603P, fx-4000P シリーズなど" と書き換えるべきだ。或いは単に fx-4800P と書くべきところを 誤って fx-5800P としたのかも知れない。

ちなみに英語版 Wiki Pedia の Programable calculator のエントリーでは、この誤りは見られない。



楽屋裏 - プログラム電卓メモワール1981-2
楽屋裏 - プログラム電卓メモワール1981-7
楽屋裏 - プログラム電卓メモワール1990-12
・楽屋裏 - プログラム電卓メモワール2006-9
楽屋裏 - プログラム電卓メモワール2007-12
楽屋裏 - プログラム電卓メモワール2009-10
・楽屋裏 - プログラム電卓メモワール2012-03
・楽屋裏 - プログラム電卓メモワール2013-8
・楽屋裏 - プログラム電卓メモワール2012-12
・楽屋裏 - プログラム電卓メモワール2018-01



応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 


keywords: プログラム関数電卓、プログラミング

リンク集 | ブログ内マップ
関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

e-Gadget 開設6周年

2019年12月24日
更新 2019年12月25日

2019年10月29日で、e-Gadget は6年経ちました!

もうメリークリスマスの時期になって、今更ながらこれを書いています。

Access201910 

2013年秋に開設して、満6年たったところで、アクセスカウントは11万人を超え、ページビューは37万人になりました。グラフを見ますと、リピーターの方が確実に増えているのが分かります。とても有り難いことです。

1. 最近のトピック - C.Basic
最近の傾向の1つに、C.Basic をキーワードで来られる方が増えていることが挙げられます。fx-5800P に次いで2位の検索キーワードです。C.Basic は確実に市民権を得てきていると感じます。(ココ参照)


2. 最近のトピック - Casio Basic の系譜
当ブログのオリジナルネタとしては、プログラム電卓メモワールプログラム電卓温故知新 があります。いずれも、連載はまだ終わっていません。特に ”プログラム電卓温故知新" は、プログラミング言語を中心にして、Casio Basicがどこから来て、どのように進展してきたのかを明らかにする企画です。

実機でプログラミング言語を実際に触り、プログラムを走らせることで、Casio Basicの系譜が明らかになってきました。実機を入手するために、チョット散財してしまいましたが、記念すべきモデルが入手できたので、それはそれで嬉しいものです。

新世代 Casio Basicを搭載している fx-5800Pfx-CG50 の直系のご先祖様を1つだけ挙げろといわれれば、fx-4000P だと断言できます。

手帳型の超小型軽量のプログラム電卓の元祖は、FX-502P。そして現在の Casio Basic に直接繋がるのが fx-4000P、これにグラフ機能を追加した fx-7000G 、以上3機種が初期の記念すべきマイルストーンとなるモデルと言えます。(ココココ参照)。
N-FX502P_fx4000P_fx7000G 
左から、FX-502Pfx-4000Pfx-7000G

fx-4000P は小型軽量で高速な関数電卓で550ステップのプログラムを組めます。fx-4000P に触れたブログやホームページが多く見つかります。エンジニアや学生に愛用されたモデルの証でしょう。今でも使いやすい関数電卓です。(ココ参照)


3. 最近のトピック - fx-5800Pの後継機
最近の検索ワードとして、「fx-5800P後継機」が10位以内にランクインしています。
クエリ20191224

皆さん気になってきている証拠ですね。私もとても気になります。本当に後継機が登場するのでしょうか?

後継機が登場しないこともあり得そうな感じがしており、その場合は fx-5800Pの新品を買って使わずに保管しておこうか、とも思っています。コレに対して、個人的にかなり偏ったソリューションですが、fx-9860G Slim を入手して使い始めています (ココ参照)。



最後になりますが、これまでの皆様のご支援に感謝するとともに、今後も変わらずご支援を頂きたく、よろしくお願い申し上げます。


関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

C:Basic - Top Page

C:Basic - Add-In Casio Basic

Update and correction may be made at any time without notice.

1st: 18th Dec. 2015
Updated: 16th Dec. 2019

C.Basic, a part of C:Basic Project

If you feel your Casio Basic programs are not running fast enough, C.Basic can free you of that frustration.

Get Started with genuine Casio Basic program, then extended commands that C.Basic alone perform.

Currently C.Basic (Basic interpreter) is released and updating for fx-9860G Series (SH3) and later Graphing calculaters. C.Basic (single dot) will evolve into Casio basic Compiler "C:Basic" (double dots), which will run programs much faster than C.Basic (10 times from the looks of it).

C.Basic is provided as an Add-In Basic language which is upper comatible Casio Basic

Why C.Basic / C:Basic?

Genuine Casio Basic by Casio is a simple language containing minimal functionality in limited hardware power, but it's a practical language allowing us to enjoy 'Structured Programming like' coding. Old fans of Programmable calcs and poket computers who used to enjoy Basic programming well know that the old Basic requires line number. Unlike such old Basic, current Casio Basic can be categorized as a new Generration, so we define current Casio Basic is Caso Basic New Generation. The Casio Basic is very easy-to-use language and you can create programs on your calc only, no PC is required.

You can also create Add-In programs which can be built on your PC with C language SDK and the Add-In runs much faster than genuine Casio Basic. Comparing with Add-In, the Casio Basic is very slow, especially drawing dots on LCD screen is extremely slow. In order to improve speed of genuine Casio Basic, we started development of C.Basic (interpreter version at first) which is compatible with Casio Basic. Currently it gives you much faster computing speed in factor of 10 or 20 than genuine Casio Basic. Now we know C:Basic (compiler version in future) is capable to run x10 or more fasterr than C.Basic (interpreter version).
The C:Basic Project is driven by sentaro21 (author of this Add-In), Krtyski (owner of this blog, testing, making sample programs, suporting development) and some enthusiasts of C.Basic.




▋ Latest Version of C.Basic

There are two editions of C.Basic, C.Basic for FX and C.Baisc for CG;

C.Basic for FX (beta version)
This edition supports supports fx-9860G Series (SH3), fx-9860GII Series (SH4A) and Graph 35+USB/35+EII/75/85/95 (SD).
    ▶ Get Latest Verion

C.Basic for CG (beta version)
This edition supports PRIZM fx-CG10, fx-CG20, fx-CG50 and Graph90+E.
    ▶ Get Latest Version

NOTE: They are still beta version, so it may includes bugs and there is a possibility to destroy data in your calc (in this case you may need to restart or reset your calc). So it's highly recommneded to make backup of your data before trying C.Basic.



Installation of C.Basic
  1. Transfer Add-In file to storage memory of your Graphing Calc.
    Transfer CBasic.g1a file to storage memory of your fx-9860G Series using PC link software FA-124A. See below.
    Transfer CBCGxxx.g3a file (xxx stands for version number) to storage memory of your fx-CG Series by simply using explorer. fx-CG series is recognized as an external drive. See below.
  2. To start up C.Basic, press [MENU] key and select C.Basic icon.
  3. To check version of C.Basic, press [SHIFT] [MENU] [F6](Ver.), then version is shown.
  4. When the version is same as what you want to install, the installation has been done correctly.
  5. To return back to File List, press [EXIT] and [EXIT] again.
  6. CBasic.g1a and CBCGxxx.g3a are rather large file, so Optimization of memory is recommended to do. Press [MENU], select MEMORY icon, press [EXE] and press [F5] (Optimization).

Using the PC link software (FA-124) for fx-9860G / fx-9860GII Series

FA-124 is a PC link software which is included in the package of fx-9860G or fx-9860GII Series. For detailed operation please refer its manual. Recently CD is not included in a distribution package, so download FA-124 from Casio Worldwide Education Website.

Copy CBASIC.g1a to Storage Memory in right pane of FA-124. Also copy ~~HELP1.g1m file in Help folder to Storarage Memory in right pane of FA-124. Connect fx-9860G or fx-9860GII Series to PC using USB cable. Left pane shows files in your calc. Transfer CBASIC.g1a in storage memory in right pane to left pane in storage memory.

Font folder and FontEdit folder should also be transfered to the Storage Memory if you want to use extended fonts.

FA124A_Moved

When available storage memory comes low and you want to update C.Basic, it's recommended to delete CBASIC.g1m at first, perform Optimization of storage memory, then transfer latest version of CBASIC.g1m.

For detailed instructions, please refer to instruction manual of FA-124.

Note: FA-124 bug info. - files may be destroyed when multiple files are copied at once in right pane. Do not copy multiple files at once to right pane from left pane or outside of FA-124A. When get backup files into right pane of FA-124, you should trasfer the files back to calc and check their functionality for sure. If they are OK, then your backup files are OK.


Using Explorer for fx-CG10, fx-CG20 and fx-CG50

Connecting fx-CG Series to your PC with USB cable and open Exporler, then fx-CG is shown as an external drive.

fx-CG_Explorer

Root of the external drive is storage memory of fx-CG Series calc. Transfer CBCGxxx.g3a (xxx stans for version number of C.Basic for CG) to Storage Memory shown as root of the extrenal drive.

Also transfer HELP3.g3m and HELP1.g1m in Help folder to program source folder, which is Storage Memory as default or any folder you can create, eg. "@CBASIC". 

@Font folder and FontEdit folder should also be transfered to the Storage Memory if you want to use extended fonts.



How to Use & Command Reference

   C.Basic for FX

   C.Basic for CGAll those above information are in text files included in downloaded zip file.



Overclock Add-In: Ftune2

To enjoy fast operation, an over-clock Add-In,
Ftuen2 is recommended to use with C.Basic.
Review following pages for reputation of this program;
-
@ Unversal Casio Forum
-
@ CEMETECH
-
@ TI-Planet

I have used this Add-In over 1 year, there is no problem found so far. Ftuen2 has well considerred safwty features, so it unlikely damages your calc. But please make backup of data of your calc for sure.

Please download Ftune2 for Casio fx-9860GII POWER GRAPHIC 2 (SH4A model), not other editions.



Potential of C.Basic & C:Basic

Let me show you capability of C.Basic and C:Basic with sample program(s).

Conway's Game of Life

C.Basic is upper compatible with original Casio Basic, and has some extended commands and language functions.

If you want to make a fast bitmap graphics program with original Casio Basic, I can say it's reckless try. But with C.Basic you can enjoy programming of Conway's Game of Life as a good example.



- Download:
Game of Life Ver 0.74

In this video, clock is tuned up to 236MHz by Ftune2.

- Download:
Ftune2
   Please be careful to download an edition for Casio fx-9860GII USB POWER GRAPHIC 2 (SH4 model).

=====

To evalaute capability of C:Basic (compiler version), most frequently porcessd codes of Game of Live Ver 0.74 is replaced by a special command "DotLife" to make the codest run at native code speed. 



Download: Game of Life Ver 0.84

As you see, it's much faster in factor of 10 until getting to generation 517. Now we believe fully native code by C:Basic (compiler version) should acheive a bit faster computing speed than this case.


3D Maze

3D_Maze 

Go from top-left as strat point to bottom-right as goal viewing 3D display in right pane. This rungs on genuine Casio Basic but this is very slow. You should run on C.Basic.

- [↑] / [8] : Go forward
- [→] / [6] : Go right
- [←] / [4] : Go left
- [↓] / [2] : Go back

Download: 3D Maze



Action Game - DRAGON



To switch Upward and Downward of flying Dragon, press any key besides [AC], [EXIT] and [0] keys. There are flying mines, do not touch the mines also do not hit mountains.

Pressing [0] key, dragon can "roar" 3 times, which destroy everything, mines and even mountains. Press [EXIT] or [AC] key to quit the program.

Sorry the video has no English subtitle. This program runs on C.Basic with C.Basic original commands. This is a good sample how to use Bitmap handling and drawing functions.

Download: Dragon.zip



Shooting Game - AlienCG

AlianCG1.png AlianCG3.png 

Download: AlienCG



▲Back to Top



関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

管理人からのメッセージ

更新 2019/12/10


2005年以降に登場したカシオのプログラム電卓に搭載されているプログラミング言語を "新世代 Casio Basic" と私は呼んでいます(但し海外専用モデル ClassPadシリーズは除く)。そもそも Casio Basic という言い方は私が勝手に言っているとばかり思っていたのですが、海外のカシオプログラム電卓のファンが既にCasio Basic と呼んでいました。WiKi Pedia には、Casio Basic のエントリーがあります。日本でググると Casio Basic はカシオの時計の名前だと分かります。

プログラミングは管理人の趣味の1つです。典型的な下手の横好きです。人生初のプログラミングは FX-502P で作ったゲーム。PCでの初めてのプログラミングは N88-BASIC、その後 MS-DOS や Windows で、Basic、C、C++ などでプログラミングを楽しんできました。最近は C# の味見をしながら 簡単な Windows アプリを作ってみました。

2007年のある日、fx-5800P を高性能な関数電卓として購入し、せっかくプログラミング機能が付いているのでチョット使ってみようと思ったのが Casio Basic との出会いでした。当時は電卓でプログラムを作ろうとは思っていませんでした。

PCでのプログラミング経験があるので、最初は Casio Basic の貧弱さに驚き、まあ電卓の言語なんてこんなものか、と思いました。キーボードを叩けば入力できるPCと違って、最初はコマンドの入力にも不自由しました。取扱説明書にはコマンドについて殆ど最低限のことしか書かれていないので、あまりあてになりません。そこで、PCでの Basic プログラミングの感覚で Casio Basic のコードを試しに書くと結構そのまま使えることが分かり、Casio Basic に興味を持ちました。自分なりに言語仕様を調べてみようと思った時、主に調査結果を残すために 当ブログ e-Gadget を作りました。2013年10月末のことでした。

今では、Casio Basic はよくできていると思っています。構造化プログラミング風のコーディングが可能で、最も非力な fx-5800P で実用プログラムやアクションゲームを簡単に作れる程度の能力を持っていることは、意外に知られていません。当ブログでは実際に作った実用プログラムやゲームを紹介しています。
プログラムライブラリ - 目次 -

新世代 Casio Basic の搭載機種の間でプログラムの互換性が高いのも大きな利点です。電卓さえあれば、通勤電車の中でさえプログラミングできます。いつでもどこでもプログラミングできるのは電卓ならではです。なので当ブログの英語版コンセプトは "Anywhere Anytime Programming" としています。

新世代Casio Basic や、それを搭載した機種でのプログラム実行の利便性は、実際に使い込んで初めて分かると思います。換算プログラムや実用プログラムが作れるので、趣味だけでなく日々の仕事や生活に役立ちます。

この良さは、実際に使い込んで感じるもので、カタログや取扱説明書を読むだけでは分かりにくいと思います。1990年台のプログラム電卓からは大きく進化しています。古い情報による先入観で誤解したまま発信しているのをたまに見かけます。今やプログラム電卓は海外市場が主戦場なので、カシオ自身が日本語で情報発信していません。使い込んで初めてその良さに気付く現状は、ちょっと残念に思います。高級言語でのプログラミング経験者なら、高品質なプログラムが楽にスグ作れます。プログラミング初心者には、新世代Casio Basic を味見したり、プログラム入門に良いと思います。
Casio Basic入門 - 目次 -

当ブログ e-Gadget では、取扱説明書では絶対に分からない新世代 Casio Basic の使いこなしを中心にして、プログラム電卓に関する情報を発信しています。 

=====
[2018/08/02 追記]

fx-5800P 関連の話題:
fx-5800P の欠点はいくつかありますが、PCとリンクしてプログラムコードを保存したり電卓に転送できないので、プログラムを皆さんと楽に共有できないのが最大の問題でした。ところが、現在ではそれが 可能になっています。ご興味があれば  "CcLinker" で検索してください。当ブログの紹介ページや CcLinker の作者によるオリジナルページがヒットします。
ついにfx-5800PがPCリンク可能になった

また、fx-5800P はカバーヒンジの作りが貧弱で簡単に壊れるという弱点もありますが、完璧確実で安く修理する方法があるので紹介しています。"fx-5800Pリニューアル" で検索すると記事がヒットします。
⇒ fx-5800Pの破損ヒンジの交換、ついでにリニューアル

グラフ関数電卓の話題:
さて、fx-5800P よりも高価だけど能力の高いグラフ関数電卓も Casio Basic が使えて、fx-5800P との互換性が比較的高いことも確認済みです。fx-5800P よりもプログラムが高速動作しますが、グラフィックス描画は残念なくらい遅く、Casio Basic のグラフィックスコマンドはグラフ描画機能を活かすマクロコマンドの位置づけでしかありません。より高速で高機能なコマンドを使ってプログラミングしたいという目的で、アドイン版 Casio Basic の開発が継続しており当ブログでサポートしています。それは、C.Baisc というインタープリタですが、将来はコンパイラ版の C:Basic も登場する予定です。純正 Casio Basic の互換性をできるだけ保っているので、純正 Casio Basic プログラムが殆ど修正なしでかつ高速に走ります。また C.Basic 用新コマンドも多数追加され、かなり自由自在にプログラミングが可能になっています。fx-9860G 以降 fx-CG50 までのグラフ関数電卓に対応しています。
Casio Basic - 機種間の移植性
C:Basic - アドインCasio Basic

=====

当ブログを始めた時、Casio Basic やプログラム電卓の話題だけでここまで続くとは思っていませんでした。そこで、プログテーマとして電子小物を想定して、当ブログを e-Gadget と銘々しました。従って、PCや周辺機器、電子辞書やPDAなどの話題も備忘録も兼ねて記事にしています。


keywords: fx-5800P、 fx-9860GII、fx-9860GII SD、fx-CG20、fx-CG50、CasioBasic、プログラム電卓

関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

温故知新 - CFX-9850G

プログラム電卓 温故知新
 - 搭載プログラミング言語に注目して、プログラム電卓の変遷を考える -
<目次>


 
2019/08/14
追記修正 2018/12/03

過去から現在に至る性能や仕様の変化を調べ、プログラミング言語を中心にカシオ製プログラム電卓の系譜を明らかにする。


4. Casio Basic 登場 - 可読性と機能の向上 (1)


今回は、世界初のグラフ関数電卓 fx-7000P シリーズの後、プログラム言語としてターニングポイントとなる仕様追加を果たした CFX-9850G を取り上げる。

1996年に発売された CFX-9850G には、いくつかの Basic コマンドが追加されており、LocateGetkey コマンドが初めて搭載されたことは、電卓で実用的なプログラムを作るためには非常に重要な出来事と言って良いと思う。

当ブログで使っている Casio Basic という呼称は、カシオが公式に使っているものではないが、欧米のプログラム電卓愛好家のコミュニティでは以前から使われている。当ブログでは、当初管理人が CasioBasic と呼んでいたが、その後海外のコミュニティで同じ名称が使われているのを知った。

但しそれらの海外のコミュニティにおいて Casio Basic の明確な定義が見当たらない。当ブログでは以前から、Basic風のコマンドが追加された搭載言語を "Casio Basic" と呼んでいる。

さらに進化して下記の条件を備えたものを当ブログでは "新世代Casio Basic" と呼んでいる。
 - Locate と Getkey を含んだ Basic コマンドが追加されている
 - 行頭の改行がエラーにならない
 - Then と Else 直後の改行がエラーにならない


今回は、"新世代" 前夜の "Casio Basic" に焦点を当てる。


Basicコマンドの追加

ネットで得られる操作マニュアルを調べたところ、最初にBasicコマンドが追加されたのは、1995年フランスで発売された GRAPH 20 (fx-9610aG) であり、世界市場で最初に Basicコマンドが搭載されたのは、1996年発売の fx-7400G であった。
  GRAPH 20 (fx-9610aG) の User's Manual 
 ▶ fx-7400G の User's Manual - Programming編
これらでは、If 文、For 文、Do 文、While 文、Break、Return、Stop が追加されている。 


Locate, Getkey の追加

カシオのプログラム電卓で、初めて Locate コマンドと Getkey コマンドが追加されたのは、1996年発売の CFX-9850G であった。

それまでの搭載言語では、入力検知できるのはテンキーと[EXE]キーのみ、文字列や数値の出力は " " コマンドや  コマンドで行うが出力位置は指定できなかった。ところが、Getkey コマンドが追加されたことで、[AC]キー以外の全てのキーの入力を個別に検知できるようになり、Locate コマンドが追加されたことで、出力位置を自由に設定できるようになった。これにより、画面がスクロールしないプログラムを書けるようになり、プログラムの自由度が格段に向上した。極めて大きな進化といえる。

CFX-9850G は、LocateGetkey が初めて追加された機種だ。カシオのプログラム電卓の系譜で重要なマイルストーンだ。CFX-9850G の系統には下記がある。
- CFX-9850G / CFX-9850G Plus / CFX-9850GA Plus / CFX-9850GB Plus (1996 1998)
- CFX-9950G / CFX-9959GB Plus (1996 - 2003)
- CFX-9850GC Plus
(2004 - 2010、2005年国内発売)


CFX-9850G
が発売された頃は、fx-4500Pfx-4800P が販売されていた。
1996年4月発行のカシオ電卓総合カタログ - CFX-9850G (国内では 1996年3月発売), fx-4500P, fx-4800P


Casio CFX-9850G

CFX-9850G_22GBのメモリに、プログラム領域26KBが含まれる。

CFXシリーズは、3色カラー液晶搭載のグラフ関数電卓で、デフォルトがブルーで、オレンジとグリーンを追加した3色が使える。実際の画面は、輝度も色もコントラストが低い。液晶を見る角度でコントラストや色合いが大きく変化するのも見づらさの原因だ。明るいところでは問題ないが、少し暗くなると見づらいと感じる。この3色カラー液晶は応答性が悪い。

CFX9850G_Display 

プログラムの転送
PClink_9850G_2 PCリンク
3pin-USBケーブル (SB-88) と プログラムリンク ソフトウェア (FA-124) を使えばPCリンクや電卓の画面取得が可能になる。
3pin-USBケーブル (SB-88)
現在は製造中止品だが、takumako様により互換ケーブルが有償頒布されている。
プログラムリンク ソフトウェア (FA-124)
カシオのサイトから無償ダウンロードできる。

 電卓間転送
3pin-3pinケーブル (SB-62) を使えば、3pin端子のあるグラフ関数電卓とプログラムの転送ができる。
3pin-3pinケーブル (SB-62)
まだ販売されている。takumako様により互換ケーブルが有償頒布されている。

ところで、電卓本体右下にある3pinコネクタには、防塵防滴用と思われるゴム製の "栓" が刺さっている。ある程度使われた中古品だとこれが無くなっているケースが多いのではないかと思う。


搭載言語 (Casio Basic) の概要
Basicコマンドが追加されたことでプログラムの可読性と機能が向上し、さらに GetkeyLocate が追加されたことでプログラムの自由度が向上している。

主なコマンド
 - 入力:?→, Getkey
 - 出力:" ", , Locate
 - カラーコマンド:Orange, Green (" "とSketchコマンドにのみ有効)
 - 無条件ジャンプ:Goto / Lbl
 - 条件ジャンプ: (fx-4000P、7000G と同じ仕様)
 - カウントジャンプ:Isz, Dsz
 - 条件分岐:If / Then / Else / IfEnd
 - For ループ:For / To / Step / Next
 - Do ループ:Do / LpWhile
 - While ループ:While / WhileEnd
 - 制御コマンド:Break, Return, Stop
 - 比較演算: =,, >, <,,
 - 論理演算: And, Or, Not
 - 配列:無し
 - リスト:List (配列としても使える)
 - 行列:Mat (配列としても使える)、
但し初期化コマンド Dim は適用できない
 - 各種関数
GRAPH20fx-7400G 以降で追加されたBasicコマンドを青色で示す
CFX-9850G で追加されたコマンドを赤色で示す

但し、以下の要因により可読性が損なわれている。
 - Then / Else 直後の改行:Syn ERROR になる
 - 行頭での改行 (空白行):Sys ERROR になる

 主なグラフィックス コマンド
 - グラフ設定:CoordOn/CoordOff, GridOn/GridOff,
        AxesOn/AxesOff, LabelOn/LabelOff
 - 座標系設定:ViewWindow,
        Xmax/Xmin/Xscl/Xfct, Ymax/Ymin/Yscl/
Yfct
 - 消去コマンド:ClrGraph, Cls
 - Sketchコマンド:Plot, PlotOn/PlotOff, PlotChg, PxlOn, PxlOff, PxlTest
          Line, F-Line, Vertical, Horizontal, Circle

但し、Plot, PlotOn, PlotOff, PlotChg, PxlOn, PxlOff, PxlChg, Circle の詳細仕様は、後継の fx-9860G 以降とは異なる。CFX-9850G ではこれらのコマンドのパラメータに X, Y を使うと誤動作する。X, Y は内部動作のために予約されていると思われ、コード上予期せぬ値が X, Y に自動的に入力されてしまう。つまり、X, Y をパラメータに使ってはいけない。

後継機種である fx-9860G 以降 fx-CG50 までのグラフ関数電卓では、上記のコマンドで X, Y を使える。各コマンド実行後に、それぞれのコマンドの詳細仕様に従った正しい値 (論理座標系での値) が自動的に入力されるので、それを正しく理解すれば X, Y をパラメータとして使っても問題ない (積極的に使えば有用なこともある)。


プログラムの作成と実行
キーコード取得プログラム GETKEY を入力してみた。コマンドを入力するためのキー (キープレス) は、fx-9860Gシリーズや最新の fx-CGシリーズと全く同じだ。言語機能の基本仕様はこの機種の頃から固まっていることが分かる

ファイル名:GETKEY
Locate 1,1,"=== GET KEYCODE ==="
Locate 1,3,"KEYCODE ="
Locate 10,5,"HIT ANY KEY"
Locate 13,7,"[AC]:QUIT"
While Getkey
WhileEnd
Do
Do:Getkey→K
LpWhile K=0
Locate 9,3,"=   "
(スペース6個)
Locate 11,3,K
LpWhile


Getkeycode_1 Getkeycode_DEL  
[DEL]キーを押したところ、キーコード44が表示されている。
fx-9860Gシリーズや fx-CGシリーズと同様に、テキスト表示の範囲は21桁7行だ。

[AC]キーを押してプログラムを終了させると、画面下8行目に Break と表示される。
ここで、[EXE] を押すとプログラムが再起動し、もう一度 [AC] を押すとProgram List に戻らず RUNモードに切り替わる。
この仕様は、fx-9860Gシリーズや fx-CGシリーズとは異なる。完成したプログラムを繰り返し使うには便利な仕様だ。一方、プログラムを試してから修正する場合は面倒だ。RUNモードに戻った後、[MENU] を押して PRGMモードに移行して編集するプログラムを探す必要がある。

Program List には、プログラム名 (ファイル名) は入力した順序で並んでおり、アルファベット順になっていない。プログラムの数が多いと、編集あるいは実行したいプログラムを探す最善の方法は、サーチ(検索)機能だ。Program List 画面で [F6] (▷) - [F1] (SRC) と押せば Search For Program 画面が現れるので、そこで探しているプログラム名の頭のアルファベットを押せば良い。すると同じ頭文字で始まるプログラム名が全て表示される。この機能は必須だ。


プログラムの編集
プログラム編集画面は使いにくい。
パソコンで文章を書く時は、通常は挿入モードで利用しているはずで、上書きモードは必要な時のみ切り替えて使うと思う。fx-9860Gシリーズや fx-CGシリーズでも、プログラム編集画面は常に挿入モードになっていて、必要な時に [SHIFT]-[DELL](INS) と押して上書きモードに切り替えて使う。

ところが、CFX-9850G は、通常が上書きモードになっていて、必要な時に [SHIFT]-[DELL](INS) を押して挿入モードに切り替える。一旦挿入モードに切り替えると、カーソルのある行内で挿入モードが維持されるが、カーソルが別の行に移ると上書きモードに戻ってしまう。


fx-9860Gシリーズからのプログラムの移植
以前 fx-9860Gシリーズで作ったプログラムを CFX-9850G に転送した。fx-9860Gシリーズは"次世代Casio Basic"を搭載しており、CFX-9850G への移植にはコードへの若干の手直しが必要だ。多くの場合はなんとかなるが、移植不可能、あるいは極めて困難なケースもある。

モグラ叩きゲーム
Whack-a-Mole_1 Whack-a-Mole_2  
fx-9860GII
で作ったアクションゲーム - "Whack-a-Mole(もぐら叩き)" は移植できた。トップ画面のタイトルをオレンジにしてみた。CFX-9850G の処理速度に対応するために、WHACKAMO の冒頭にある変数A の初期化を 2→A と変更しただけで、ロジックは変えていない。実際に遊んでみると、液晶の応答性が悪さは、さほど気にならない。
 Whack-a-Mole のダウンロード

キーコード取得プログラム
fx-9860GIIで作ったキーコード取得プログラムを移植した後、CFX-9850G 用になるよう表示を一部変更した。
 Keycode_1 Keycode_MENU 
左:起動直後の画面、右:キーコード取得プログラム、[MENU] キーを押したところ。

CFX-9850G は、fx-9860Gシリーズや fx-CGシリーズと全く同じキーを備えており、キーコードも同一になっている。
 Keycode のダウンロード

ところで、上記2つの移植したプログラムでは小文字アルファベットが表示されている。CFX-9850G 本体では、プログラム編集画面で小文字アルファベットを入力する方法が無いが、小文字を使ったプログラムを転送すると小文字が表示される。システムには既に小文字フォントが準備されていることが分かる。

プログラムリンクソフトウェアFA-124でCATファイルを開くとコードを編集できる。そこで出力文字列を小文字アルファベットに変更できる。変更後のCATファイルを保存し、CFX-9850G に転送すれば、プログラムで小文字アルファベットを表示可能になる。 



処理速度の比較

四則演算および関数計算

加算プログラム
加算 

プログラムを起動し、N に 1000 を入力して実行時間を計る。

CFX-9850G のプログラム
fx7000G_source_adding_up_Isz2 AddTest_For 
繰り返しに Goto / Lbl を使うケース(左)と For を使うケース(右)の2通りで処理速度を調べる。


数値積分プログラム
関数 

この通史積分は、とね日記 - 席初の手帳型プログラム関数電卓 CASIO FX-502P (1979), FX602P (1981) で取り上げられているものをそのまま使わせていただく。

プログラム起動し、分割数として 1000 を入力して、時効時間を計る。

CFX-9850G のプログラム
FuncTest_Goto_9850 FuncTest_For_985 
クリア絵師に Goto / Lbl を使うケース(左)と For を使うケース(右)の2通りで処理速度を調べる。

以前調べた結果と併せて、上記の計算速度のを比較結果を示す [2019/07/31 修正]
加算プログラム数値積分プログラム
機種実行時間比較実行時間 (秒)比較
FX-502P123.1 秒---1261.8 秒---
FX-602P111.2 秒1.1 倍716.5 秒1.8 倍
FX-603P37.8 秒3.3 倍166.2 秒7.6 倍
fx-4000P61.7 秒2.0 倍349.1秒3.6 倍
fx-4500P195.0 秒0.6 倍798.1 秒1.6 倍
fx-4800PA=A+126.3 秒4.7 倍114.3 秒11.0 倍
Isz A21.2. 秒5.8 倍109.4 秒11.5 秒 
fx-7000GA=A+120.7 秒5.9 倍146.1 秒8.6 倍
Isz A19.3 秒6.4 倍143.2 秒8.8 倍
CFX-9850GGoto20.9 秒5.9 倍98.3 秒12.8  倍
For9.2 秒13.4 倍84.3 秒15.0 倍
記念すべき FX-502P を基準に、速度が何倍になっているかも併せて示している。

Basicコマンドとして追加された For 文は効率化、高速化している。Basicコマンドは可読性向上だけでは無いことが分かる。併せて関数処理も高速化していることが分かる。


グラフィックス描画
▶ ドット描画プログラム

fx-7000G のグラフィック画面が 95 x 63 ドットなので、それに合わせて CFX-9850G でも 95 x 63 ドットを塗りつぶして処理速度を比較する。

fx-7000G のプログラム
fx7000G_Dot DOT_fx7000G  

CFX-9850G のプログラム
Dot_Plot Dot_Pxl Dot_9850 
Plot を使うケース(左)と PxlOn を使うケースの2通りで処理速度を調べる。

PlotPxlOn
fx-7000G213 秒
CFX-9850G926.5 秒0.23 倍496.0 秒0.43 倍

fx-7000G では Rangeコマンドで指定した論理座標系に従って Plot コマンドでドットを描画する。CFX-9860G では ViewWindowコマンドで指定した論理座標系に従って Plot コマンドでドットを描画する。

For 文は効率化・高速化されていることは上の例で分かっているが、ドット塗りつぶしプログラムでは CFX-9850G がかなり処理が遅い。グラフィック画面へのデータ転送に時間がかかっており、それがボトルネックになっていると考えられる。
fx-7000G の液晶は 95 x 63 = 5085 ドット、CGX-9850G は 127 x 63 = 6001 ドット、その差 2016 ドット。1ドット出力するたびに転送しているなら、CFX-9850G のグラフィック画面への転送は fx-7000G よりもデータが多いから転送が重い理由となり得る。 

CFX-9850G には、PxlOn コマンドが追加されている。このコマンドは左上が原点 (1, 1) の物理座標系でのドット描画コマンドであり、Plot よりは約2倍高速だ。PlxOn は論理座標系のように座標計算が不要なので高速になっていると考えられる。


画面更新プログラム
上で、画面へのデータ転送が処理速度のボトルネックになることが分かったので、頻繁に画面更新するプログラムを実行して、その処理速度を調べて比較することにする。

ところで Getkey コマンドの追加によりテンキーと[EXE]キーだけでなく、[AC]を除く全てのキー入力が検知可能になり、Locate コマンドの追加により任意の位置への出力が可能になったので、プログラムの自由度が大きく向上し、画面がスクロールしないプログラムを書けるようになった。画面がスクロールしないプログラムでは、画面更新速度は重要な評価ポイントになる。

出力画面は、テキスト画面とグラフィックス画面 (グラフ画面) の2つがあり、これらは同時に表示できない。そこでテキスト画面の高速更新プログラムとグラフィックス画面の高速更新プログラムを作成して評価に利用することにする。

第一弾として CFX-9850G で調べる。

グラフィックス画面更新プログラム - モンテカルロ法にょる円周率計算
MonteCar_9859 
プログラムのダウンロード - Montecar.cat を電卓に転送する
プログラムの詳細はこちら
ランダムに500回点を打って出力するまでの時間を調べると、165.6 秒であった。

テキスト画面更新プログラム - ピタゴラス数の計算
Pytha_9850 
プログラムのダウンロード - Pytha.cat を電卓に転送する
プログラムの詳細はこちら
ピタゴラス数500個を計算して結果を出力するまでの時間を調べると、294.3 秒であった。


プログラム電卓の系譜

1996年発売の CFX-9850GGetkeyLocate コマンドを初めて搭載した、これはCasio Basicの極めて大きな進化と言える。

世界初の手帳サイズのプログラム関数電卓として1978年に発売された FX-502P のプログラミング言語はキーストローク型で、表示レジスタやメモリに直接アクセスして演算を行うことで効率の高い処理が行え、プログラムのサイズも小さく抑えられる。一方でコードの可読性はアセンプラに似て決して良くない。シリーズ最終の FX-603P は1990年に発売され、CPUの高速化、メモリの増強、シリアル通信機能とPCリンク機能などハードウェアが充実しており、2006年の生産中止までの16年間製造が続いた。この間ポケットコンピュータが市場に登場し消えてゆき、プログラム関数電卓が生き残ったのは興味深い。

fx-3000Pシリーズやfx-4000Pシリーズでは、大きく異なる2系統の言語を搭載された機種が発売された。これらはいずれもコードの可読性が向上している。シンプルな計算マクロ言語を搭載した機種も発売された。シリーズ最終の fx-4850P は1997年に発売され、CPUの高速化、メモリ増強(26KB)などバードウェアが充実し 2006年まで生産が継続された。ハードウェアデザインやソフトウェアメニューが fx-5800P に引き継がれたが、一方で fx-4850P に搭載されていた言語は主流とはならず、1985年発売の fx-4000P の搭載言語の系統がその後のグラフ関数電卓の主流となり、fx-5800P にも搭載されたのが大変興味深い。

世界初のグラフ関数電卓 fx-7000G が1985年に発売された。fx-4000Pシリーズの初号機 fx-4000P も同年に発売されている。fx-7000G はグラフ機能以外は fx-4000P と同一の関数電卓としての機能とキーレイアウト、そして同一の搭載言語を有しているのは着目すべきだろう。fx-7000Gfx-4000P が同時開発された可能性が考えられるが、それが偶然なのか意図的なのかは大変興味がある。

いずれにせよ、グラフ関数電卓初代の fx-7000G の言語系統がそのままグラフ関数電卓で発展してきている。これはネットで確認できるマニュアルを調べると明らかだ。1995年フランスモデルとして発売されたグラフ関数電卓 GRAPH 20、そして1996年に世界で発売された fx-7400G で初めてBasicコマンドが追加された。追加されたのは 条件分岐 (If) とループ (For, Do, While) 関連のコマンドで、処理効率の向上が図られた。また明らかにコードの可読性も向上した。 Casio Basic の登場である。しかし残念なことに、入力がテンキーと[EXE]キーに限定されており、出力位置もプログラムで制御できないものであった。

1996年に発売された CFX-9850G では、[AC]キー以外の全てのキーの入力を検知できる Getkey コマンド、そして任意の位置に出力できる Locate コマンドが追加された。このたかだか2つのコマンドの追加により、プログラムの自由度が飛躍的に向上した。大きな進化と言える。現行の最新機種 fx-CG50 や1つ前の fx-9860GII で動作するプログラムの多くが、CFX-9850G で動作するのは、その進化の大きさを示している。

但し CFX-9850G は、行頭に改行があると Syn ERROR となり、空行が許されない。さらに If 文で使う ThenElse の直後が開業だと Syn ERRORになってしまう。この残念な仕様のためコードの可読性が損なわれている。
それだけではなく、行列の初期化コマンドが無いので変数を用いた行列の初期化ができない、現行最新機種に搭載されている便利な関数が不足しているなど、まだ発展途上と言える。

なお、ドット描画コマンド Plot と PxlOn / PxlOff の詳細仕様が現行の最新機種とは異なり、理解できない動作をする。これについては調査継続中だ。



温故知新 - 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 / CG20 / CG50
温故知新 - fx-CP400
温故知新:番外編 - 関数電卓としての使い勝手



応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 


keywords: プログラム関数電卓、プログラミング、Casio Basic、CFX-9850GC PLUS

リンク集 | ブログ内マップ













関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

温故知新 - 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ステップより少ない。

fx7000G_Key fx4000P_Key 
左がfx-7000G、右が fx-4000P のキーボード
 
fx-7000G の上から2行目のキーはグラフィックス関係 (写真左側)。この行を除けば、テンキーを含む他のキーの種類と配置が fx-4000P (写真右側) と全く同じ。さらに [SHIFT] や [Alpha] キーと共に使う機能の割り当ても全く同じだ。同時期に発売されたことから、開発が同時に進められた可能性が高く、興味深い。

翌年 1986年には fx-7200G が発売された。fx-7000G と同じ機能を持っているとの情報 (Kyoro's Room Blog - Casio グラフ関数電卓 fx-7200G) があるが、ネットではマニュアルやその他情報が殆ど得られない。あまり出回らなかった機種かも知れない。カシオの関数電卓 のサイトによれば、fx-7200Gfx-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

casio-fx7000g   fx-7000G 

fx-7000G のマニュアルはネットで見つからないが、機能上(消費電力以外)は、ほぼ同じと思われる fx-7000GA のマニュアルは以下からダウンロードできる。
fx-7000GA のマニュアル

関数電卓としては、内部演算精度が13桁で、よく使う関数キーが[SHIFT]キー無しで押せる(表に出ている)ので、例えば fx-5800P よりも使いやすい。

ドットマトリックス液晶ディスプレイは、テキスト表示が16桁8行である点は、使い勝手を大幅に改善してくれる。液晶自体は 96ドットx64ドットだが、グラフィック表示の範囲はの95ドットx63ドットになっていて、上端1ラインと左端1ラインはグラフ (グラフィック) の描画コマンド (Sketchコマンド)である PlotLine の描画領域に含まれない。このコンセプトは最新の 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 のプログラム
fx7000G_source_adding_up2 fx7000G_source_adding_up_Isz2 
変数 I のカウントアップに I+1→IIsz I の2通りで処理速度を調べることにする。


数値積分プログラム
関数 

この通史積分は、とね日記 - 席初の手帳型プログラム関数電卓 CASIO FX-502P (1979), FX602P (1981) で取り上げられているものをそのまま使わせていただく。

プログラム起動し、分割数として 1000 を入力して、時効時間を計る。

fx-7000G のプログラム
fx7000P_souce_func3 fx7000P_souce_func_Isz3 
変数 B のカウントアップに B+1→BIsz B の2通りで処理速度を調べることにする。

以前調べた結果と併せて、上記の計算速度のを比較結果を示す [2019/07/31 修正]
加算プログラム数値積分プログラム
機種実行時間比較実行時間 (秒)比較
FX-502P123.1 秒---1261.8 秒---
FX-602P111.2 秒1.1 倍716.5 秒1.8 倍
FX-603P37.8 秒3.3 倍166.2 秒7.6 倍
fx-4000P61.7 秒2.0 倍349.1秒3.6 倍
fx-4500P195.0 秒0.6 倍798.1 秒1.6 倍
fx-4800PA=A+126.3 秒4.7 倍114.3 秒11.0 倍
Isz A21.2. 秒5.8 倍109.4 秒11.5 秒 
fx-7000GA=A+120.7 秒5.9 倍146.1 秒8.6 倍
Isz A19.3 秒6.4 倍143.2 秒8.8 倍
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 (描画グラフの倍率を設定する)

これらは、全てキーに割り振られている。

数式をグラフ化する機能としては、必要最小限のコマンドしかない。これをグラフィック描画コマンドというのは、明らかに間違いだ。その後の機能増強の結果グラフィック描画ができるようになってきているので、ここでは敢えてグラフィックと言うことにする。


グラフィックプログラム例

グラフィック画面で全てのドットを塗りつぶしてみる。
fx7000G_Dot DOT 

描画には 213秒 (3分33秒) 要した。
fx-7000G 以降のグラフ関数電卓でも上記のコードがそのまま走る。ところで2001年以降に発売されたグラフ関数電卓の中では fx-9860G が最もグラフィックス描画が速いのだが、同じコードの実行に 260秒程度かかり、fx-7000G よりも遅い。fx-7000G のグラフィック描画が意外に速いことが分かる。コマンド類が少ないので処理が速いのであろう。



プログラム電卓の系譜 [2019/08/08 修正]

FX-502P で手帳型のプログラム電卓の市場が形成され、カシオが世界で認知されるブランドになった。fx-4000PFX-502P よりも小さく軽く、処理速度も速いことから、多くのエンジニアに支持されたようだ。

fx-4000P とほぼ同時発売された fx-7000G は世界初のグラフ関数電卓だが、グラフ描画コマンドは至ってシンプルだ。グラフ機能以外のコマンドは プログラム関数電卓 fx-4000P と同一で、配列が使え、構造制御を行うための必要なものは揃っている。足りないのはプログラム保存容量 (422ステップ)と言えよう。ところでプログラム編集画面は、デフォルトで上書きモードなので使いづらい。ちなみに FX-502P / FX-602P / FX-603P は挿入モードで使いやすかった。

カシオのプログラム電卓の系譜において、その黎明期のマイルストーンといえる機種を並べてみた。
N-FX502P_fx4000P_fx7000G 
左から、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-5800Pfx-4800Pfx-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 / CG20 / CG50
温故知新 - fx-CP400
温故知新:番外編 - 関数電卓としての使い勝手



応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 


keywords: プログラム関数電卓、プログラミング、Casio Basic、CFX-9850GC PLUS

リンク集 | ブログ内マップ

関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

温故知新 - fx-4000P / fx-4500P / fx-4800P

プログラム電卓 温故知新
 - 搭載プログラミング言語に注目して、プログラム電卓の変遷を考える -
<目次>


 
2019/07/14
追記修正 2019/12/03


過去から現在に至る性能や仕様の変化を調べ、プログラミング言語を中心にカシオ製プログラム電卓の系譜を明らかにする。

2. 新しいプログラミング言語の指向 - 可読性の向上

今回取り上げる fx-4000Pシリーズを順に並べると、結構ある。
- fx-4000P
- fx-4100Pfx-4200P
- fx-4500Pfx-4500PA
fx-4800Pfx-4850P 

1985年にシリーズ最初の fx-4000P が発売された。構造制御を行う各種ジャンプコマンドや配列変数が使え、最大550ステップのメモリ容量がある。搭載言語は FX-502P / FX-602P / FX-603P とは大きく異なり、可読性が大きく向上した。同じ年には 世界初グラフ関数電卓 fx-7000G も登場していて、ほぼ同じ仕様の言語と422ステップの容量がある。

fx-4100P と fx-4200P は実機を持っていないがダウンロードしたマニュアルを見る限り、数式記憶機能はあるが、構造制御コマンドが無いので対象外とする。
fx-4100P Manual
fx-4200P Manual

1989年に fx-4500P が発売された。プログラム保存のメモリ容量は 1103ステップとなり、fx-4000P の550ステップからほぼ倍増された。但し、搭載言語仕様は fx-4000P の延長線上にない点に注目したい。例えば、カウントジャンプ機能が無くなって不便になった一方、条件ジャンプ機能は、条件分岐後のマルチ文が使えるように改善された。
プログラム処理速度は 同時期に発売されていた FX-602P よりもかなり遅くなった。 
なお、fx-4500P をマイナーアップデートした fx-4500PA はバッテリー駆動時間が延長されている。マニュアルを見る限り言語仕様は fx-4500P と変わっていない。

1996年2月に後継の fx-4800P が登場。画面は4行表示と広くなり普通の関数電卓としても使いやすい。言語仕様は fx-4500P の延長線上にあり、カウントジャンプコマンドが追加された。プログラム保存容量の表記は、ステップ数からバイト数に変更され、最大4500バイトになった、プログラム処理も fx-4500P より格段に速くなった。

1997年に発売された fx-4850P は、このシリーズの最終モデルになる。但し中文のマニュアルしか見つからず、理解可能な範囲で見る限り、言語仕様は Cls コマンドが追加された以外は fx-4800P と違いが無さそうだ。但しプログラム保存容量は 28Kバイトと 6倍増強された。
2006年に fx-5800P が発売された時に fx-4850P は生産中止となった(発売は継続)。fx-4000P 発売開始からシリーズ全体は21年間続いたことになる。


今回は、fx-4000Pfx-4500P、fx-4800P 3機種の言語仕様をみてゆく。

1990年12月のカタログには、FX-620P (生産中止品として)、FX-603Pfx-4500P の3機種が掲載されている。
2006年9月のカタログでは、fx-5800P 新発売と同時に FX-603P が消えており、fx-4500PA, fx-4800P (生産中止), fx-4850P (生産中止) が掲載されている。
1990年12月発行のカシオ電卓総合カタログ - FX-602PFX-603Pfx-4500P
2006年9月発行のカシオ電卓総合カタログ - fx-4500PA、fx-4800Pfx-4850Pfx-5800P



Casio fx-4000P [2019/07/30 追記]

温故知新の企画で色々と調べる過程で fx-4000P がエポックメイキングな製品だとわかり、ほぼ新品状態の程度の良い中古品が入手できた(eBay)。
fx-4000PN-New_fx-4000P 

1985年に発売された fx-4000P は、1桁ごとにドットマトリックスになった液晶が採用された。当時の関数電卓としては処理速度が速く、FX-502PFX-602P よりも小型の優れた機種だ。但しプログラムは 句切り文字を使って、全て1行に入力する。

搭載言語の主なコマンドは以下の通り。 
fx-4000P Manual

・キー入力: ?→A
・代入:
・無条件ジャンプ:Goto/Lbl
・条件ジャンプ:
・カウントジャンプ: Isz, Dsz
・比較演算:=, ≠, <, >, ≦, ≧
・サブルーチンコール: Prog
・配列変数 A[ ] が使える。

なお、条件ジャンプ () は、[条件式]⇒[文1]:[文2] という書式で、1行に書かないとエラーになる。

この条件分岐は、
If [条件式]
Then
 [文1]
Else
 [文2]
IfEnd

と同じだ。但し、文1 と 文2 は1つの文しか使えず、句切り文字 : を使ってマルチ文を書くことは許されない仕様だ。

これらの仕様は、同時期の 1985年に発売された世界最初のグラフ関数電卓 fx-7000G のグラフィックスを除けば、全く同じである。fx-4000P の言語仕様は 4000P シリーズの他のモデルには引き継がれず、時を経て fx-5800P や現在のグラフ関数電卓に引き継がれている点は興味深い。



Casio fx-4500P

fx-4500P fx-4500P&manual   

fx-4500P が1989年に発売された時 (発売年情報はこちら) は FX-602P も併売されており、FX-602P のプログラム容量 512ステップから、fx-4500P は1103ステップに増え、プログラムエリア(保存できるプログラム数) はメモリ容量内なら無制限になった(FX-602P は20)。

fx-4500P のディスプレイは、上段ドットマトリックス、下段7セグメントの2行表示に進化した。ほぼ同時期、1年後発売の FX-603P も2行表示に進化した。メモリ保護用に CR-1216を1個、本体駆動用に CR-2025を1個使う。仕様上の連続稼働時間は 3000時間で、実際に使うと1年は持たない。マイナーアップデート版の fx-4500PA は CR-2032 を2個使うように変更され、仕様上 5000時間駆動となった。


fx-4500P 搭載のプログラミング言語の特徴
fx-4500P 搭載の言語は、fx-4000P からキー入力コマンドや代入コマンドが変更され、条件ジャンプの仕様も変更されており、fx-4000P のアップデート版というよりも、別系統を目指したと思われる。

・キー入力:{A} (キー入力した数値を変数Aに代入)
・代入:=
・無条件ジャンプ: Goto/Lbl
・条件ジャンプ: ⇒ / ≠⇒
・カウントジャンプ: 無くなった
・比較演算: =, ≠, <, >, ≦, ≧
・サブルーチンコール: Prog
・配列変数 A[ ] が使える。

条件ジャンプの仕様も fx-4000P から変更され、
書式は、

[条件]⇒[文1]:[文2]: ・・・ :[文m]≠⇒[文m+1]:[文m+2]:  ・・・ :[文n]Δ

となり、新たに追加された ≠⇒Δ コードを使って、マルチ文を書けるようになった。

If [条件] 
Then
 [文1]:[文2]:  ・・・  ・:[文m]
Else
 [文m+1]:[文m+2]: ・・・ :[文n]
IfEnd

と同じで、条件ジャンプは fx-4000P よりも実用性が向上した。

fx-4500P のプログラム編集は、上書きモードがデフォルトになっており、PCや最近のプログラム電卓の挿入モードに慣れていると、かなり使いにくい。


実際のプログラム例
さて実際に「加算プログラム」と「数値積分プログラム」を作り、FX-502P, FX-602P そして FX603P と実行速度を比較してみた。

加算プログラム
加算 

FX-502P のプログラム
FX502P_source_adding_up 

FX-602P / FX-603P のプログラム
FX602P_source_adding_up
 
プログラムを実行すると N の入力が求められるので、1000 を入力する。

これと同じ動作を fx-4000P で書くと、句切り文字を使って以下のような1行になる。
fx4000P_source_adding_up2 

同じ動作を fx-4500P で書くと以下になる。
fx4500P_source_adding_up 
何をやっているのか分かりやすい。


数値積分プログラム
関数 

FX-502P のプログラム
FX502P_source_func 

FX-602P / FX-603P のプログラム
FX602P_souce_function 
プログラムを実行するとシンプソン法で必要な分割数の入力を求めるので、1000を入力する。
なお、この数値積分はとね日記 - 世界初の手帳型プログラム関数電卓 CASIO FX-502P (1979), FX-602P (1981) で取り上げられているものをそのまま使わせていただく。

これと同じ動作を fx-4000P で書くと以下のように句切り文字を使って1行になる。
fx4000P_souce_func2 

同じ動作を fx-4500P で書くと以下になる。
fx4800P_souce_func 
何をやっているのか、可読性が向上した。

計算速度のを比較結果を示す;
加算プログラム数値積分プログラム
機種実行時間比較実行時間 (秒)比較
FX-502P123.1 秒---1261.8 秒---
FX-602P111.2 秒1.1 倍716.5 秒1.8 倍
FX-603P37.8 秒3.3 倍166.2 秒7.6 倍
fx-4000P61.7 秒2.0 倍349.1秒3.6 倍
fx-4500P195.0 秒0.6 倍798.1 秒1.6 倍

fx-4000P でのベンチマーク結果も加えている。シリーズ最初の機種 fx-4000P が後継の fx-4500P よりもかなり速い。Kyoro's Room Blog の fx-4000P を取り上げた記事 によれば、CPUには ポケコン (後期のPBシリーズ) で使われている HD61747 が使われているそうだ。なるほど速いわけだ。

fx-4500P は、FX502P / FX-602P / FX-603P に対してプログラムの可読性が向上したが、処理速度はかなり遅い。新たな言語の処理に必要なパワーと、搭載CPUの能力のバランスの結果だと言える。



Casio fx-4800P

fx-4800P-S fx-4800P_w_Manual
(fx-4800P の左の画像は色合いが忠実に再現されているので、関数電卓マニアの部屋 - 絶版コレクション fx-4800P から拝借した)

関数や各種設定、そしてプログラムコマンドの呼び出しは、fx-4500P では全てキー入力だったが、fx-4800P では多くをソフトウェアメニューで呼び出すように変更された。1つのキーに複数の役割を与えると、キーの周りに小さな文字でゴチャゴチャと印刷する必要があるが、ソフトウェアメニューのおかげでスッキリと見やすくなった。

4500P_keys 4800P_keys 
      fx-4500P のキー           fx-4800P のキー

さて、fx-4800Pfx-5800P は、キー配列やハードウェアデザインがかなり似ている。

4800P_5800P 
      fx-4800P          fx-5800P

また、ソフトウェアメニューも両者は似ており、操作系もかなり共通している。一方、プログラミング言語に着目すると fx-4800P は fx-5800P とは大きく異なる。

fx-4800P 搭載のプログラミング言語の特徴
fx-4800P 搭載の言語は、fx-4500P と殆ど同じだが、一旦 fx-4500P で消えたカウントジャンプが 復活した。fx-4000P とは明らかに別系統の言語になっている

・キー入力:{A} (キー入力した数値を変数Aに代入)
・代入:=
・無条件ジャンプ: Goto/Lbl
・条件ジャンプ: ⇒ / ≠⇒
・カウントジャンプ: Isz, Dsz 復活した
・比較演算: =, ≠, <, >, ≦, ≧
・サブルーチンコール: Prog
・配列変数 A[ ] が使える。

条件ジャンプの仕様は fx-4500P と全く同じだ。

プログラム編集は、fx-4500P と同様に上書きモードがデフォルトになっており、PCや最近のプログラム電卓の挿入モードに慣れていると、かなり使いにくい。

[2019/07/15 追記] fx-4800P の裏技
sentaro様の情報で、fx-4800Pでは使用する変数によって処理速度が異なるとのこと。
以下原文;
"同時期に販売されていたと思われるグラフ電卓のfx-9700GEも同じ仕様です。
 A~Zまでの1文字変数は固定領域で確保されているのが通常なので速度は変わらないはずですが、これらの機種では変数Aが一番早くZが一番遅いというへんてこな仕様です。
通常のBASIC言語では変数は使われた順(=登録された順)に速いという原則がありますが、それとはまた違ったくせのある仕様です。ということで、使用する変数はAから順に使うのが速く動作させるための秘訣です。(^^;"



実際のプログラム例
上で比較した「加算プログラム」と「数値積分プログラム」を fx-4800Pfx-5800P も加えて、実行速度比較を比較する。

加算プログラム
加算 

プログラムを起動し、N に 1000 を入力して実行時間を計る。

FX-502P のプログラム
FX502P_source_adding_up 

FX-602P / FX-603P のプログラム;
FX602P_source_adding_up 

fx-4000P のプログラム
fx4000P_source_adding_up2 

fx-4500P のプログラム
fx4500P_source_adding_up 

fx-4800P のプログラム
fx4800P_source_adding_up fx4800P_source_adding_up_Isz 
fx-4800P に追加されたカウントジャンプ Isz を使ったプログラムもテストする。


数値積分プログラム
関数 

この通史積分は、とね日記 - 席初の手帳型プログラム関数電卓 CASIO FX-502P (1979), FX602P (1981) で取り上げられているものをそのまま使わせていただく。

プログラム起動し、分割数として 1000 を入力して、時効時間を計る。

FX-502P のプログラム
FX502P_source_func 

FX-602P / FX-603P のプログラム
FX602P_souce_function
 

fx-4000P のプログラム
fx4000P_souce_func2 

fx-4500P のプログラム
fx4800P_souce_func 

fx-4800P のプログラム
fx4800P_souce_func fx4800P_souce_func_Isz 
fx-4800P で追加されたカウントジャンプ Isz を使ったプログラムもテストする。


以上の計算速度のを比較結果を示す;
加算プログラム数値積分プログラム
機種実行時間比較実行時間 (秒)比較
FX-502P123.1 秒---1261.8 秒---
FX-602P111.2 秒1.1 倍716.5 秒1.8 倍
FX-603P37.8 秒3.3 倍166.2 秒7.6 倍
fx-4000P61.7 秒2.0 倍349.1秒3.6 倍
fx-4500P195.0 秒0.6 倍798.1 秒1.6 倍
fx-4800PB=B+126.3 秒4.7 倍114.3 秒11.0 倍
Isz B21.2 秒5.8 倍109.4 秒11.5 倍

記念すべき FX-502P を基準に、速度が何倍になっているかも併せて示している。

シリーズ最初の機種 fx-4000P が後継の fx-4500P よりもかなり速いのは上で述べている。

fx-4500P は、四則演算は FX-502P よりも遅い。しかし、関数演算は 1.6 倍だけ高速化している。

fx-4800P はカウントジャンプが追加されており、Isz コマンドの処理が速いことが分かる。fx-4500P の言語仕様を引き付いているが、四則演算が高速化されており、FX-603P よりもさらに速い。関数演算は大幅に高速化されている。



プログラム電卓の系譜 - fx-4000シリーズ [2019/08/09 追記修正]

このシリーズでは、可読性の向上を目指して、搭載言語を試行錯誤した跡が見てとれる。単に複数の計算式を繰り返し実行する数式記憶機能だけを搭載した fx-4100Pfx-4200P も含まれるが、これらは冒頭で述べたように特に取り上げていない。

fx-4000P
シリーズの中では、他のモデルと異なる言語仕様を採用している。例えば、キー入力には { } でなく ?→ を使い、代入には = ではなく を使う。ほぼ同じ時期に発売された世界初のグラフ関数電卓 fx-7000G は、グラフ機能以外は同一の仕様になっている。fx-5800Pfx-CG50 は、fx-4000P の直系と言える。

fx-4500P
言語仕様からみて、fx-4000P とは異なる新たな系統の言語が搭載されている。fx-4000P にあったカウントジャンプが無くなったのは不便だ。改善例を挙げるなら、fx-4000P では条件分岐においてマルチ文が使えなかったが、fx-4500P では ≠⇒Δ コードを追加することでマルチ文を使えるようになっている。メモリがほぼ倍増したのは良いが、プログラム処理速度が大幅に低下した。新しい言語仕様導入の過渡期のため処理速度まで手が回らなかったと思われる。

fx-4800P / fx-4850P
fx-4500P で無くなった条件ジャンプ (Isz, Dsz) が追加 (復帰) され、さらに処理速度が大幅に向上した。fx-4500P の系統でのプログラミング言語搭載機は、メモリ増強と実行速度の向上により、ようやく実用的に使えるレベルまでプログラム実行速度が速くなった。また、fx-4500P までは関数やコマンドは全て多機能キーで入力する仕様だったのに対して、fx-4800P / fx-4850P ではソフトウェアメニューが導入された。

このソフトウェアメニューやハードウェアのデザインは fx-5800P に色濃く引き継がれた。一方で別系統の fx-4000P のプログラミング言語の仕様が fx-5800P に引き継がれた。それぞれ良い点が引き継がれたと言える。

fx-4000Pシリーズは、数式記憶機能のみのモデルが含まれたり、異なる系統の言語仕様が混在したり、ポケコン用CPUと関数電卓用CPUが混在したりと、シリーズとしての統一性が無く、試行錯誤の跡が見られ、将来のプログラム電卓の進化に貢献したシリーズと言える。



温故知新 - 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 / CG20 / CG50


温故知新 - fx-CP400
温故知新:番外編 - 関数電卓としての使い勝手



応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 


keywords: プログラム関数電卓、プログラミング、Casio Basic、CFX-9850GC PLUS

リンク集 | ブログ内マップ

関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

温故知新 - FX-502P / FX-602P / FX-603P

プログラム電卓 温故知新
 - 搭載プログラミング言語に注目して、プログラム電卓の変遷を考える -
<目次>


 
2019/06/30
追記修正 2019/12/03

過去から現在に至る性能や仕様の変化を調べ、プログラミング言語を中心にカシオ製プログラム電卓の系譜を明らかにする。

1. キーストローク式言語 - 携帯型プログラム電卓の普及

最初に取り上げるのは、1978年発売の世界初の手帳サイズのプログラム関数電卓 FX-502P。これは、手帳サイズの薄型、軽量でボタン電池駆動の省電力設計といった、プログラミング環境をだれでも手軽に持ち歩ける画期的な製品だった。

そして僅か3年後の 1981年にはメモリ容量が256ステップから512ステップに倍増した  FX-602P が発売された。カシオ初(国内初か?)のアルファベット出力機能が付き、関数演算がほぼ倍速化された。使い勝手(特にプログラミング)が改善され、FX-502P と同じサイズで大幅に機能向上したせいか、海外でも広く普及し国際的なカシオファンを生み出した記念すべき製品だ。

さらに 1990年に FX-603P が発売された。ポケコンに使われていた CPU (日立 HD62002) を搭載し、PCリンクが可能になり、大幅に高速化された。この製品は 2006年に fx-5800P が発売されるまでの16年の間、継続販売された。

1981年2月発行のカシオ電卓総合カタログ - FX-502P
1981年6月発行のカシオ電卓総合カタログ - FX-602P
1990年12月発行のカシオ電卓総合カタログ - FX-603P


Casio FX-502P

FX-502P_3  FX-502P&Manual_2  

厚い本「プログラムライブラリ」も付属していたが、紛失してしまったので写真には写っていない。定数早見表なるカードも付属していた。

私が購入したのが 1979年で、今年で40年になるが、問題無く動作するのには驚かされる。駆動部分が無いとは言え、スイッチや電池ホルダ内のバネ状の電極も劣化していない。2~3年ごとに動作確認と電池交換をしていたのが良かったのだと思う。さらに付属品の手帳型カバーは経年劣化で多少硬化しているが、割れもなく、殆ど変色もしていない。付属品であっても、きちんとした製造品質だったと今になって分かる。

取扱説明書の中にある [GOTO]キーの説明部分を見ると、思わず時代を感じさせてくれる。
FX502P_Desc 
今時、"ゴーツー"  という人は見かけない(^_^;

FX-502P 搭載のプログラミング言語の特徴
さて、このモデルでは、マニュアル計算を行う時に押すキーの順序通りに記録することでプログラミングする、いわゆるキーストローク式の言語で、言い換えれば表示レジスタの内容に対して演算を施すようにコーディングする方式だ。このモデルは古い関数電卓共通の関数後置式が採用されていて、[3] [0] [cos] と入力すると cos 30 を計算するので、これをそのまま記録してプログラミングする。加えて GOTO / LBL による無条件ジャンプ機能、表示レジスタや特定レジスタの値を利用した条件ジャンプ機能、特定レジスタを利用したカウントジャンプ機能、さらには間接ジャンプ機能など用いて、プログラムの構造制御を行う。

このモデルの言語の優れている点の1つとして、間接ジャンプ機能を挙げたい。特定メモリにジャンプ先の番号 (LBL N の N)が格納されていると、LBL N にジャンプする機能だ。現在のプログラミング言語で普通に使われている switchSelect ステートメントと同じ動作を間接ジャンプで実現できる。

もう一つ特徴的なのは、ISZDSZ コマンドによるカウントジャンプ機能だ。このモデルの場合は、0番メモリに格納されている数値を、1づつ増やす (ISZ) か減らして (DSZ) ゆき、0になったら、次のコマンドを飛ばして2つ先のコマンドを実行する機能だ。興味深いのは、カシオの最新のプログラム電卓 fx-5800Pfx-CG50 でもこのカウントジャンプコマンドが搭載されていることだ。現在の仕様では、特定メモリではなくて任意の変数を指定できるが、基本は同じだ。IszDsz はカシオ独自のコマンドであり Basic コマンドとしては異質であるが、非力なCPUで効率良く処理をするには不可欠だ。ジャンプ機能としてでなく、単にインクリメント、ディクリメントするだけでも効率よく高速に行えるのも有用な点といえる。

実際のプログラム例
整数1からNまで順に加える「加算プログラム」を例にあげる。
加算 

FX-502P のプログラムは以下のようになる (19ステップ)。
FX502P_source_adding_up 

入力には HLT コマンドで入力待ち、入力後、表示レジスタの値をメモリ1番に取り込む (HLT Min1)。

x≧0 は条件ジャンプコマンドで、表示レジスタの値が ≧0 (0以上) なら、次のコマンドを実行、そうれなければ2つ先のコマンドを実行する。

FX-502P の液晶は7セグメント表示であるため、コマンドをそのまま表示できない。そこで7セグで表示可能なキャラクタを使ったコードでの表示になる。コード判読のために、各キーのコードが記入されたシートをキーボードの上に被せて使う。慣れればコードも覚えてしまうが、コード表示が FX-502P でのコーディングの欠点といえる。



Casio FX-602P

FX-602P FX-602P&Manual_s

FX-602P はドットマトリックス液晶を搭載し、アルファベット表示が可能になった。これにより、コマンドがコード表示しかできなかった FX-502P の欠点が解消された。使えるメモリが増えたため、メモリ指定は2桁になった。

ところで、[GOTO]キーの説明は、依然笑える(^_^;
FX602_Desc 

さて、FX-602P は、FX-502P のプログラムが使える互換性が確保されている。

実際のプログラム例と処理速度の比較
シンプソン法で数値積分を実行する「数値積分プログラム」を例に挙げる。
関数 

この数値積分は、とね日記 - 世界初の手帳型プログラム関数電卓 CASIO fx-502P (1979)、fx-602P (1981) で取り上げられているので、そのまま利用させていただく。

FX-602P のプログラムは以下のようになる (39ステップ)。とね日記で紹介されているものから余計なステップを省略した。
FX602P_souce_function 


さて、「加算プログラム」と「数値積分プログラム」の実行速度を比較してみた。

加算プログラム
加算 
FX602P_source_adding_up 
プログラムを実行すると N の入力が求められるので、1000 を入力する。

数値積分プログラム
関数 
FX602P_souce_function 
プログラムを実行するとシンプソン法で必要な分割数の入力を求めるので、1000を入力する。

実行結果を示す;
加算プログラム数値積分プログラム
機種実行時間比較実行時間 (秒)比較
FX-502P123.1 秒---1261.8 秒---
FX-602P111.2 秒1.1 倍716.5 秒1.8 倍

両機種で共通しているのは、四則演算(加算プログラム)よりも関数(数値積分プログラム)の方が処理に時間がかかること。

2機種を比較してみると、2機種の間で四則演算の処理能力には大きな違いは無い。この結果から1000回の無条件ジャンプの処理速度は FX-602P が若干速いが、ほぼ同じと言える。一方、三角関数の処理能力には 1.8 倍の明らかな差が見られたので、FX-602P では関数処理の能力を向上させたことが分かる。



Casio FX-603P

FX-603P_1 FX-603O&Manual_s 

FX-603P は、ドットマトリックスの2行表示になり、プログラム保存のメモリ容量は 6144ステップと FX-602P の12倍に増え、RS-232Cでのシリアルポートが追加内蔵され、PCリンクも可能になった。処理速度も大幅に向上した。ハードウェアの進化に伴い消費電力が増え、連続使用時間は FX-602P の600時間から160時間へと大幅に低下した。またサイズが少し大きくなり、重量は FX-602P の100gから136gへと大幅に増えた。実際に手に取るとズッシリと重く感じる。
502P_602P_603P 

ところで、[GOTO]キーの説明だが、
FX603P_Desc 
1990年で改善、とはいってもカタカナ表記が依然気になる!
今時の説明書なら、"GOTO / SAVE / POKE キー" といった感じが普通では?

さて、FX-603P は、FX-502P / FX-602P の上位互換機であり、プログラムは共通して使える。

今回は FX-602P のソースをそのまま使用して上記の2つのプログラムを実行し、比較してみた。
加算プログラム数値積分プログラム
機種実行時間比較実行時間 (秒)比較
FX-502P123.1 秒---1261.8 秒---
FX-602P111.2 秒1.1 倍716.5 秒1.8 倍
FX-603P37.8 秒3.3 倍166.2 秒7.6 倍

FX-603P では、四則演算だけでなく、関数処理能力がさらに向上した。



プログラム電卓の系譜 - FX-502シリーズ [2019/08/09 追記修正]

FX-502P
 に搭載されたプログラミング言語は、レジスタやメモリの値を直接処理するので、アセンプラのように効率が良い。しかしプログラムコードの可読性は悪く、デバッグは楽ではない。その後メモリが増強され、CPUが高速化され、通信機能が搭載され FX-603P でこの系統の完成形となる。

このようなキーストローク式のプログラミング言語ではあるが、1978年の FX-502P の登場から、2006年に FX-603P が生産中止されるまでの28年間もの長期間、広く世界市場で支持された。

FX-502P シリーズは、ポケットに収まる手帳型でありながら、関数電卓としての性能と効率の良いプログラミング性能を提供したことで、プログラム電卓が市場で広く認知される役割を果たしたと言える。

この系統と並行して、カシオ電卓のプログラミング言語は可読性の向上を指向することになる。そして、fx-3000P シリーズを経て、プログラミング言語の系譜におけるマイルストーンというべき fx-4000P が登場する。



温故知新 - 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 / CG20 / CG50
温故知新 - fx-CP400
温故知新:番外編 - 関数電卓としての使い勝手




応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 


keywords: プログラム関数電卓、プログラミング、Casio Basic、CFX-9850GC PLUS

リンク集 | ブログ内マップ













関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

最新記事
検索フォーム
最新コメント
カテゴリ
C# (3)
Visitors
Online Counter
現在の閲覧者数:
プロフィール

やす (Krtyski)

Author:やす (Krtyski)
since Oct 30, 2013


プログラム電卓は、プログラムを作って、使ってナンボ!

実際に触って気づいたこと、自作プログラム、電卓プログラミングについて書いています。

なお管理人はカシオ計算機の関係者ではなく、Casio Basicが面白いと感じる1ユーザーです。


写真: 「4駆で泥んこ遊び@オックスフォード郊外」

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

ブロとも申請フォーム

この人とブロともになる

QRコード
QR