fx-9860G Slim の勧め


2019/08/23
追記修正 2019/11/06


fx-9860G Slim の勧め - 今頃なぜ fx-9860G Slim なのか?

普段から fx-5800P を持ち歩き、関数電卓として四則演算や技術計算に利用する以上に複数の自作プログラムを仕事で頻繁に使っています。最近 fx-9860G Slim を中古で入手したのですが、とても使い勝手が良く、あらゆる点で fx-5800P の代替えになると感じています。使えば使うほど気に入り、今では普段使いになっています。そんな fx-9860G Slim の入手方法、お勧めの理由、性能比較の結果を紹介します。



fx-5800P も良いけれど...

fx5800P_calcfx-5800P は 2006年に発売され、この記事を書いている 2019年にまだ生産中止にならず販売継続されています。

プログラム電卓として、
 ・プログラムをPCにバックアップする手段をメーカーが提供していない
 ・カバーのヒンジが壊れやすい設計
という欠点があることは、当ブログで再三指摘しています。

一方で、これらの欠点については以下のように解決する方法があります;
 ・ついに fx-5800P がPCリンク可能になった
 ・fx-5800P の破損ヒンジの交換、ついでにリニューアル

読者の方からの情報で 修理対応は 2025年迄とカシオが言っているとのこと。

ということは、fx-5800P の後継機種の計画が進んでいるのか、或いはこのカテゴリーの製品 (新世代Casio Basic 搭載のプログラム関数電卓) がラインアップから外される可能性も心配になっています。とは言っても、まだ6年先のことではあります。

fx-5800P はとても使いやすいので気に入っていますが、プログラム関数電卓というカテゴリーで唯一 "新世代Casio Basic"を搭載しているものです。そのような名機がもし無くなると、"新世代Casio Basic" 搭載機種は大きくて重いグラフ関数電卓だけになってしまい、結構困ります。そんな状況で fx-9860G Slim に出会い、実際に使ったところ、とても気に入りました。



fx-9860G Slim の入手

入手方法

fx9860Gslim_2.png fx9860Gslim_1.pngfx-9860G Slim は、2007年に欧米で発売され、おそらく2011年頃までは販売されていたグラフ関数電卓です。

Slim は2006年に発売された fx-9860G の派生モデルで、機能は fx-9860G とほぼ同じです。fx-9860G は日本でも発売されましたが、Slim モデルは国内では発売されませんでした。

日本国内では販売されなかった機種なので、国内のオークションサイトには滅多に出品されません。出品されたとしてもスグに売れてしまいます。一方で、欧米のオークションサイトでは常に数点の出品がみられます。

入手先としては、私の経験上 eBayやセカイモンが安心だと想います。
eBayで購入する場合は、もしトラブルがあればチョットしたことでも英語で対応することになります (何度も経験しています)。英語を使うのが面倒な場合は日本語でやりとりできるセカイモン (eBayと提携) がお勧めです。

Amazon USA でも中古品を扱っていますが、注文内容と違ったものが届いたり、出品者の不注意から商品が毀損されていたり、そして何かあってもAmazonのサポートが役に立たない経験をしています。少ない私の経験上、Amazon USAからの中古品の購入は極めて慎重になります。一方、新品を購入する場合は Amazon USAは問題なく安心できます。Amazonは元々オークションサイトでないので仕方ないのでしょう。

今入手できる fx-9860G Slim は、殆どが中古品ですが、数ヶ月~数年使っただけで保管して外観の程度の良さそうなもの (アメリカでは学生が授業に必要で買って、授業が終われば使わないケースがある) や、未使用品(動作確認のため開封したものや未開封品)も出品されることがあるので要チェックです。私は eBay とセカイモンから中古品や未開封の(古い)新品を購入しました。

国内正規品のグラフ関数電卓を新品で購入するよりは、海外からの送料を含んでも、概ね安く入手できると想います (Casio プログラム電卓の価格動向 参照)。

但し時間はかかります。海外の個人の売り手からeBayやセカイモンを経由する買い物では、売り手の段取りが遅く、気配りが少ないなど、最初から長い時間がかかると思っていると精神的に楽です。中には素早い対応をされる海外の方もいらっしゃるのは事実ですが...

操作マニュアルのダウンロード
fx-9860G Slim ハードウェアマニュアル (英文)
fx-9860G Slim OS1.10 ソフトウェアマニュアル (英文)
fx-9860G Slim OS1.11 ソフトウェアマニュアル (英文)
fx-9860G Slim OS2.00 ソフトウェアマニュアル (和文)
fx-9860G 操作マニュアル (和文) - 同梱CD-ROM内に収納
  • 電卓のOSは、OS1.11、OS2.00、OS2.01、OS2.04 にアップデートできますが、OS2.01 と OS2.04 は無視できないバグがあり、カシオは公開直後に取り下げていますます。お勧めできるのは OS2.00 までの3つのバージョンです。
  • fx-9860G Slim は日本国内で販売されていませんが、和文の OS2.00 ソフトウェアマニュアル (上記) が役立ちます。
  • キー配置と [HELP] キー, [LIGHT] キー以外は fx-9860G と同じ機能なので、fx-9860G Slim OS1.10 に同梱のCD-ROMに収納されていた "fx-9860G (日本語) の操作マニュアル (和文)"も役立ちます。 

本体と付属品 [2019/09/03 追記]
fx-9860GSlim_all_included 本来の付属品
 ・USBケーブル (Type A - Mini)
 ・3Pin ケーブル (SB-62)
 ・アルカリ電池 単四2本
 ・CD & CD使用マニュアル
 ・クイックマニュアル
 ・保証書 / 廃棄方法の説明書
 
 CD-ROMの内容
 ・下記機種共通のCD-ROM
   fx-9860G Slim, fx-9860G (SD),
   fx-9860G (日本語)、fx-9860G AU
   GRAPH 85 (SD) 
 ・ヨーロッパ各国語マニュアル

中古の電卓本体のみを入手することが多いと思いますが、その場合は必要な付属品は下記のソフトウェアとケーブル類のみです。

プログラムリンク ソフトウェア - FA-124
CDに同梱されているプログラム リンクソフトウェア FA-124 は Win98以降WinXP までのOS対応のため、それより新しい Windows 利用の場合は、以下のカシオのサイトから無償ダウンロードできる。
グラフ関数電卓:プログラムリンク ソフトウェア Ver 2.04 / e-Gadget ライブラリから
FA-124 取扱説明書 / e-Gadget ライブラリから

USBケーブル (Type A - Mini)
既に Casio グラフ関数電卓のいずれかを新品購入していれば、それに付属しているものが使えます。或いはアマゾンなどで安く購入できます。

3Pinケーブル (SB-62)
カシオから取り寄せるか、takumako様が互換ケーブルを有償頒布されているので入手可能です。


fx-9860G Slim 用キャリングケース
毎日持ち歩くほど気に入ったので、キャリングケースを探してみました。ハードウェアマニュアルによれば、
Dimensions: 89 (D) x 122 (W) x 20.7 (H) mm
とあります。これを参考にして、外付けHDD用ケースでサイズが合うものが見つかりました。
Case2 Case3
Case1-2緩衝材で保護する本来HDDを入れるところには fx-9860G Slim は収まらず、ちょっと窮屈です。そこで逆方向に、付属品を入れるところに電卓を収めるとピッタリです。ケースの中で電卓が踊ることもなく、しっかりと固定されます。ケースを閉じた際、ジッパーが電卓に接触して擦れることもないも良い点です。セミハードケースなので、カバンに放り込んでも安心です。

但し、ピッタリすぎて電卓の付属品であるケーブル類が収まる余裕がありません。ほんのもう少し余裕があると良いのですが、とりあえずこれでしばらく使っています。

もっと良いものが見つかれば、試してみようと思います。



fx-9860G Slim がお勧めの理由

fx-9860G Slim は、fx-9860G (これは国内でも発売されていました) とほぼ同じ仕様で、電子辞書のような2つ折れタイプです。高機能でありながらコンパクトで、fx-5800P 程度のコストで入手できるのがお勧めの理由です。

以下で少し細かくみてゆきます。

液晶のバックライト機能
fx-9860G との違いの1つが、バックライト機能 (プログラム電卓では世界初) です。少し暗い環境でも鮮明に液晶が見えます。

コマンドのヘルプ機能
[HELP] キーを押せばコマンドの説明が表示されます。関数やコマンドの書式が分かるのは、Slim の HELP 機能の特徴です。fx-9860G、fx-9860GII、fx-CG20、fx-CG50 には [SHIFT][4] 出」呼び出す CATALOG 機能がありますが簡潔過ぎてあまり役立ちません。なお、関数やコマンドをより詳しく知りたい場合は、マニュアルを読むか、本ブログのコマンドリファレンスを参照するのが良いと思います。HELP機能は、OS1.10、OS1.11 そして OS2.00 までの3バージョンで有効です。バグのために誤動作する OS2.01 や OS2.04 では [HELP] キーの機能が使えなくなります。

大きな液晶
液晶画面は fx-5800P よりもかなり大きく、同じシリーズの fx-9860G よりも大きく、画面が見やすいのが特徴です。fx-5800P の画面は 16桁 x 4行ですが、fx-9860G Slimfx-9860G と同様に 21桁 x 7行と表示できる文字数も多くなっています。

圧倒的にコンパクト
 Comparison_fx9860Gslim_fx5800Pfx-5800P と大きさを比べてみると、コンパクトであることが分かります。これを2つに折りたたむと fx-5800P よりも小さく持ち運べます。

この写真で液晶サイズが大きいことも分かります。。








処理速度が速い
搭載しているCPUは日立製 SH3 のカスタマイズ版で、fx-5800P よりもかなり高速です。マニュアル計算やプログラムが遙かに高速動作します。

PCリンク可能
fx-9860G と同様に、プログラムリンク ソフトウェア FA-124 Ver 2.04 を使って プログラムやデータをPCに保存できるのもポイントです。
FA-124 のバグ電卓からFA-124へファイルを転送する場合に複数ファイルをまとめて転送するとファイルが壊れることがあるのが確認されています。これは fx-9850G Slim に限らず FA-124 自体の問題です。面倒でもファイルを1つづつ転送することを推奨します。そして一旦FA-124に転送したファイルを再び電卓に戻して動作確認によりファイルが壊れていないことを確認するようにしてください。

メモリ容量が大きい
fx-5800P は 28.5 KB のメモリ容量なのに対して、fx-9860G Slim のメインメモリは 63 KB と倍以上です。もし C.Basic をインストールすれば、1.5 MB のストレージメモリにもプログラムファイルを保存できます。fx-5800P よりも圧倒的に多くのプログラムを保存できるのが特徴です。

アドイン版 Casio Basic - C.Basic for FX が使える
fx-5800P と異なり fx-9860G Slim はアドインプログラムが使えます。そこでアドイン版 Casio Basic - C.Basic for FX が使えます。C.Basic は純正 Casio Basic の上位互換なので Casio Basic プログラムがほぼそのまま走るだけでなく、非常に高速に動作します(純正Casio Basicの約10倍程度)。また Casio Basic の一部のコマンドが機能拡張されており、さらに独自のコマンドも多くあるので、Casio Basic では実現不能な機能をコーディングできるのが大きな特徴です。C.Basic for FX Ver 2.24β 以降をお使いください。

チューンアップツール - Ftune が使える
Ftune は、CPUにSH3のカスタムチップを用いた fx-9860G シリーズを安全にオーバークロックするツールで、fx-9860G Slim は4倍程度の高速化が簡単に実現できます。最新版はここからダウンロードできます。但し、オーバークロック動作はユーザーの自己責任でお使い頂く必要があります。
サポートは当ブログで行っています。⇒ Ptune3 以外は Ftune2 のサポートページでサポートしています。



fx-9860G Slim のファクトリーモード (イースタエッグ)

ファクトリーモードに入る方法とその概要は、fx-9860GII / fx-9860GII SD のイースタエッグ - 診断機能 を参照してください。ファクトリーモードの詳細は fx-9860GII シリーズとは少し異なりますが概ね同じで、注意事項も同じですのでご留意ください。

fx9860Gslim_factory_mode 
fx-9860G Slim OS1.10 として発売された機種のモデルIDは GY366 となっている。

fx9860Gslim_version 
OSバージョン 1.10 は、
  OSバージョンのタイムスタンプが DateO 2007.0228.1850
OSバージョン 1.11 は、
  OSバージョンのタイムスタンプが DateO 2008.0214.1335 
OSバージョン 2.00 は、
  OSバージョンのタイムスタンプが DateO 2009.0409.0909
となっている。



fx-9860G Slim の性能比較 [2019/09/16 修正]

fx-9860G Slim (OS1.10) の実力を fx-5800P と 最新の fx-CG50 と比較してみます。[2019/09/16 修正]
機種消費電力メモリバッテリ加算ループ (1000回)関数ループ (1000回)繰返表示 (500回)
メインストレージアルカリ寿命処理時間比較処理時間比較処理時間比較
fx-5800P0.12 W28.5 KB---単四x2365 時間16.4 秒---126.8 秒---206.6 倍---
fx-9860G Slim
OS1.10
0.3 W63 KB1.5 MB単四x2130 時間1.4 秒11.7 倍13.1 倍9.7 倍89.3 秒2.3 倍
fx-9860G Slim
OS1.11
0.3 W63 KB1.5 MB単四x2130 時間1.4 秒11.7 倍13.2 秒9.6 倍91.8 秒2.2 倍
fx-9860G Slim
OS2.00
0.3 W63 KB1.5 MB単四x2130 時間2.3 秒7.1 倍14.7 秒8.6 倍98.5 秒2.1 倍
fx-CG500.6 W61 KB16 MB単四x4170 時間2.3 秒7.1 倍6.3 秒20.1 倍82.4 秒2.5 倍
※ fx-CG50 は OS3.20 搭載機を使用。
※ fx-9860G Slim OS2.01 と OS2.04 はカシオが公開を取下げた。大きなバグ(下記参照)たあるため対象外。
※ 上記で用いたコードは、本ページの一番下に記載しています。

メインメモリには純正Casio Basicのプログラムやデータを保存します。OS と最低限必要な SETUP データと ALPHA MEM データを除くと 61 KB が実際に使える容量です。fx-5800P に比べると十分な容量と言えます。


 グラフ関数電卓は単四電池4個使用が標準ですが、Slim はコンパクト性と引き換えに単四2個使用になっていますが、実際に使っていて電源寿命が問題になるとは感じません。ニッケル水素充電池(エネループなど)も使えますが、電圧が低く電津寿命も110時間程度に低下しますが特に問題なく、繰り返し使えてむしろ経済的です。


加算ループの結果から、四則演算とループ処理がとても速く、fx-5800P の10倍程度の実力です。関数ループの結果から、三角関数の処理速度も fx-5800P の10倍以上の実力です。但し fx-CG50 の半分程度の実力です。OS を 1.10 から 2.00 に入れ替えると、関数が追加され Casio Basic に文字列処理コマンドが追加されます。一方 Casio Basic の処理速度は半分程度に低下します。fx-5800P には文字列処理コマンドが無いので、fx-5800P の置き換え機種として考えれば OS 1.10  や OS1.11 で十分でしょう。
例えば関数 RanInt# や MODfx-5800P にはありますが fx-9860G Slim OS1.10 にはありません (OS2.00 で追加されます) が、Ran# や Int を使って書き換え可能で、大きな問題は無いと思います。


繰返表示は、テキスト表示に伴う画面更新速度の評価結果を示しており、十分に速いことが分かります。最新の fx-CG50 とあまり変わらない結果です。

実は、fx-9860G 以降のカシオのグラフ関数電卓の中で、初期のOS1.03搭載の fx-9860G と OS1.10 搭載の fx-9860G Slim (初期型) の処理速度は、その後OSをアップデートした fx-9860Gfx-9860GII よりも格段に速いことが、複数の実機を調べた結果分かっています。fx-9860G Slimfx-9860G シリーズ中の最速機種でありながら、コンパクトで、なおかつ液晶が大きいわけです。

つまり、fx-9860G Slim はお勧めです。

日本国内で発売されていれば、かなり売れたと思います。国内発売されなかったことが残念で、大きな謎です。

 (要注意) OS2.01 と OS2.04 はバグのため推奨できない
fx-9860G Slim に搭載されるOSのバージョンは、1.10、1.11、2.00、2.01、2.04 がある。
これらのうち、OS2.01 と OS2.04 はMENUのアイコン画面からどれかアイコンを選ぶと、[SHIFT] に続いて [F1] が押されるのと同じキーコードが、自動的に送られるバグがあります。すると、選んだ機能やアドインが起動した時 [SHIFT] [F1] が勝手に押された状態になります。起動するたびに [EXIT] を押して本来の起動状態に戻す必要があり面倒であり、場合によっては意図しない入力が勝手に行われるのは無視できない問題です。従って OS2.01 と OS2.04 は推奨できません


OSの選択
処理速度比較の結果、OS1.10 が最も処理速度が速いことが分かりました。OS1.11 は OS1.10 のマイナーアップデートで、細かなバグフィックス版と思われますが 敢えて OS1.11 にする理由がまだよく分かりません (問題が見つかっていません)。

一方、OS2.00 は、機能や関数が追加され Casio Basic が高機能で、fx-9860GIIfxCG50 とほぼ同等の機能になっていますが、処理速度が OS1.10 よりも遅く(加算処理は極端に遅く約半分に)なっています。

つまり、処理速度の OS1.10 か 機能の OS2.00 かの二択になると思います。


OSのアップデート [ 2019/11/06 修正]
カシオ公式のOSアップデータは Windows XP が前提で、現在多くの方が使っている Windows 10 や Windows 7 では動作しません。このアップデータは現在ではカシオのサイトには掲載されていません。

そこで、fx-9860G シリーズの解析文書をリリースされているドイツの Simon Lothar氏 が作成されたOSバックアップ&アップデートツール fxRemote ですと Windows7 と Windows10 でアップデートやバックアップが可能なことを確認しています。なお、同梱している fx-9860G 用ファイルと fx-9860G Slim 用ファイルを絶対に混同しないでください。9860G 用ファイルをSlimに適用すると 画面が上下反転し、キー入力が無茶苦茶になり修復困難になります。

OSアップデートで電卓がおかしくなると保証外になるので、カシオでの修理は有償になります。とはいっても所詮海外専用機種の中古品なので、国内で保証を受けられる可能性はなく、有償でも修理してもらえるかどうかは未知数です。Model ID が異なっている場合はOSコピーできないので、この問題を解決する PolyOS も同梱しています。これは海外のプログラム電卓のSNS, TI-Planet の管理人である Critor氏が作成されたものです。TI-Planet はフランスのSNSですがSNS自体は英語表記にもできます。最近翻訳精度がかなり向上しているGoogle翻訳が結構使えます。日本語はまだ難しいらしくで訳分からない翻訳になることが多いのですが、そのときはフランス語⇒英語にすると翻訳精度が非常に良くなります。

fxRemote や PolyOSは自己責任でお使いください。

上記のツールを使ったりしない状態で、なにか問題があれば先ずカシオに相談されるべきです。有償でもメーカーによる修理が可能なら絶対にお勧めです。これがうまくゆかない場合は、上記のツールを使うしかありません。繰り返しますが、使い方を間違えると電卓が使えなくなるリスク (例えば上記) があります。自己責任です。管理人や作者は一切責任を終えないので、ご留意ください。同梱のドキュメントを参照ください。

 ⇒ fx-9860G / fx-9860G Slim OS Update Tool

なお、上記のベンチマークを行う際には、このツールで OSを変更しています。これまで正しく使うことで問題は発生していません。なお OS2.01 にアップデートした場合は、ファクトリーモードに入れないバグがあります。

ちなみに、私は速度よりも機能を重視して OS2.00 にアップデートして使っています。



プログラム電卓の次機種への妄想(^_^;

次機種は、是非とも2つ折れタイプ (クラムシェルタイプ) にして頂きたいと思います。

クラムシェルタイプのポケコンやプログラム電卓は1980年台から あります(1987年3月のカタログ)が、カシオ以外ではあまり見たことがありません。その延長線上にある fx-9860G Slim もカシオらしい独自の製品だと思います。
年間2500万台を売り上げる関数電卓ですが、プログラム関数電卓もグラフ関数電卓もクラムシェルタイプ を復活させてはどうでしょうか?

プログラム関数電卓 fx-5800P の後継機種を投入するならば、
 ・モノクロ高精細液晶 (ClassWiz搭載より大きなもの)
 ・クラムシェルタイプ
 ・新世代Casio Basic 搭載
 ・USB PCリンク機能
は最低限度欲しいところです。

グラフ関数電卓 fx-CG50 の後継機種を投入するならば、
 ・高精細カラー液晶 (できれは24bitフルカラー)
 ・クラムシェルタイプ
 ・新世代 Casio Basic搭載
 ・アドイン機能
 ・3Pin & USB PCリンク機能
といった感じだと、高機能&コンパクトは日本人には高評価なので国内でも売れると思います。特に現行 fx-CG50 はキーを押しても受け付けないことがある設計不良を抱えているので、これを解決するには次機種が良い機会です。



加算ループで使ったコード
TesSum2 

関数ループで使ったコード
FuncTest_For_985 

繰返表示で使ったコード
Pytha_src 





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


 


keywords: fx-5800PCasioBasic構造化プログラミングプログラミング入門プログラム関数電卓

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

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

Casio fx-CG50 の概要

 
初版: 2017/07/23
追記 2018/08/09
追記 2018/12/26
日本語化に関する追記 2019/05/09
追記 2019/09/18


Casio fx-CG50

fx-CG50 noce photofx-CG50 が欧米で発売されたので、国内発売前に入手して調べてみました。本気で欲しいと思える製品です。

fx-JP900 のデザインを踏襲しています。角に丸みのある四角い形状と高級感のあるフロントパネル、黒・白・シルバーを基調とした色使い。カシオの新しい形。所有する喜びを感じるデザインではないでしょうか?

fx-CG50 は、fx-CG10 PRIZM (北米モデル) や fx-CG2 の後継機で、欧米で 2017年3月末に発売されました。ほぼ7年ぶりの後継機種投入です。

fx-CG50 紹介 (英語のサイト)

日本未発売前に、eBay USA で購入しました。この記事を書いている時点では、eBay USA での実売価格は、新品で100ドルを下回る程度です。国際輸送費を考えてもアメリカからの入手は現実的だと思います。但し配送に時間がかかります(最低でも2週間程度)。

[2019/09/18 追記] OS3.30 にアップデート
主に Pythonの改善と試験モードの使用追加
・WEWからのダウンロードはこちら
・国内サイトからのダウンロードはこちら





[2019/05/09 追記] ユーザーによる日本語化計画
fx-CG50 には、簡体字コード GB2123 を少し変更したグリフ (文字) が搭載されており、それを読み出す方法が見つかった(当ブログ読者の Colon様による)。簡体字は日本語の文字と異なるものが少なくないが、それでも英語よりはましだ。ひらがなも含まれている。Colon様により日本語化ファイルが提供されており、これを fx-CG50 にコピーするだけで、日本語風表記で使えるようになる。
fx-CG20 / CG50 日本語化計画
さらに、fx-CG50で使えるアドインプログラム - C.Basic for CG が当ブログの読者である sentaro様を中心にして現在も開発が進んでいる。C.Basic for CG は純正Casio Basicの上位互換の BASIC開発環境だ。これを使えば作成するプログラムで日本語風の表記が可能になる。
プログラムライブラリ - 日本語版 西暦-和暦 換算プログラム
 
[2018/12/26 追記] ついに Python搭載!
OSが 3.20 にアップデートされ、プログラミング言語 Python が追加され、選択言語にイタリア語が追加されました。
Worldwide Education Website (WEW: 海外のカシオサイト)では2018年8月には公開されていましたが、日本のサイトでは 2018年12月に公開されました。
- WEWからのダウンロードはこちら
- 国内サイトのダウンロードはこちら

[2017/10/20 追記] ついに 2017年10月20日に fx-CG50 が国内発売!
カラーグラフ関数電卓 fx-CG50 
fx-CG50

既にカシオの国内サイトでは fx-CG50 (OS 3.10) の日本語マニュアルが公開されていることから、国内販売は現行の Ver 3.00 でなくて、Ver 3.10 になると思われます。
 
[2017/09/23 追記] fx-CG50 日本語マニュアル
fx-CG50 の日本語マニュアルがカシオ日本語サイトの 取扱説明書ダウンロードサイト からダウンロードできるようになりました。ハードウェアマニュアルとソフトウェアマニュアルの両方の日本語アニュアルです。ソフトウェアマニュアルが OS Ver 3.10 用になっています。国内販売前のバーションは 3.00 です。現時点では OS アップデートファイルはまだ公開されていませんが、国内おカシオサイトや Casio World Education Website で近々ダウンロード可能になると思われます。恐らく同時に fx-CG20 を OS 3.10 にアップデートできるようになるようです (OS 3.10 ソフトウェアマニュアルは fx-CCG20 OS 3.10 と共用のため)。
[2018/08/09 追記]
ソフトウェアマニュアル日本語版が Ver 3.11 にアップデートされていて、カシオの日本語サイトからダウンロードできます。アメリカ市場において2018年3月以降製造のfx-CG50には OS 3.11 がインストールされており、国内販売品もいずれ OS 3.11 がインストールされるようになるかも知れません。

[2018/08/09 追記・修正] OS 3.11 へのアップデートファイル公開
Casio World Education Website のサポートページ ([Accept] をクリックして先に進む) から OS3.11 へのアップデート用アプリとアップデート方法の説明書 (PDF) をダウンロードし、説明書に従って作業を進めます。アップデートアプリの指示があるまで電卓とPCを接続してはダメと書かれていますので要注意。

[2018/08/09 追記・修正] OS 3.11 へのアップデート
ダウンロードしたアップデート用アプリ (fx-CG50 Sries OS Ver.3.11 Update.exe) をPCで実行すると、私の場合は 日本語 Windows 10 Home ですが、自動的に日本語表示でアプリが起動。注意深く表示に従って作業を行うと、アドイン 3D-Grph もアップデートするように聞いてくるので一緒にアップデート。 [MENU] - System - [F4] (Version) で確認すると OS は 3.11.0202 に、3D Graph は 01.02 になる。


なお、fx-CG50 は言語を選択できますが、OSアップデートしても日本語は選べません。言語の選択肢に中文も含まれているので日本語対応も容易だと思います。スタンダード関数電卓 fx-JP900 は表示が日本語化されているので、このデザインコンセプトを引き継いだ fx-CG50 もいずれ日本語表示に対応することを期待します。

 
はじめに

Casio Basic の機能に着目すると、以下に列挙した機種が同じカテゴリに含まれるプログラム電卓です。

 - 2006年発売 fx-5800P 
 - 2007年発売 fx-9860G (OS Ver 2 以降)、生産中止
 - 2009年発売 fx-9860GII
 - 2011年発売 fx-CG10 PRIZM (北米のみ)、fx-CG20とほぼ同じ
 - 2012年発売 fx-CG20 (fx-CG10 PRIZM の約1年後)
 - 2013年発売 fx-FD10 Pro
 - 2017年発売 fx-CG50 (欧米先行、2017/10/20国内発売)

fx-CG50 は fx-CG10 PRIZM / fx-CG20 の後継機種です。1つ前に発売されている fx-FD10 Pro は、fx-9860GII のハードウェアを利用しながらアドインが使えず Casio Basic 専用機である点で異質な存在です。
 
 
fx-CG50 の位置づけ [2017/08/07 更新]
Casio Basic に着目すると、fx-CG50 の位置づけが明確に見えてきます。
  • fx-9860GII:モノクロ液晶搭載の最上位機。
  • fx-CG10 PRIZM / fx-CG20:fx-9860GII のディスプレイを高精細&カラー化したもの。しかし Casio Basic では テキスト、グラフィックずれも画面出力処理が極めて遅く、fx-9860GII の方が遙かに速い。カラーだが出力が遅い fx-CG10 / CG20 が良いのか、モノクロだが出力が速い fx-9860GII が良いのか、2機種の甲乙を付けられない状況だった。言い換えれば、fx-CG10 / 20 は必ずしも fx-9860GII の後継機種とは言えないのだ。
  • fx-CG50:高精細カラー液晶へ出力が大幅に高速化したのが最大の改善点で、fx-9860GII と同レベルになった。
fx-CG50 の Casio Basic は、カラーと高精細に関係するコマンドを除けば fx-9860GII と互換です。fx-9860GII で作った Casio Basic は、fx-CG50 でほぼ同じ出力速度で動作します。

互換性の無いコマンド:
※ パラメータ見直しが必要なコマンド:PxlOn、PxlOff、PxlChg、PxlTest(
※ 転送時に自動的にパラメータが変更されるコマンド: Text

fx-CG50 は、fx-9860GII をカラー化した後継機種、現時点での最上位機と位置づけられます。
 
 
ハードウェア機能
fx-CG50 は、fx-CG20 から内部のハードウェアが変更されています。CPU は同じものを使いながら、処理速度を向上させ、一方で消費電力が抑えられ、バッテリー駆動時間が延びました。RAM (ストレージメモリ) は、fx-CG20 の SRAM から fx-CG50 では SDRAM に変更されています。

fx-CG50 の省電力化 (fx-CG20 との比較) ※2
動作モードfx-CG50fx-CG20省電力化の傾向 ※3
電源OFF 0.1 mA 以下 0.1 mA 以下---
電源ON
 RUN-MAT待機状態、輝度1※1 2.5 mA (10.0 mA) 3.0 mA (14.3 mA)16.7% (30.0%)
 RUN-MAT待機状態、輝度3 ※1 5.5 mA (13.0 mA) 8.3 mA (21.0 mA)33.7% (38.1%)
 RUN-MAT待機状態、輝度5 ※1 9.5 mA (18.0 mA) 16.4 mA (30.8 mA)42.1% (41.6%)
 Casio Basic実行、輝度1 ※1 21.1 mA (22.2 mA) 23 mA (30.3 mA)8.3% (26.7%)
 アドイン実行、輝度1 ※1 39.8 mA (40.4 mA) 38.0 mA (50.0 mA)-4.7% (19.2%)
※1: カッコ内は USB接続状態、※2: sentaro様ご提供の測定値 を使用
※3: 省電力化の傾向 (%) = ( CG20の値 - CG50の値 ) / G20の値 × 100

同じ CPU を使っているので、電流値の変化が消費電力の変化と見なします。
処理速度については、関数や Casio Basic の処理内容に応じた比較測定の結果を以下で紹介します。
 
 
ソフトウェア
 fx-CG50 のソフトウェアは、ハードウェアの違いを吸収する OS が Ver 3 にバージョンアップしています。表に出てくる関数機能や Casio Basic の機能面では違いが見られません。アドインについては、ROM や RAMに直接アクセスしたり、SRAM からSDRAM に変更された RAM の違いの影響が現れるようなコードが使われていない場合は、fx-CG20 と fx-CG50 では同じアドインプログラムが動作します。fx-CG50 になってもアドインの拡張子が g3a と変わっていないことも互換性の高さを裏付けています。

fx-9860G と fx-9860GII にはアドイン作成用のカシオ公式SDKが公開されていますが、fx-CG20 以降は公式なSDKがありません。従って、カシオ純正あるいは公認の アドイン (g3a) ファイルなら fx-CG20 と fx-CG50 での互換性は保たれると考えても良さそうですが、サードパーティや個人が作成したアドイン (g3a) ファイルは、使用に際して fx-CG50 での動作確認がされているかに注意が必要です。 

さて Casio Basic については、fx-CG20 とfx-CG50 は完全互換です。違いを探していますが、未だに見つかっていません。プログラムファイルの拡張子も同じで g3m のままです。
 
 
キー入力の問題
CG50 Ten Keys 

写真に写っている大きなキートップのテンキーなどは、キーの右側を軽く押すときに入力を受け付けないことがあります。キーの左側を押す時は問題ありません。他の所有者の fx-CG50 でも同じ問題があることが分かりました。

慣れれば問題ないかも知れません。しかしチャッチャッとキーを速く軽く叩く使い方は特殊でないでしょうし、そのような使い方では入力を受け付けないことが確実にあります。もぐら叩きゲームのようなテンキーの早押しが必要な場合は、慣れの問題ではなくて避けられない問題となるかも知れません。そこで特に必要性は無いけれど面白そうなので、もぐら叩きゲーム fx-5800P 版を移植して fx-CG50 版を作り 遊んでみました。急いでキーを叩く際、どうしてもキー入力の不備からゲーム進行が不利になります。

この不具合は、キーのバネ機構と接点パネルに関する設計や組み付け工程の問題、或いはこれらの複合的問題によると推察しています。この不具合をカシオが認識して、国内発売までに改善するのかどうかに興味があります。

fx-5800P のカバーヒンジの問題、fx-JP900 のハードカバーの問題 (問題は既に指摘、整形の問題のないロットの存在については今後記事にするかも...) に続いて、今回 fx-CG50 テンキー問題も出てきました。とても残念です。
 

 
目 次

1. 海外から直接購入


2. 到着したパッケージ

3. 外 観

4. 他機種との比較
 4.1 地味な改善 - バーコード & シリアルのラベル

5. ダウンロード
 5.1 OSアップデート
 5.2 取扱説明書
 5.3 アドインプログラム
 5.4 サポートソフトウェア

6. データ転送
 6.1 PCとのリンク
 6.2. 電卓同士のデータ転送

7. バックアップ

8. ハードウェア
 8.1 キー入力
 8.2 液晶表示

9. 関数電卓としての機能
 9.1 ユーザデータのバックアップ機能
 9.2 3桁区切り表示
 9.3 複素指数関数
 9.4 積分関数の処理速度
 9.5 周期関数の積分

10. Casio Basic の互換性

11. カタログ機能

12. Casio Bsic の処理速度
 12.1 計算主体
 12.2 動きのあるテキスト出力
 12.3 動きのあるグラフィック出力

13. さらなる高速化
 13.1 オーバークロック
 13.2 アドイン版Casio Basic (C.Basic)
 

 
海外から直接購入

[2017/07/28 追記]
Amazon USA で日本への輸出が可能な fx-CG50 の取り扱いが始まっています。sentaro様が ここから購入したところ、驚くほど短時間で入手したとの情報がありました。Amazon USA での購入が、推奨可能な候補として浮かび上がりました。注文から配達までの概要は以下の通り(この場合は僅か3日で配達!);
場所日付・現地時間状況
某所2017/07/27配達完了
大阪2017/07/26 20:20最終配達の手配

2017/07/26 11:10輸入通関

2017/07/26 10:19空港到着
アンカレッジ、アラスカ州2017/07/25 9:05空港出発

2017/07/25 7:03輸出通関

2017/07/25 5:55空港到着

2017/07/25 2:16空港出発
オンタリオ、カリフォルニア州2017/07/24 22:47空港到着
シアトル、ワシントン州2017/07/24 20:18空港出発
ケント、ワシントン州2017/07/24 15:19現地営業所スキャン
セラー (出荷)2017/07/24 18:31 (ET)UPSへの引き渡し

※ これはかなり理想的なケースだと思われ、Amazon USA で購入しても必ずこんなに速く配達されるわけでは無さそうです。というのも、Amazon USA でポチッとしたのが月曜(平日)で、即日セラーから出荷されたこと、東海岸のセラーから日本向け飛行機が飛ぶ西海岸までの輸送が陸送だけでなく航空便が使われたこと、さらにアメリカの東海岸から西海岸までの3時間の時差に助けられて見かけ上時間が短縮されていること、そして日本向け飛行機での配送が即日行われたこと(一旦貨物が集まるまで滞留させなかったこと)、日本到着時が平日で即日通関されたこと、など全ての良い要因が重なっているからです。
  • 概要: 国内のショッピングサイトでは fx-CG50 の並行輸入品の扱いが見つからなかったので、今回はアメリカの eBay で直接購入しました。海外品を買うには、セカイモンeBay などで購入して国際貨物で送って貰うことになります。このような個人輸入の場合、国際貨物の扱いや輸入手続きは業者が全てやってくれるので、個人輸入という実感はあまりありません。セカイモンは手数料を取って国際貨物や輸入通関まで全て面倒をみてくれ、さらに日本語で注文できるので、かなり楽です。eBay の場合は国際配送を引き受けるセラー(Seller、業者)が出品している場合は購入者は何もしなくて良いのですが、国際配送をやっていないセラーから買う場合は、国際配送業者を別途利用する必要があります。
  • eBay での商品選び: eBay の場合は、実績と評判のあるセラーから購入した方が良いと思います。Top-rated Seller (高評価のセラー) といった表示があるので、そのセラーのページで確認して自分なりに納得してから決められます。新品 (new in box) といった表示で新品が確認できない時は中古の可能性もあるので、確認しましょう。fx-CG50 の場合でも、安いものの中には注意深くみてゆかないと中古品であるケースがあり、紛らわしいと感じるものがあったので、新品が欲しい場合は要注意です。
私の場合は、fx-CG50 新品の本体価格が¥10,915、輸送費が ¥2,316 でした。輸送費用の傾向として、ヨーロッパの方が北米よりもかなり高いので、北米のセラーから購入する方がお得のようです。
  • セカイモンと eBay のコストの違い: セカイモンは、 eBayと提携しているので eBay と同じセラーからの同じ商品が同じ本体価格で購入できます。違いは、ページでの提示期間と配送手数料です。セカイモンの方が早く締め切る傾向があり、購入する場合は即決に近い判断が必要なケースが多いようです。日本語で買える安心感、国際配送と通関手続きがお任せのセカイモンは、手数料分の価値はあると思います。英語でも良いなら eBay の方が商品提示期間が長く多少でも余計な手数料を取られないので、費用面でもお得です。
  • セカイモンと eBay の配送期間の違い: いずれにしても配送時間は最低2週間と普通の国際便よりは時間を要します。今回 eBay USA を初めて使って、とにかく時間がかかることがよく分かりました。アメリカ国内のセラーから国際発送を行うセンターまで陸送で一旦貨物が集められ(カリフォルニアから日本とは逆方向のケンタッキー)、そこでスグ日本へ送ることはなく、1週間程度滞留させるので、ここで余計な時間がかかります。国際便のコストを下げるためにある程度貨物をまとめる必要があるのだと理解しています。ポチッとしたから手元に届くまでの時間については、セラーの場所と国際配送センターの場所に依存するようで、どちらが速いかについては、なんとも言えないと思います。アメリカと日本の祝祭日の影響もありますので、ポチッとした日にも依存します。国際配送センターで多くの日本向け貨物がまとまれば滞留日数が短くなる可能性もあるでしょう。
私の場合は、
- 7/2 (日): ポチッとし決済
- 7/3 - 7/4 (月~火): 7/4が独立記念日で 7/3 も休みで連休、セラーはお休み
- 7/5 (水):セラーが出荷、UPS サンフランシスコセンターが受け取る
- 7/6 (木):UPS コネチカットセンターを通過 (アメリカ国内はトラック輸送と思われる)
- 7/7 (金):ケンタッキー州アーランガーにある国際配送センターに到着
- 7/13 (木):国際配送の FedEx に引き渡し。センターに6日も滞留していた
      ※ eBayに問い合わせたら、通常センターに1週間は留め置くと回答あり
- 7/14 (金):一旦テネシー州のメンフィスに寄り道 (おそらくここまでは陸送と思われる)
- 7/15 (土):メンフィスで輸出通関
- 7/16 (日):成田到着
- 7/17 (月):輸入通関、FedEx横浜営業所に到着
- 7/18 (火):横浜営業所で、何故だか丸一日滞留
- 7/19 (水):配達完了

  • 決済について:セカイモンは eBay と提携しており、eBay と PayPal は同じ傘下の会社なので、セカイモンでも eBay でも PayPal での決済ができます。PayPal での決済は、事前登録が必要ですが、決済手続きは日本語で可能、決済の記録も日本語で確認できるのが利点です。私は eBay で商品を探して、そのまま PayPal で決済しました。
  • eBay USA のカスタマーサポート:7/2に決済が済んでいるのに 3日たってもトラッキングの状況に変化がないことの問い合わせ、それから国際配送センターからの配送が6日間も留め置かれている状況の問い合わせを行いました。eBayのページからフォームを使って質問を送ったところ、いずれも12時間以内に返信があり、考えられる次の問い合わせを行うための細かい案内も付されていて、レベルは高いと思います。
 
<目次に戻る>
到着したパッケージ

fx-CG50 Package 1  fx-CG50 Package 2 

ブリスタパッケージは、分厚いプラスチックがガッチリと融着されているので、楽には開けられません。しっかりしたハサミで周囲をカット。

items inside package 

fx-CG50 本体、Quick Start Guide、単四アルカリ電池4本 (試供品)、PCリンク用のUSBケーブル、ダウンロードや登録(アメリカのみ) の説明、保証書が入っています。CD や 3Pinケーブルは同梱されていません
 
 
<目次に戻る>
外 観

CG50 & JP900 1  

fx-JP900 (右) とそっくりです。
四角いオーソドックスな形状は落ち着きを与え、長く使っても飽きが来ない感じで、好きなデザインです。

キーの上の印刷された文字ですが、老眼の始まった私には、fx-JP900 の印刷はとても見づらいのですが、fx-CG50 ではフォントが大きく色のコントラストも向上して、見やすくなっています。

CG50 & JP900 2 

fx-CG50 に fx-JP900 を重ねてみます。fx-CG50 の大きさを感じます。

CG50 & JP900 3  CG50 & JP900 4 

fx-CG50 と fx-JP900 をカバー付き (左) とカバー無し (右) で重ねてみたところ。厚みが3倍くらい違うことが分かります。

写真では分かりにくいですが、筐体やカバーの表面は、fx-JP900 はツルツルのテカテカですが、一方 fx-CG50 は細かい凹凸があります。使っているウチに表目に細かい擦り傷が付いても、あまり目立たないのではないかと思います。

液晶部が一段低くなっていますが、保護ウィンドウが傷つきにくい感じなのは良いです。
というのも、fx-CG20 の透明な上部パネルは、まともに表面処理をしておらず簡単に傷つきます。私の fx-CG20 は新品購入時に既に細かい傷が多く付いていましたが、不良とは認めて貰えず製造上に発生するもので、こういうものだとの説明でした。この点が改善されたと思います。

foot  rubber foot 
fx-JP900 は成形で作った出っ張りで4カ所の足にしています。一方、fx-CG50 はゴム足です。但し fx-9860GII や fx-CG20 の黒いゴム足ではなくて、半透明になっています。黒いゴム足は、使い込んでくるとテーブルやノートにくっついて、黒い跡が残ることがあるのですが、その問題が無くなりそうです。

所有したくなるデザインの電卓だと思います。
 
 
<目次に戻る>
他機種との比較

Graphing Calcs 
左から、fx-CG50、fx-CG20、fx-9860GII、fx-5800P

 fx-CG50fx-CG20fx-9860GIIfx-5800P
 電池 単四 x 4 単四 x 4 単四 x 4  単四 x 1
 電池寿命 (メーカー測定基準) 170 時間 140 時間 200 時間 1年
 サイズ (mm) 18.6x89.0x188.5 20.6x89.5x188.521.2x91.5x184 15x82x163
 重さ (g) 230 230 225 150
 液晶ディスプレイ解像度
 ・Casio Basic グラフィック
 ・Casio Basic テキスト
 216 x 384 pixel
・187 x 379 dot
・7 x 21 文字
 216 x 384 pixel
・187 x 379 dot
・7 x 21 文字
64 x 128 pixel
・63 x 127 dot
・7 x 21 文字
 96 x 31 pixel
・---
・4 x 16 文字
 仮数 + 指数 10桁 + 2桁 10桁 + 2桁 10桁 + 2桁 10桁 + 2桁
 内部演算桁数 15桁 15桁 15桁 15桁
 プログラムメモリ容量 最大 ~61 KB 最大 ~61 KB 最大 ~62 KB 最大 ~28.5 KB
 メインメモリ (利用可能) ~61 KB ROM ~61KB ROM ~64 KB ROM ~26.5 KB
 ストレージメモリ  ~16 MB SDRAM ~16 MB SRAM ~15 MB SRAM ---
 プログラムファイル名 最大8文字 最大 8文字 最大 8文字 最大 12文字
 CPU SH4A (SH7305) SH4A (SH7305) SH4A (SH7305)
  クロック ~118 MHz ~59 MHz ~29 MHz ? MHz
 - FLL:  14,75 MHz x900 14.75 MHz x900 14.75 MHz x900 ---
 - PLL:  FLLx16, 235.93MHz FLLx16, 235.93 MHz FLLx16, 235.93 MHz ---
 - IFC: CPUコアクロック 1/2 PLL, 117.96MHz 1/4 PLL, 58.98 MHz 1/8 PLL, 29.49 MHz ---
 - SFC: SuperHywayバスクロック 1/4 PLL, 58.98MHz 1/8 PLL, 29.49 MHz 1/8 PLL, 29.49 MHz ---
 - BFC: メモリバスクロック 1/4 PLL, 58.98 MHz 1/8 PLL, 29.49 MHz 1.8 PLL, 29.49 MHz
 - PFC: I/Oクロック 1/8, 29.49MHz 1/16, 14.75 MHz 1/16, 14.75 MHz ---
sentaro様作成の カシオグラフ関数電卓用チューンアップツールを使用した結果、マニュアル記載の内容によります。


地味な改善 - バーコード &  シリアル のラベル [2017/08/06 追記]
fx-9860GII や fx-CG20 は、電卓裏側に バーコードとシリアルのラベルが貼り付けられています。当然ながら長らく使っているとラベルの印刷が摺り切れて読めなくなります。fx-CG50 では電池ケースの内部にラベルを貼っているので、摺り切れることはありません。地味だが大切な改善だと思います。

fx-9860GII Barcode & Serial Label fx-CG50 Barcode & Serial Label 
左の fx-9860GII のラベルは印刷が見えなくなっている。右の fx-CG50 のラベルは電池ケースの中に貼ってある。
 
 
<目次に戻る>
ソフトウェア ダウンロード

PCリンクソフト、出荷時に無いアドインは、CASIO Worldwide Education Website (WEW) からダウンロードできます。このページから
  • 上のメニューで Support をクリック、
  • 言語として English を選び (日本語が無い)、
  • Graphic Model を選び、
  • SOFTWARE LICENSE AGREEMENT で Accept をクリックする
これで、fx-CG50 Series のリソースダウンロードのページに行けます。
 
 
OSアップデート [2017/09/26 更新]
fx-CG50 本体で、[MENU] - [System] - [F4] (Version) で確認すると、OSバージョンは 03.00.0202 となっていました。
fx-CG50 のOS が 3.10 にアップデートできます。Casio World Education Website の Download Resoureces のページからダウンロードアプリと作業説明(PDF) がダウンロードできます。
 
 
<目次に戻る>
取扱説明書 [2018/09/23 更新]
日本語取扱説明書は、カシオ取扱説明書ダウンロードのページ から入手できます。

英語等多国語版は、Casio World Education Website の Download Resources のページから、User's Guide for fx-CG Series Handheld をクリックすると、各国語のハードウェアマニュアルとソフトウェアマニュアルがあるので、そこから入手できます。日本語版取扱説明書がまだ無かった時は、English 版をダウンロードしました。
- [PDF File] User's Guide Version 3.0 -Hardware- (English)
- [PDF File] User's Guide Version 3.0 -Software- (English)
 
 
<目次に戻る>
アドインプログラム
fx-CG50 のリソースダウンロードのページで、Add-in Software をクリックし、各種アドインプログラムをダウンロードできます。ダウンロードできるアドインの中で、私の fx-CG50 に購入時にインストールされていなかったのは、Probability Simulation だけです。
アドインのインストールマニュアル - 日本語版
Add-in Software の下の User's Guide for fx-CG Sries Handheld のさらに下に  [PDF File] Installation Guide をダウンロードしてみると、各国語別のガイドがありますが、ナント日本語版が含まれていました。
 
 
<目次に戻る>
サポートソフトウェア
Screen Receiver - 電卓画面をPCで表示するソフト
fx-CG50 のリソースダウンロードのページで、Support Software をクリックし、Screen Receiver がダウンロードできます。バージョンは 3.02 で、fx-CG20 /10 用と同じバージョンで、共通して使えます。
 
  
<目次に戻る>
データ転送
 
PCとのリンク


標準添付の USBケーブルを使います。
USBケーブルで fx-CG50 と PC を繋ぐと、fx-CG50 の液晶での表示が接続モード (Connection Mode) になります。
ここで、[F1] (USB Flash :[F1]) を押すと、ポップアップウィンドウで Preparing USB と表示され、少し待つと接続完了です。

後は、エクスプローラで fx-CG50 がドライブとして表示されるので、PC上と同じ操作でファイルのやりとりができます。 

PCLink_PCDisp 
fx-CG50 内のフォルダ / ファイル はこのように表示されます。ここで、System Volume Information フォルダがありますが、fx-CG50 ドライブに名前を付けたことで作成されたものです (日付けを見れば後から作成されたことが分かりますね)。

fx-CG50 を接続した時のドライブには最初は名前が無いので、FX-CG50 と名前を付けました。ドライブを右クリックしてプロパティを選び、そこで名前を入力できます。

CG50 PCLink Drive Name 

さてPCと接続中の fx-CG50 の液晶画面には、fx-CG20 には無かった新しい === Caution === 画面 が Tips 画面 (fx-CG20と同じ) と交互に表示されます。ここでは、「ケーブルを抜く前にPCのUSB接続を終わらせてください」と書かれています。Windows PCの通知領域 (タスクトレイ) で「ハードウェアを安全に取り外してメディアを取り出す」で [CASIO MassStrage Device の取り出し] をクリックします。外付け USBハードディスクや USBメモリの取り出しと同じ操作です。
 
 
<目次に戻る>
電卓同士のデータ転送

3Pinコネクタの接続ケーブル (SB-62) を使って2つの電卓を繋ぎ、接続する両方の電卓で CABLE (ケーブルの選定) で [F2] (F2:3Pin cable) を設定後、一方で TRANSMIT (送信)、他方で RECV (受信) に設定すれば、データのやりとりができます。このケーブルは、fx-9860GII には標準添付されていましたが、fx-5800P、fx-CG20 そして fx-CG50 には標準添付されていません。以前 SB-62 のみを購入した時は ¥2,700 でした。

プログラムを含むデータのやりとりができるのは、fx-9860G、fx-9860GII、fx-CG20/10、fx-CG50 (および fx-9860G あたり以降のグラフ関数電卓) で、Menu に Link 項目があって、3Pin コネクタが付いている機種です。なお、fx-5800P 同士なら、このケーブルを使ってデータ転送可能ですが、fx-5800P と グラフ関数電卓とのデータ転送はできません。

詳しくは、Sofware Manual に書かれているので確認できますが、使ってみれば分かると思います。

[2017/07/28 追記]
fx-CG50 から fx-9860GII へ転送すると、ファイル形式は g3m から g1m へ自動変換され、カラーや細線設定など、fx-9860GII で未対応のコマンドは @ に自動的に置き換えられます。
 
 
<目次に戻る>
バックアップ

万一に備えて、電卓内部のデータをバックアップしておくことを勧めます。PCに保存フォルダを作り、PCとのリンク機能を使って電卓内のデータをPCの保存フォルダに丸ごとコピーしておきます。
PCLink_PCDisp 
購入時のバックアップ、そして適宜バックアップをすると良いと思います。特にオーバークロックを行う場合は、エラー発生時に電卓のリセットが必要になりプログラム、データやプログラムが失われることもあるので、バックアップしてあればこれらを簡単に戻せます。
 
 
<目次に戻る>
ハードウェア

CG50 & CG20 
主に fx-CG50 と fx--CG20 を比較します。
 
 
キー入力
キー配置や各キーに割り当てられている機能は、fx-CG20 と全く同じ。
 
 
<目次に戻る>
液晶表示
液晶のサイズや精細度も fx-CG20 と同じ。
手持ちの fx-CG20 と fx-CG50 を比べる限りでは、明るさや色合いが少し異なっています。

LCD CG50 & CG20 
左が fx-CG20、右が fx-CG50

同じ明るさ設定で比較して気がつくのは、右の fx-CG50 は黄色みがかって少し暗く見えます。fx-CG50 で明るさ設定を 3/5 から 4/5 に変えると明るさは同等になりますが、それでも黄色みがかっています。消費電力低減への寄与もありそうです。

[2017/07/23 追記]
このカラー液晶の輝度と色については、バラツキがあるようです。sentaro様所有の個体は逆の傾向だとコメントを頂きました。
 
 
<目次に戻る>
関数電卓としての機能

fx-CG50 のキーの種類と数、および配置は、fx-CG20 と同一です。fx-9860GII には [SHIFT] [5] (FORMAT) が有りませんが、それ以外は同じです。関数機能も同じです。計算の内部桁が15桁と同じで、各関数の精度範囲も同じなので、fx-CG50 の関数電卓としての使い勝手は fx-CG20 や fx-9860GII と同じです。
 
 
<目次に戻る>
ユーザーデータのバックアップ機能
カシオのスタンダード関数電卓は電源をオフにすると、作業内容やユーザーデータが消えますが、fx-CG50 は各モードでのユーザーデータは一旦電源を切ってもバックアップされます。他のプログラム電卓 fx-5800P、fx-9860GII、fx-CG20 もバックアップされます。

資格試験で使えると称しているスタンダード関数電卓は、数式などが保存できると都合が悪いからバックアップできない仕様になっていると思われます。バックアップ機能だけでも、プログラム電卓を関数電卓として使う価値があると思って、私は日常的にプログラム電卓を関数電卓として使っています。
 
 
<目次に戻る>
3桁区切り表示
カシオの最新のスタンダード関数電卓 fx-JP900 / 700 / 500 では、関数電卓として3桁区切りが登場しました。一般電卓には3桁区切りは普通に搭載されている使い勝手の良い機能なので、登場が遅すぎるようにも思います。

これまでのプログラム電卓には3桁区切り機能は無く、fx-CG50 に3桁区切り機能の登場を期待しましたが、残念ながら対応していません。fx-CG50 のソフトウェアが fx-CG20 から殆ど変わっていない結果とも言えます。デザインは fx-JP500/700/900 を踏襲したので、3桁区切りについても踏襲して欲しいわけで、OSアップデートによる追加対応という現実的な方法もあります。カシオには是非対応して頂きたいと思います。

[2017/11/08 追記]
Casio Basic での出力コマンドにも3桁区切り機能がありません。しかし、作ったプログラムに3桁区切り出力機能を付加することは出来ます。
Casio Basic入門59, Chapter 10-5:3桁区切りサブルーチン グラフ関数電卓版
 
 
<目次に戻る>
複素指数関数
複素数を表示するように設定して、計算させてみると、fx-5800P はエラー、fx-9860GII と fx-CG20 は正しく計算結果を表示します。fx-CG50 でも同様に複素指数関数を正しく計算します。

 CompCalc1 CompCalc2 
 
 
<目次に戻る>
積分関数の処理速度
 
積分計算速度の比較をしてみます (Rad モード)。
機種積分1積分2
fx-JP9005.5秒48.7秒
fx-5800P10.1秒56.7秒
fx-9860GII (SH4A)1.5秒8.4秒
fx-CG201.0秒5.8秒
fx-CG500.7秒3.2秒

積分計算は fx-CG50 で高速化しています。三角関数の計算が特に高速化していることが分かります。
 
 
<目次に戻る>
周期関数の積分
積分計算にガウス・クロンロッド法が使われていることから、このアルゴリズムが苦手な多項式で表せない関数の代表選手として周期関数の積分を行って、タイムアウトする限界を比較してみます (Rad モード)。

積分3
機種計算できる nタイムアウトする n
fx-JP900
fx-5800P
fx-9860GII6061
fx-CG206061
fx-CG506061

fx-CG50 での結果は、fx-CG20 や fx-9860GII と同じなので、積分計算の内部ロジックは大きく変わっていないようです。
 
 
<目次に戻る>
Casio Basic の互換性

当ブログは Casio Basic がメインテーマなので、少し詳しく解説します。

fx-CG50 に搭載されている Casio Basic は、2006年に発売された fx-5800P とそれ以降に発売されたグラフ関数電卓が同じカテゴリに属します。これらに搭載された Casio Basic は、構造化プログラミング可能で意外に高機能です。当ブログでは、このカテゴリを新世代 Casio Basic と呼んでいます。

< 新世代Casio Basic搭載機 >
 - 2006年発売 fx-5800P
 - 2007年発売 fx-9860G (OS Ver 2 以降)、生産中止
 - 2009年発売 fx-9860GII
 - 2010年発売 PRIZM fx-CG10 (北米のみ)、fx-CG20と同じ
 - 2012年発売 fx-CG20
 - 2013年発売 fx-FD10 Pro
 - 2017年発売 fx-CG50

新世代 Casio Basic については、Casio Basic の勧め を参考にしてください。

fx-CG50 搭載の Casio Basic は、機能面で fx-CG20 と異なる点が見つかりません。現時点では完全互換と言って良いと思います。そこで、fx-CG20 について、fx-9860GII や fx-5800P との比較を行った記事がそのまま fx-CG50 に該当します。

 ⇒ fx-CG20 の概要
 ⇒ fx-9860GII への移植 - 厄介な旧来の命令

当ブログで公開している Casio Basic入門逆引きCasio BasicCasio Basicコマンドリファレンスプログラムライブラリ は、fx-CG20 に関するものは、そのまま fx-CG50 に適用できます。
 
 
<目次に戻る>
カタログ機能

fx-CG50 には fx-CG20 と同様に使えるコマンドの一覧を検索して入力できるカタログ機能が備わっています。コマンド入力ができるモードで [SHIFT] [4] (GATALOG) を押すと、カタログ画面が現れます。

Catalog 1 CG20 Catalog 1 

左が fx-CG50 で、右が fx-CG20 です。

左の画面には、HISTORY というメニューと 表記 "Catalog" の右に検索入力欄が増えています。過去に検索して入力したコマンドを再入力するためには HISTORY 機能は大変便利です。 検索入力に1文字入れると絞り込み検索が行われるので、コマンドがうろ覚えの時に便利です。

CATメニューを選ぶとジャンル別一覧が現れます。

atalog Graph 1 

例えば 4: Graph でジャンルを選ぶと以下の画面になりますが、ここで fx-CG50 と fx-CG20 で違いがあります。

Catalog Graph 2 CG20 Catalog Graph 2 

左が fx-CG50、右が fx-CG20 です。

右の fx-CG20 では、コマンドのリストが表示されます。
左の fx-CG50 で表示されるリストは、コマンドではなくて説明です。この下のレベルでさらに説明のリストが現れることもあります。かなり分かり易く改善されています。

なお、CAT メニューから 1:All を選ぶと、全てのコマンドがアルファベット順に表示されます。このリストを fx-CG50 と fx-CG20 で比較した結果、同一でした。Casio Basic 使えるコマンドの種類が全く同じだと分かります。 
 
 
<目次に戻る>
Casio Basic の処理速度

fx-CG20 向けの作成したプログラムが そのまま fx-CG50 で動作するのは、ユーザーとしては助かります。fx-CG50 では処理速度の向上が見らるので、具体的に調べてみます。

 計算主体

PRIME - 素因数分解

ダウンロード
- fx-5800P用 pdf ファイル
- fx-9860GII用 g1m ファイル
- fx-CG50 / fx-CG20用 g3m ファイル

※ 使い方やプログラムソースについては、fx-9860GII への移植 - 素因数分解 参照

プログラムを起動すると...

Prime1 
数値を入力して [EXE] で素因数分解を始め、[EXE] を押しながら結果を1行ずつ表示させる。

Prime2 Prime3 
表示が出たら、最後の行を示すので、これで素因数分解の全結果となります。

このプログラムの実行中は、ビジーマーカー以外に表示の更新が無いので、計算速度の比較に向いています。今回は、以下の10桁の数の素因数分解の計算時間を比較します。

計算する数値: 7,849,516,203 = 32 x 9811 x 88897

fx-CG50 の画面は以下のようになります。

   Prime4 Prime5 

機種別処理時間の比較
fx-CG50fx-CG20fx-9860GIIfx-5800P
46秒63秒89秒444秒
11.361.939.65
0.7312.677.05
0.520.7118.73

fx-CG50 の計算処理は、fx-CG20 より 30% 程度速くなっています。
  
<目次に戻る>
動きのあるテキスト出力

PYTHA - ピタゴラス数探索

ダウンロード

- fx-5800P用 pdf ファイル
- fx-9860GII用 g1m ファイル
- fx-CG50 / fx-CG20用 g3m ファイル

※ 使い方やプログラムソースについては、fx-9860GII への移植 - ピタゴラス数 を参照。

このプログラムを起動すると1つめのピタゴラス数を表示して一旦停止します (左の画面)。
2行目の EXE:Next (-):Stop に変化するまで [EXE] キーを長押しすると、連続的に次々とピタゴラス数が表示し続けます。
そして、右の画面のように500個のピタゴラス数を探索して表示するまでの時間を計って比較します。
    Pytha 1 Pytha 500

[EXE] キーを長押しすると連続モードになって、A、B、C 1組のピタゴラス数が、次々に変化します。つまり、このピタゴラス数探索プログラムは、テキスト表示が常に更新し続けます。
そこで、500個のピタゴラス数が見つかるまでの時間を、機種別に比較してみました。

機種別処理時間の比較
fx-CG50
fx-CG20
fx-9860GII
fx-5800P
87秒
185秒93秒
441秒
12.121.075.07
0.4710.5024,0
0.941.9914.74
0.200.420.211

fx-CG50 は、fx-CG20 の2倍程度の処理速度、fx-9860GII とほぼ同等の処理時間。
fx-CG20 は、動きの有るテキスト表示が重すぎて、実用プログラムを走らせるには向かなかったが、その問題が解決されています。

液晶画面の右上にビジーマーカーが表示されますが、fx-CG20 では常に表示し続けているのに対して、fx-CG50 では表示されていない時間が長い点に気付きました。fx-CG50 では ディスプレイへの転送をコマンドごとでなくてある程度まとまって行っている可能性がありそうです。それに伴ってビジーマーカー表示が間欠的になっているのかも知れません。
 
<目次に戻る>
動きのあるグラフィック出力

MONTECAR - モンテカルロ法による円周率計算

ダウンロード
- fx-9860GII用 g1m ファイル
- fx-CG50 / fx-CG20用 g3m ファイル

※ 使い方やプログラムソースについては、fx-9860GII グラフィックス - モンテカルロ法 を参照。この記事では、実際の画面の変化を動画で見られます。

 Montecar_1 Montecar_2 

 Montecar_3 Montecar_4 

[EXE]
キーを押すと、ランダムに点を打ち始め、それが円内にある割合から円周率を求める、モンテカルロシミュレーションプログラムです。このプログラムは、動きのあるテキスト表示と動きのあるグラフィックス描画を同時に行います。

そこでランダムに500回点を打つまでの時間を、機種別に調べて比較してみました。
機種別処理時間の比較 
fx-CG50
fx-CG20
fx-9860GII
174秒
429秒
135秒
12.470.78
0.4110.31
1.23.181

fx-CG50 は、fx-CG20 の 2.5倍の処理速度を達成。しかし fx-9860GII の 80% 程度の処理速度しかありません。

グラフィック表示の処理時間は fx-CG50 でかなり改善されているとは言え、あまり得意な処理ではないことが分かります。
カシオのグラフ関数電卓は、数学教育目的でグラフを表示することが主眼で、速い動きで変化示す処理は重視していないんでしょう。
 
<目次に戻る>
さらなる高速化

fx-CG50 は、fx-CG20 の極めて遅い出力処理を改善していることが分かったのですが、それでもゲームなどのピクセル単位での描画が多いプログラムでは全く不十分です。Casio Basic をより高速化するには、現在のところ2つの可能性があります。1つはチューンアップ (オーバークロック) による高速化、もう一つはアドイン版 Casio Basic (C.Basic) の利用です。

チューンアップ
これまで、fx-9860G、fx-9860GII そして fx-CG10 PRIZM / fx-CG20 それぞれの専用オーバークロックツールが、sentaro様により提供されてきています。いずれも比較的安全性が確保されており、私も愛用しています。但しオーバークロックは、ROM 内容が異常になったり、いずれかのチップが損傷をうける可能性があり、これらの結果電卓が正常動作しなくなった場合でもメーカー保証を受けられないので、自己責任で利用しましょう。

Casio グラフ関数電卓を限界までチューンアップ

本ブログでは、作者の sentaro様へ直接質問できるように、以下のエントリーがあります。このエントリ-では、fx-CG20 用の Ptune2 の紹介もしており、サポートも受けられます。
 ⇒ fx-9860GII のオーバークロック - Ftune2 -

fx-CG50 用のオーバークロックツール Ptune3 の開発も始まっていますが、まだβ バージョン段階で、今後一定の安全性を確保しつつさらに高速化できる可能性があります。そこで安定版リリースまでは、以下のエントリ-で情報交換を行います。
 ⇒ fx-CG50 のチューンアップ

ちなみに、各機種をチューンアップして上で紹介した モンテカルロ法による円周率計算の処理時間を比較します。

チューンアップした機種別処理時間の比較 
fx-CG50 tuned by Ptun3
fx-CG20 tuned by Ptune2
fx-9860GII tuned by Ftune2
97秒 (174秒)
108秒 (429秒)
23秒 (135秒)
1.8倍高速化4倍高速化5.9倍高速化
11.110.24
0.9010.21
4.214.701
カッコ内は標準での処理時間

チューンアップは、CPUコアクロックだけでなく、メモリバスクロック、I/Oバスクロック、ウェイトなどを機種に応じて調整します。ここでは、チューンアップの潜在能力を示すだけなので、個別のチューンアップ設定は割愛します。

fx-9860GII の標準での処理時間が 135秒なので、fx-CG50 も fx-CG20 もそれ以上に高速化できています。fx-9860GII はチューンアップで桁違いに速くなっています (これが現時点での fx-9860GII の利点とも言えます)。fx-CG50 用の Ptune3 の今後の進展が楽しみです。
 
アドイン版 Casio Basic (C.Basic)
C.Basic は、現在のところ fx-9860GII 専用版のみの開発が続いています。開発者はチューンアップツールと同じ sentaro様です。

C.Basic は、純正Casio Basic のソースをほぼそのまま実行可能で、特にグラフィック描画の高速化は目を見張るものがあります。
どのくらい速いかは、ここ にある動画を見れば一目瞭然です。現在は、主に海外からの要望に応えつつ、バージョンアップが進んでいます。

現在では、fx-9860G シリーズ用の C.Basic for FX と fx-CGシリーズ用の C.Basic for CG が公開されています。
C.Basic のトップページ
C.Basic for CG のトップページ

[2017/11/01 追記]
なお、fx-CG50 向けの C.Basic for CG の開発が始まっています。C.Basic の処理速度はアドインに近いものになります。この記事では、同じロジックでアドインとCasio Basic のグラフィック描画速度の違いから C.Basic for CG のポテンシャルの高さを紹介しています。公開されるのが楽しみです。公開されています。

 




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


 



keywords: CasioBasicプログラム電卓、fx-CG50

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

fx-9860GII のオーバークロック - Ftune 2 -

更新 2019/09/01

Ftune, Ftune2, Ftune3 がVer 1.20 に、Ptune2, Ptune3 が Ver 2.20 にアップデート 


fx-9860GII
Casio fx-9860GII は fx-5800P よりも高速ですが、それでもより速く走らせたいプログラムがあります。

 ⇒ fx-9860GII への移植 - ピタゴラス数
 ⇒ fx-9860GII への移植 - 素因数分解

fx-9860GII は、fx-9860G のマイナーバージョンアップの3代目ですが、マイナーバージョンアップするたびに処理速度が遅くなると言う不思議(/_;) fx-9860G の時に入手していれば良かったと後悔するも、時既に遅し。 

ところが、sentaro様のオーバークロック・アドイン - Ftune 2 - に出会って、事態は一変しました。最新の fx-9860GII 搭載の CPU の潜在能力を引っ張り出すオーバークロックを行うと、最新バージョンが最も速くなるようです。

現行機種の fx-9860GII (SH-4A搭載) は、ノーマルで 29MHz 程度。それを一気に 236MHz にしてくれます。その差は歴然で、上記の2つの移植記事の動画やデータを是非ご覧ください。

fx-9860GII は、対応SDKを用いてC言語でアドインプログラム開発でき、私は当初 プログラムをCで書いて処理速度を上げようと考えていましたが、Ftune2 を使えば、開発が楽な Casio Basic で十分だと言う気がしてきています。

どのくらい速くなるのか
グラフィックス描画のプログラムを作っていると、ノーマルクロックでは描画が遅くて、表示の確認に時間がかかることがあります。そんな時にオーバークロックを行えば、結果の確認が速くてストレスが減りますので、お勧めです。Ftune2 はプリセットクロックに簡単に切り替えができるのも、このような用途に向いています。通常はノーマルで必要な時だけクロックを上げて使えば良いのです。
 ⇒ fx-9860GII グラフィックス - モンテカルロ法

対応機種
対応機種は、fx-9860G シリーズ、fx-9860GII シリーズ、fx-CG20、fx-CG50、フランス専用機種 GRAPH35+II に対応しています。


カシオ グラフ関数電卓のオーバークロック・アドイン

オーバークロックツールは、当ブログの読者 sentaro様の作品で、アドインプログラムです。

作品群の概要は、

CASIO グラフ関数電卓を限界までチューンアップ 

を参照。

作品群には、以下のものがあります。
  • Ftune: CPU に SH3 を搭載した fx-9860G シリーズ、fx-9860GII POWER USB GRAPHIC(末尾に 2 が付かない)が対象
  • Ftune2: CPU に SH4A を搭載した fx-9860GII USB POWER GRAPHIC 2 が対象
  • Ftune3: フランス専用機 Graph35+E II が対象
  • Ptune2: fx-CG20 / fx-CG10 が対象
  • Ptune3: fx-CG50 が対象


最新版 のダウンロード
Ftune Ver 1.20
Ftune2 Ver 1.20
Ptune2 Ver 2.20
Ptune3 については、こちら




祝!Ftuneシリーズのファンが、海外でも増えています(^_^)/
海外にて、Ptun2, Ftune2 の優秀性が認められ、絶賛の嵐!確実にファンを増やしています。詳しくは、Sentaro様のオリジナルダウンロードページの一番下にある、それぞれのリンクを見てください(^^;) 開発の苦労話しや、安全性を確保する考え方(保証はありませんが...)...などが読めます。和訳は各自で御願いします(^^;)
==========


このエントリーのコメント欄を利用して、Ftune2 / Ptune2 のQ&A を 開発者の sentaro 様自らご対応頂けます。私自身、幾つかの質問があるので、この機会に色々と教えて頂こうと思います。よろしく御願い致します。
 


オーバークロックとはどのようなものか? [2014/12/15 追記]

半導体製品を工場で作る際、当然のことながら品質管理されています。製造工程では、製品の性能や品質にはバラツキがあり、従って全く同じものが100%正確に製造されると言うことは絶対にありません。製品仕様は製造工程での性能や品質のバラツキを考慮して、保証できる安全な範囲で決定されます。さらには技術論だけではなく、販売戦略上の理由も仕様決定に影響があります。程度の差はありますが実際に行われていることです。通常はかなりの安全マージンを取っていることが多いようです。

言い変えると、実際に出荷される半導体製品は仕様より必ず性能が高いわけです。そして仕様と実際の個体の実力の差に目を付けて、仕様以上の実際の性能を引き出すのがオーバークロックです。製品保証外の動作をさせるので、保証対象外の行為だと言うことは自覚してください。

仕様以上の性能を引き出すオーバークロックは、メーカーの代わりに高負荷試験を行っているのと全く同じと言えます。幸運なら何も起こりません。逆に不運なら製品寿命が短くなる可能性があります。つまり、自己責任の世界です。

さて、Ftune2 は、過激な設定変更をさせないために設定範囲を決めるメニューを備えています。だから私は使用しており、本エントリーで取り上げさせて頂きました。

万一 fx-9860GII が故障したとしても、それはオーバークロックを行ったあなた自身の責任ということは、忘れないでください。当ブログで情報は提供しますが、不運な結果については作者や私が責任を負うことはありませんので、ご留意ください。


とは言っても...

CPUのクロック以外にも、種々の設定をバランス良く試してみることで、色々と違った結果が出ます。 
ベンチマークとして高い数値を狙うもよし、実際の Casio Basic を動かす時の高速化を狙うもよし、C言語で作ったアドインの高速化を狙うもよし、様々な魅力、魔力があるのが、オーバークロックの世界です。

私は、リスクを承知の上で、色々と遊ばせてもらっています。






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


 



keywords: fx-9860GIIプログラム関数電卓、オーバークロック

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

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

fx-5800P 素因数分解 - 高速化

追記修正 2019/08/28

今回は、fx-5800P の素因数分解プログラムの高速化の話題です。

素因数分解の一般的な方法は、"エラストテレスのふるい" と言われるものです。最初に入力した数 N を小さい順に素数で割り算を繰り返す方法です。最大の素因数は N の平方根以下の整数なので、平方根以下の整数を対象に2と3以上の奇数で割り算を行う方法で fx-5800P での素因数分解プログラムを作っています。
⇒ fx-5800P 素因数分解 - バグ修正と表示変更

さらに高速化する方法は無いものかと、色々と考えたり、試したりしていました。
例えば Casio 関数電卓の素因数分解 など。



最速の素因数分解プログラム

最近、目からうろこの高速化を達成した記事を見つけました。
A fast prime factorizing program for Casio fx-5800P 
このトピックで、作者の slugrustle 様 は、2つのプログラムを公開されています。いずれもプログラム名は FACTOR です。
オリジナルは、上のサイトをご覧ください。

これらには、面白い工夫がなされています。その部分には手を付けず、表示やユーザーインターフェースの不具合(と私が思うだけですが...)を解消するために、チョット変更しました。


1本目のプログラムの変更版:
結果の表示を 3^2 と乗数を表示し、List にも乗数の結果が FREQ に反映するように変更しました。
FACTOR-M1 のダウンロード

FACTOR-M1_1 FACTOR-M1_2 
FACTOR-M1 の結果出力 - 左: 乗数表示、- 右: [MODE] [3] で現れる List表示


2本目のプログラムの変更版:
オリジナルプログラムでは、結果表示画面を、複数ページで切り替えて自由に見られるようになっています。[EXE] [▲] [▶] [+] で次のページを表示、[(ー)] [▼] [◀] で前のページを表示、[EXIT] [DEL] でプログラムを終了するようになっています。計算が高速化しているだけでなく、結果表示も良くなっています。

このキーの使い方がチョット馴染まないので、[▼] で次のページ、[▲] で前のページ、[+] は使えないようにし、指定以外のキーを押した時の誤動作を抑制するように修正しました。時間をかけて計算できた結果が、誤動作で見えなくなるのは嫌ですから...
さらに、オリジナルはキーを軽く押しても応答せず長押しが必要、つまり応答がとても悪いので、キー入力待ちを最小のループにして応答を十分高速にしました。軽くキーを1回押すだけで、チョット待ちますが必ず画面が変わります。
またオリジナルでは結果表示一覧で素因数として 1 が表示されますが、1 は素数ではないので、素因数として 1 が表示されないように修正しました。
FACTOR-F1 のダウンロード

FACTOR-F1_1  FACTOR-F1_2 
FACTOR-F1 の結果表示 - 全結果を画面切り替えで確認、左: 2/1ページ、右: 2/2ページ


比較のための以前作った PRIME DECOMP:
PRIME DECOMP のダウンロード

Prime_Decomp_2 Prime_Decomp_3 


上記でダウンロードしたZIPファイルには、それぞれ CCL ファイルと TEXT ファイルが含まれています。CCL ファイルは CcLinker を使って fx-5800P に転送できます。或いは、下のリンクからテキストファイルを参考にしてください。



計算時間の比較

先ずは、fx-5800P でどのくらい高速化されたかの結果を示します。

PRIME DECOMP
ソースコード
FACTOR-M1
ソースコード
FACTOR-F1
ソース (メインルーチン)
ソース (サブルーチン)
123,456,789
= 32 x 3607 x 3803
170 秒60 秒
3 倍高速化
42 秒
4 倍高速化
6,666,666,667
= 19 x 1627 x 215659
77 秒27 秒
3 倍高速化
20 秒
4 倍高速化
7,849,516,203
= 32 x 9811 x 88897
458 秒165 秒
3 倍高速化
111 秒
4 倍高速化

1本目の FACTOR-M1 で3倍高速化、さらに2本目の FACTOR-F1 は4倍高速化されていることが分かります。

素因数分解は、与えられた数を小さい数から順に割ってゆく時、その操作の回数を減らせば、高速化に繋がります。
PRIME DECOMP では入力した数に、先ず平方根をとって一気に探査範囲を狭め、2と3以上の奇数で小さい方から順に割り算してゆく作戦です。

一方で、理想的なのは、小さい素数から素数だけで順に割り算してゆくことです。それには素数リストが必要ですが、それがあれば苦労しません。素数を算出する計算式などありません。

さて、slugursite様の工夫は、高い確率で素数を見つけるだけでなく、割り算する候補 (例えば、2 や 3 だけでなく、一旦割り算で使った素数の倍数) を効果的にふるい分ける手法にあります。そして、最初の FACTOR-M1 よりも 次の FACTOR-F1 の方が、素数を見つける確率が高くなっているので、さらに高速化されています。



最速プログラムでの工夫 [2019/07/31]

読者のまつ様から、高速プログラムの考え方をご説明頂きました。私はこれに大変納得しましたので、それを掲載致します。以前の記述は撤回させて頂きます。

素因数分解プログラムで通常行われている割り算では,「2,および,3以上の奇数」を割る数としています。
これですと,ご存知のように,例えば3で割り切った後に9でも割るという無駄が出てしまいます。
FACTOR-M1は,「2, 3, 3より大きい3の倍数を除く奇数」を割る数としており,3で割ったあと9や15で割ることはないようにしています。

3より大きい3の倍数を除く奇数について考えてみます。

まず,3より大きい3の倍数でない整数は次の(1),(2)のどちらかです。
 3m+1 (1)
 3m+2 (2)
 (m>=1)

次に(1),(2)が奇数となる式をそれぞれ求めます。

(1)は (2m+1)+m と変形できます。2m+1 は奇数ですから,(1)が奇数であるためには m が偶数である必要があります。そこで m=2n (n>=1) とおけば,(1)は 6n+1 となります。

(2)は 2(m+1)+m と変形できます。2(m+1) は偶数ですから,(2)が奇数であるためには m が奇数である必要があります。そこで m=2n+1 (n>=1) とおけば,(2)は 6n+5 となります。

5とこれらの式を並べ,さらに,隣り合う式の差も書き加えると次のようになります。(n=1とします)
式の並び隣り合う式の差
52
6n + 14
6n + 52
6(n+1) + 14
6(n+1) + 52
6(n+2) + 14
6(n+2) + 52
:
:
:
:
このような訳で,2, 4, 2, 4, ... と加算していると思われます。
この繰り返しは,6n+1 および 6n+5 の式からも分かるように,2と3の最小公倍数6を周期としています。

FACTOR-F1は,これを拡張して,割る数として
 奇数,かつ,3の倍数でない,かつ,5の倍数でない,かつ,7の倍数でない整数
を順番に求めていく方法をとっていると思われます。
2,3,5,7の最小公倍数は210ですから,隣り合う割る数の差(2,4,6,8など)の並びは210が1周期です。
FACTOR-F1の場合は,13+210n〜13+210(n+1)-1 [n>=0]の範囲で,2,3,5,7のいずれの倍数でもない整数を並べて,隣り合う整数の差をリストにしていると思われます。

ちなみに,13〜222の210個の整数のうち,
 奇数,かつ,3の倍数でない,かつ,5の倍数でない,かつ,7の倍数でない整数
の個数は,FACTOR-F1の「While 1」の下にある
 B+2→B:A÷B→D:Frac(D)=0⇒Prog "WFSUB":B>C⇒Goto 1
のパターンの行数と同じ48個です。

48個となる理由は次の通りです。

まず,2,3,5,7の倍数に関わるそれぞれの個数を求めます。

2の倍数の個数=210/2=105
3の倍数の個数=210/3= 70
5の倍数の個数=210/5= 42
7の倍数の個数=210/7= 30
 
2と3の公倍数の個数= 6の倍数の個数=210/ 6=35
2と5の公倍数の個数=10の倍数の個数=210/10=21
2と7の公倍数の個数=14の倍数の個数=210/14=15
3と5の公倍数の個数=15の倍数の個数=210/15=14
3と7の公倍数の個数=21の倍数の個数=210/21=10
5と7の公倍数の個数=35の倍数の個数=210/35= 6
 
2,3,5の公倍数の個数= 30の倍数の個数=210/ 30=7
2,3,7の公倍数の個数= 42の倍数の個数=210/ 42=5
2,5,7の公倍数の個数= 70の倍数の個数=210/ 70=3
3,5,7の公倍数の個数=105の倍数の個数=210/105=2
 
2,3,5,7の公倍数210の個数=210/210=1

重複を考慮すると,
2,3,5,7のいずれかの倍数の個数
=(105+70+42+30)-(35+21+15+14+10+6)+(7+5+3+2)-1
=162

従って,2,3,5,7のうちどの倍数でもない整数の個数は,
 210-162=48
で 48個となります。


素因数分解の正しい動作を検証

この作者は自分のプログラムを検証するテストプログラムまで作って、ソースコード (C++) を公開しています。fx-5800P 用なので、素因数分解する数は最大10桁と決まっています。この条件下でアルゴリズムの正しさを検証しています。

検証プログラムのソースコードが公開されています。そこで Visual Studio 2019 Community でビルドしました。


 FACTOR-F1 のテストプログラム Factor.exe のダウンロード [2019/08/28 リンクを修正]

コマンドプロンプトで、Factor.exe のあるデイレクトリに移動し、そこで

 Factor 1000 50000 4

と入力してエンターキーで実行すると、1000 から 50000まで 4 刻みで入力を変化させて FACTOR-F1 を実行した結果を一気に連続して自動実行してくれます。そして、結果が素数がどうか判定し、素数でないものが出てくるとエラーを出し、素数であれば実行を継続します。正常終了すれば、正しく素因数分解が実行されたことになります。

factor_1
正常終了しているので、1000 から 50000 までの素因数分解は問題ないことが検証されました。


fx-5800P 用のプログラムなので、入力値は 1 ~ 9,999,999,999 (10桁) の範囲なので、完璧にテストするには、

 Factor 1 9999999999 1

とすれば良いのですが、試しに私のPCだと、1晩で150億回分の検査が済みました。 10桁に相当する (1000億 - 1) 個全部のテストは、夜のみ終夜運転で計算させるとして1週間程度必要になりそうです。

factor_2
1 ~ 9,999,999,999 までのテスト中

テストが正常終了すれば、このアルゴリズムが正しいことが検証されます。但し、他のパラメータ設定でも正しい組み合わせは有りそうです。



グラフ関数電卓用に移植

FACTOR-F1 をグラフ関数電卓用に移植しました。素因数分解の計算部分は変更の余地がありませんが、結果表示は7行全部を使うように変更しました。

グラフ関数電卓用 FactorG のダウンロード

FactorG 
FactorG の結果表示


今回は、slugrustle 様による投稿の解説記事になってしまいましたが、私としては十分楽しませてもらったので、記事にして残そうと思いました。




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


 


keywords: プログラム関数電卓、fx-5800P、素因数分解、プログラミング、Casio Basic

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

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

fx-5800P Casio Basic をPCでコーディング - CcEditor

2018/02/12
追記修正 2019/08/13

fx-5800P の Casio Basic をPCでコーディング - CcEditor

[2019/05/06] CcEditor が Ver 2.2 にアップデート
ダウンロードはこちら


Pclink_fx-5800P_2
fx-5800P の Casio Basic プログラムがPCとデータリンク可能になったことを既に紹介している。

ついに fx-5800P がPCリンク可能になった

一旦PCにバックアップされたプログラムをPC上で編集するためのエディタ - CcEditor が、同じく takumako様により公開されている。

CcEditor は、CcLinker でバックアップしたプログラムの編集だけでなく、最初からプログラムを書ける。さらに fx-5800P で公開されていない隠し機能を使って、Casio Basic を拡張して使うこともできる。

そこで、実際に CcEditor を 現時点で最新バージョンの Windows 10 で使ってみたので、紹介する。


目 次

  CcEditor のダウンロードと起動

  CcEditor の基本コンセプト

  CcEditor の操作と拡張機能
    CCLファイルのインポート&プログラム変更 ⇒ fx-5800P へ転送
    CcEditor だけでプログラム作成 ⇒ fx-5800P へ転送





CcEditor のダウンロードと起動

CcEditor 最新版は ダウンロードページ からダウンロードできる。

ダウンロードし最初に実行すると、Windows の保護機能が発動する。

PC_Protection.PNG

詳細情報 をクリックすると [実行] ボタンが現れるので、これをクリックして 実行。次回からは保護機能の警告は出ない。


[2018/08/07 追記]
 CcEditor Ver 1.6e 以降は、この問題を回避するために フリーの圧縮解凍アプリ CGA にで圧縮されたファイル(拡張子がCGA)での提供に変更されている (詳しくはコチラを参照)。



<目次に戻る>



CcEditor の基本コンセプト

CcEditor の基本コンセプトを理解するとスムーズに使える。先ず File メニューを示す。
Booted_CcEditor13.PNG

Project (プロジェクト)、Build (ビルド)、Import (インポート) という項目があることに着目して欲しい。

fx-5800P から CcLinker でPCにバックアップすると拡張子が ccl の CCL ファイルフォーマットになる。
また CcEditor が扱う専用ファイルフォーマットには、CCLファイル に加えて拡張子が cce の CCEファイルがあり、CcEditor で編集した内容を保存するために用いる。CcEditor の編集画面は、fx-5800P のプログラム編集画面よりもコードが見やすくなっており、そのための特殊文字や制御文字を加えて内容を保存するための専用フォーマットにしているのが CCEファイルだ。

さて、CcEditor は単なるエディタではなく、簡易的なプログラム開発環境になっていると理解すると良い。つまり CCEフォーマットで扱うファイルは Project (開発プロジェクト) ファイルという扱いになっていて、fx-5800P に転送できるフォーマットになっていない。

そして編集が終われば、一旦 Build (ビルド)という操作を行って、fx-5800P に転送するための最終的な CCLフォーマットに変換する。この概念は、コンパイラ型言語 (C++ や C# など)と同様で、プログラムコードはプロジェクトファイルとして編集・保存し、これをコンパイル&ビルドすることで、実際に使える実行ファイルや中間コードファイルに変換する、という考え方に基づいている。

なお、File メニューに Import (インポート) 項目があり、これは CCL ファイルを取り込む操作だ。


以上をまとめると、CcLinker でバックパップした CCL ファイルImport (インポート)で読み込んで編集できる。それをファイルとして保存するには、CCE ファイル ( = Projectファイル) として保存する。CCEファイルを Build (ビルド)すれば fx-5800P に転送可能な CCLファイルに変換して保存する。

CcEditor で最初からコーディングすることもできる。その場合も CCE ファイル (= Projectファイル) として編集・保存する。或いは Build (ビルド)することで fx-5800P に転送可能な CCLファイルとして保存する。いずれにせよ CcLinker で fx-5800P に転送する前に、CcEditor で Build して CCLファイルに変換しておく必要がある。

以上の概念を理解すると、CcEditor をスムーズに使えると思う。
<目次に戻る>



CcEditor の操作と拡張機能

代表的な使い方を試したので、それを紹介する。拡張機能は随時追加されているので、ここでは全て触れていない。

[2019/05/08 追記] デバッグモード
デバッグモードが秀逸だ。fx-5800Pを CcLinker で接続した上で CcEditor の画面でデバッグができる機能だ。指定変数値のウォッチ、ブレークポイントの設定が可能で、PCの広い画面でデバッグができるため、プログラム全体の見通しが良くなり、とても効率が良い。⇒ デバッグモードの説明

詳細は takumako様のCcEditorのページで確認して欲しい。


CCLファイルのインポート&プログラム変更 ⇒ fx-5800P へ転送

初めて使うことを想定して、少し細かく説明する。

題材として、以前紹介している ピタゴラス数を計算して表示するプログラム (PYTHAGORAS) を変更して fx-5800P へ転送してみる。

PYTHAGORAS の CCL ファイル (PYTHAGORAS COMP 0142.ccl) のダウンロード
事前にダウンロードしたファイルを 全て大文字のファイル名 PYTHAGORAS として fx-5800P に転送して欲しい。その上で、以下の説明を見ながら、実際に操作して進めると分かり易いと思う。。

さて、CcLinker で fx-5800P から (再度) PCに転送し、ファイル名を小文字混じりの Pythagras.ccl として転送 (バックアップ) する。操作方法は "ついに fx-5800P がPCリンク可能になった" 参照。

CcEditor を起動し、PYTHAGORAS.cclImport で読み込む。
Import_Pythagoras13.PNG 

ファイル選択ダイアログで、PYTHAGORAS COMP 0142.ccl を選んで、[開く] をクリックする。

PYTHAGORAS COMP 0142.ccl が読み込まれ、ソースが表示される。
Imported_Pythagoras13.PNG 

このプログラムは、終了させるには [AC] キーを押す。そこで、[AC]たけでなく [EXIT]キーでも終了できるように変更してみる。
ここでは、例えば下から9行目の Doの下に

Getkey=73⇒0→L

を追加、Lbl 0 の上に

1→L

を追加し、最後の行を

L⇒Goto 0
Cls

に変更してみる。これで、ピタゴラス数が連続表示されている時に [EXIT] キーを長押しすると、画面クリアしてからプログラムが終了するようになる。

プログラムコマンドは、[Program]ボタンを押して現れるコマンドリストから入力する。"", "="、""、"Getkey" はコマンドリストから入力、数字はキーボードから直接入力できる。

変更が終わったので、一旦 CCE ファイルとしてプロジェクトを保存する。

[File] - [Project] - [Save] とすると、
Save_Project_PYTHAGORAS_CCE_13.PNG 

ファイル選択ダイアログが表示されるが、ファイル名の欄は左詰めになっていないので、左端までスクロールしてファイル名を確認する。[2018/02/21 追記] Ver 1.3 で左詰め表示がされるようになった。

ここでは、試しに 頭の P 以外を小文字にしたファイル名 (Pythagoras.ccl) にしてみる。
Pythagoras_Save.PNG 

[開く] をクリックすると、プロジェクト Pythagoras.cce が保存される。指定フォルダに保存されていることを確認する。

Check_Saved_Pythagoras.PNG
さて、プログラム文法をチェックするために、[File] - [Check] を選択。
Check_Pythagoras13.PNG 

Check
されると、コマンドに色が付く。もしエラーがあればエラーメッセージがポップアップする。
Checked_Pythagoras13.PNG 

fx-5800P に転送可能な CCL ファイルに変換するために、[File] - [Build] を選択すると、
Build_Pythagoras13.PNG 

Check
を選んだ時と同じ文法チェックが自動的に行われ、エラーがなければ、確認ダイアログが現れる。

Building_Pythagoras13.PNG 

[はい] をクリック

FileSelect_Final_CCL.PNG

ファイル選択ダイアログで [開く] をクリックして、Pythagoras COMP.ccl を保存する。ここでオリジナルの Pythagoras.ccl とは異なるファイル名にしておくことを勧める。

Saved_Pythagoras_CCL.PNG
Pythagoras COMP.ccl が保存されていることを確認。

最後にこれを CcLinker で fx-5800P に転送する。そこで先ず、fx-5800P と CcLinkerドングルを繋ぎ、ドングルをPCに刺し、CcLinker を起動する。

或いは CcEditor Ver 2.0  以降では Add-In 機能から CcLinker を直接呼び出せる。

StartUp   

fx-5800P で [MODE] - [▼] - [1](1:LINK) - [2](2:Receive) を押すと、CcLinkerアプリは自動的に Transmit モードになり、ファイル選択ダイアログが表示される。ここで Pythagoras COMP.ccl を選ぶ。

Transmit_Pythagoras_CLL.PNG

[開く] をクリック (或いは ファイルをダブルクリック) すると転送が始まる。

転送が正常に終わると fx-5800P と CcLinnker の両方で Complete! と表示される。 

fx-5800P で動作確認してOKなら、プログラム変更は成功だ。



CcEditor の拡張機能 (1) - 小文字ファイル名が使える

fx-5800P のプログラム名は大文字アルファベットと数字に限定されるが、上の例のようにファイル名に小文字を使ってfx-5800Pに転送すると、大文字だけのファイルと共存できることが分かる。
<目次に戻る>


CcEditor だけでプログラム作成 ⇒ fx-5800P へ転送

CcEditor で最初からプログラムを作る例を紹介する。

CcEditor を起動する。
Started_CcEditor13.PNG

Project 名が Default、その右で動作モードが COMP になっている。
ここでは、Project 名に test と入力、動作モードは COMP のままにする。そしてプログラムコードを入力する。
test_code13.PNG 

プログラムコードは下記のようにした。赤文字部分は純正Casio Basicでは入力できない表記だ (ところが実行するとエラーにならない、以下参照)。

"CcEditor Test"
1→a
2→αⓑ
Locate 1,2,
a①+αⓑ



CcEditor の拡張機能 (2) - 表示に小文字アルファベットやギリシャ文字が使える
純正Casio Basic では入力できない小文字アルファベットやギリシャ文字、添え字を文字列の1部として出力できる。

CcEditor の拡張機能 (3) - 小文字アルファベット、ギリシャ文字が変数として使える
  • 純正では使えない小文字アルファベットが変数として使える。
  • 純正で使えないギリシャ文字が変数として使える。
はエディタでの表示は〇に囲まれているが、1文字変数の添え字となる。
プログラムを fx-5800P に転送すると、電卓上では、添え字付き変数 a1αb と表示される。それぞれ1文字変数の添え字になっていて、変数として正常に使える。添え字が異なると別の変数として使えるので、使える変数が大幅に増える。

小文字アルファベットの入力は、キーボードから直接入力できる。
ギリシャ文字や〇で囲まれる添え字は、[Function] ボタンを押して現れる Functionメニューで [ALPHA] を選び、プルダウンメニューから選んで入力する。

Surfix_number.png


CcEditor の拡張機能 (4) - 1文字変数に添え字を付加して別変数として使える
  • [Function] ボタン - [ALPHA] ⇒ プルダウンメニューから入力
  • 〇に囲まれた文字は添え字入力に使う

入力が終われば、一旦 test プロジェクトとして保存 (test.cce 保存)。そして Build して CCL ファイル (test.ccl) に変換する。
最後に CcLinker で fx-5800P に転送する。

転送後、Prog List では小文字のプログラムファイル名 test が見つかる。コードを表示させると以下のようになる。

"CcEditor Test"
1→a1
2→αb
Locate 1,2,a1b

これを実行すると、出力は以下になり、小文字アルファベットやギリシャ文字が添え字付きで変数として正常に使えていることが分かる。

CcEditor Test
3


なお、これらの 小文字出力や 小文字変数、ギリシャ文字変数、添え字付き変数は、fx-5800P の Casio Basic に既に備わっている隠し機能であり、CcEditor によってこれら隠し機能が使えるようになる。
<目次に戻る>



今後、必要に応じて随時追記・修正してゆく。




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


 



keywords: fx-5800PCasioBasic、データリンク、CcLinker

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



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

ついに fx-5800P がPCリンク可能になった

2018/02/10
更新 2019/08/13

fx-5800P と PCのデータリンクを使いこなす CcLinker


アップデート状況
  • CcLinker Dongle の頒布 ⇒ 詳しくはこちら [2019/05/08]
  • CcLinker が Ver 4.0a にアップデートダウンロードはこちら [2019/05/08]
    ※ fx-5800Pと連動して自動化され、さらにWindowsバージョンの違いによる誤動作発生が低減されました


はじめに

小型でバランスのとれた fx-5800P での Casio Basic プログラミングは、当ブログの重要テーマです。しかし致命的な問題として、カバーのヒンジが壊れやすいこと、そしてPCとのデータリンクができない点が挙げられる。これについては "fx-5800P プログラムのバックアップ" で取り上げている。

本来カシオが提供すべきものだと思うのだが、fx-5800P 発売から10年以上経ても、カシオ自身やサードパーティからまだ提供されていなかったが、ついに待ち望んだPCとのデータリンクが実現した

以前から、fx-5800P のデータリンクが検討されてきた。当ブログにおいても、"fx-5800P プログラムのバックアップ" の記事に kikkawa様や AkSd様のコメントで、データ解析ができて、なんとかなるかも知れないというコメントを頂いていた。そして、AkSd様の 関数電卓ファン掲示板 で様々な情報交換がなされ、応援コメントなども集まるようになった。

その中で、takumako様 が CcLinker というデータリンクツールを完成なさった。

takumako様の CcLinkerホームページ

現在は、ファームウェア書き込み済みの以下のような形態で頒布なさっている。
 CcLinkerDongle 

購入方法の詳細は、CcLinker Dongle の頒布 を参照のこと。


CcEditor の紹介

CcLinker で転送したプログラムファイル (CCLファイル) を CcEditor というプログラミングアプリで編集・作成すると fx-5800P の隠し機能が使えてプログラミングの幅が広がる。また、ソースコードにインデントが付けられたり、Getkey のキーコードが簡単に入力できたりと、CcEditor は fx-5800P 専用の優れたプログラミングツールだ。 CcLinker と合わせて CcEditor を使う価値は十分ある。

[2019/05/08 追記]
CcEditor は Ver 2.2 にアップデートされ、さらに使い勝手が改善されている。
CcEditor の簡単な紹介


CcLinker Dongle の導入

NewUSBDongle実際に CcLinker Dongle を入手して使ってみた。左の写真は私が入手した最新のものだ。

[2018/08/07 追記]
できるだけ多くの方に使って頂きたいという作者のtakumako様のお考えから、期間限定を無くして、いつでも有償頒布を受け付けるとのこと。とてもありがたい話だ。

fx-5800P をPCとリンクするには、写真の USBドングルとWindows デスクトップアプリを使う。




実際にWindows 10 で使ってみたので、以下に紹介する。


デバイスドライバーのインストール

先にUSBドングルをPCに奥まできちんと刺し、添付の Windowsデスクトップアプリ - CcLinker を起動すると、自動的にデバイスドライバのインスト-ルが始まる。Windows 10 では、右下にインストールが終了した旨のメッセージが現れる。但し、Windowsアプリのウィンドウは表示されない。

一旦デバイスドライバがインストールされた後 CcLinker アプリを起動するとアプリウィンドウが表示される。


PC保護の警告

Ver 1.6d 以前の CcLinker を初めて起動するとき、Windowsの保護機能が発動してしまう。

PC_Protection.PNG 

自作プログラムでは、最初は間違い無くこれが表示される。CcLinker も危険ではないのに大きなお世話である。気をつけるべきはダウンロード先は作者のオリジナルサイトを使うことだ。おそらく Microsoft がユーザーのPCからインストールプログラムを監視し、そのデータを抽出し、多数決方式でインストール数が少なければ一旦待ったをかける機能だろうと思われる。

ここで、詳細情報 をクリックしたら現れる [実行]をクリックし、アプリを実行すれば次回からこの警告は現れない。
自作プログラムがPC保護機能に引っかかる

[2018/07/31 追記]
CcLinker Ver 1.6e 以降は、この問題を回避するために フリーの圧縮解凍アプリ CGA にて圧縮されたファイル(拡張子がCGA)でも供されている(詳しくはコチラを参照)。

[2019/05/08 追記]
CcLinker Ver 4.0a は zipファイルでの提供もされている。古いバージョンからのアップデートなら zipファイルを入手上書きすれば良く、PC保護機能に引っかかることはない。



CcLinker の起動

最初に USBドングルとfx-5800Pを接続した後、USBドングルをPCに刺す (確実に接続する方法)。
その後 Windowsアプリ CcLinker を起動する。無事に起動すると、CcLinker のウィンドウが表示される。

Pclink_fx-5800P   StartUp    

CcLinker Ver 2.0b 以降は [Transmit] ボタンと [Receive] ボタンが廃止され、fx-5800P 上で Transmit や Receive を選択した時に CcLinkerが自動的に連動するようになった。Ver 2.1a で画面の背景に薄い色が付き、見やすくなった。 

もし、ドングルを刺さずに アプリを起動すると、エラーメッセージが表示される。

Boot_Error.PNG 

そこで、メッセージに従って ドングルを刺してから [OK] で、正常起動する。




CcLinker の終了

USBドングルを外す前に、CcLinkerアプリを必ず先に終了させる。
そうでないとエラーになり、結局 CcLinkerを強制終了することになる。




CcLinker の操作
 
CcLinkerアプリには [AC] ボタンしかない。基本操作は 接続した fx-5800P で行い、PC上ではファイルやフォルダの選択操作のみを行うようになっている。

fx-5800P からPCへ特定のプログラムファイルを転送 (PCにバックアップ)

CcLinker は、fx-5800P のプログラムファイルを CCL ファイル (CcLinker独自フォーマットのファイル形式)でバックアップする。

試しに、"fx-5800P【ゲーム】:Hit & Blow" で作ったプログラムのメインルーチンをPCにバックアップしてみる。私の fx-5800P ではメインルーチンのプログラム名を HB に変更している。

fx-5800Pを繋いだUSBドングルをPCに挿入した後 CcLinkerアプリを起動。


Pclink_fx-5800P   StartUp 

アプリでは何もせず、fx-5800P で、[MODE] - [▼] - [1] (LINK) - [1] (Transmit] - [2] (Select) と押し、
Select Data で バックアップしたいプログラム (今は "HB") にカーソルを合わせ、[1](SEL) を押し、最後に [0] (TRAN) を押す。
Transmit OK?[EXE] (Yes) を押すと、PCの一時ファイルに一旦バックアップされ、CcLinker と fx-5800P の両方でCompleted! と表示される。

CompleteSave  

そして、バックアップ先を選択するフォルダの選択画面が現れるので、そこでハックアップ先のフォルダを指定する。

SelectSaveFolder   

ファイル名を変更せず、そのまま [開く] ボタンをクリックすると、一時フォルダに一旦転送されたファイルが、指定したフォルダに移動される。


ここで最初に表示されるファイル名は、fx-5800Pに保存されているファイル名のうしろに COMP [ファイルサイズ] の情報が付加されている。この例では、HB COMP 027.cll になっている。ここでファイル名を自由に変更可能で、変更されたファイル名でバックアップできる。

なお、HB COMP 0127 の "COMP 0127" の部分は 必ずしも必要ではなく、消してしまっても問題ない。COMPモードのファイルであることを明示的に示すだけで、0127 はファイルサイズだ。

このファイル選択画面は、いわゆるコモンダイアログになっており、右クリックして現れるメニューから新規にフォルダを作ってからそこへ保存するなど Windows標準の操作ができる。


fx-5800P からPCへ全てのファイルを一気に転送 (PCに全てバックアップ) - Ver 1.7 以降 [2018/08/18]

fx-5800P のプログラムを全て一気にPCに転送できる。

上と同じ要領で、fx-5800P とPC を USBドングルで接続してから、CcLinker アプリを起動する。

CcLinkerアプリでは何もせず、fx-5800P で [MODE] - [▼] - [1] (LINK) - [1] (Transmit) - [1] (All) 、そして [EXE] をキーインする。

すると、「ファイルを選択してください」ダイアログが現れるので、バックアップするフォルダに移動するか、右クリックして新たにフォルダを作り、 [開く(O)]をクリックするか PCの [Enter] キーを押す。これで、電卓内の全てのプログラムがPCへ転送される。

保存先フォルダに同名ファイルがある場合は次のポップアップが現れる。

OverwriteFile  

ここで、[はい(Y)] を押すと、他に同名ファイルがあっても上書きコピーされる。無事に転送が終わると、fx-5800P と CcLinker アプリの両方で Completed! と表示される。

上書き確認は安全のため表示されるが、頻繁に表示され面倒になり、バックアップを中止したい時は、[キャンセル] を押せば、一連の転送そのものをキャンセルできる。

なお、何かエラーが発生したら、エラーメッセージが表示される。エラーメッセージで [OK] をクリック後、CcLinker アプリで [AC] をクリックして一旦バックアップを中止し、バックアップをやり直す。何度か繰り返す必要があるかも知れない。


PCから fx-5800P へ特定のプログラムファイルを転送 (電卓に転送)

CcLinker でバックアップしたCCLファイルを fx-5800P にプログラムファイルとして転送する。

fx-5800P をUSBドングルに繋いだ上で、ドングルをPCに刺し、CcLinkerアプリを起動する。

StartUp    

CcLinker アプリでは何もせず、fx-5800P で [MODE] - [▼] - [1] (1:LINK) - [2] (Receive) と押すと、保存するファイルの選択画面が現れる。

SelectResumingFile  

このファイル選択ダイアログで、転送したいファイルを選び [開く] ボタンをクリック。

既に同名ファイルがある場合は、上書きして良いかを確認するメッセージが現れるので、

OverwriteFile   

[はい(Y)][いいえ(N)] をクリックして先に進む。

OverWightBackFile_Disp 

無事に転送されると、fx-5800P と CcLinker の両方で Complete! と表示される。

BackUpAllCOmplete.png 




PCから fx-5800P へ全てのファイルを一気に転送 (電卓に全て転送)  [2018/08/18]

PCにバックアップしたファイルを一気に fx-5800P に転送できる。

fx-5800P で [MODE] - [▼] - [1] (LINK) - [2] (Receive) をキーイン。CcLinker アプリで [Transmit] クリックする。するとTransmit コモンダイアログが開くので、そこでfx-5800P へ転送するファイルのあるバックアップフォルダを開き、転送するファイルを選ぶ。[Ctrl]-[A] で全て選択するか、[SHIFT][Ctrl] を押しながら複数ファイルを選択し、[開く(O)] クリック。これで、選択したファイルが一気に fx-5800P に転送される。

転送が無事に完了した時は、fx-5800P と CcLinkerアプリの両方で Completed! と表示される。

fx-5800P に同名ファイルが有る場合は、見つかる度に以下のポップアップが表示される。

OverWightBackFile 

転送を中止したいときは、fx-5800P で [AC] (Cancel) を押すか、このダイアログで [キャンセル] をクリックする。




fx-5800P プログラムをCCLファイルで公開

当ブログで公開している fx-5800P 用プログラムファイルは、今後 CCLファイルでダウンロードできるようにしてゆく予定だ。

これまでは、プログラムを fx-5800P に手入力するしかなかったが、ダウンロードしたCCLファイルを CcLinker を使って fx-5800P に転送できるので、インターネットを使った fx-5800P のプログラムの流通が容易になる。



CcEditor

Takumako様のホームページ では、CcEditor が公開されている。

これを使うと、fx-5800P の Casio Basic をPC上でコーディングし、CcLinker で扱える CCL ファイルに変換できる。CCL ファイルを変更し、CCLファイルに変換することも可能だ。

それ以上に CcEditor の面白いところは、fx-5800P の Casio Basic で公開されていない機能を使うことが出来る点にある。
  • 表示文字列としてアルファベットの小文字、ギリシャ文字(大文字と小文字)が自由に使える
  • 変数にアルファベット小文字やギリシャ文字(大文字と小文字)が使える
  • 変数に添え字として数字アルファベットギリシャ文字を使える。
"fx-5800P Casio Basic をPCでコーディング - CcEditor" を参照。 

CcLinkerCcEditor を併用すると、fx-5800P の隠し機能として、表示に小文字が使え、使える変数が大幅に増加するので、fx-5800 Casio Basic プログラミングの幅が大きく広がる。



今後、何か分かれば随時追記修正してゆく。



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


 


keywords: fx-5800PCasioBasic、データリンク、CcLinker

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


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

fx-5800P の破損ヒンジの交換、ついでにリニューアル

2018/02/24
追記 2018/02/25
追記修正 2019/06/30

fx-5800P の破損ヒンジ交換

fx-5800P の大きな弱点の1つがハードカバーのヒンジが容易に壊れる点だ。
fx-5800P:ヒンジ破損でカバーが取れた

そこで、接着剤で破損拡大の予防を試みた。
fx-5800P カバーヒンジ破損の対策
破損拡大の予防効果はあり、クラックを補修後2年ほど延命したものの、結局壊れてしまった。

そこで、きちんと完璧に修理するためにヒンジ交換を行いたいのだが、一時期部品として入手が難しかった。

私が知る範囲では、カシオの部品としてヒンジと金属のスプリングピンを購入して修理した具体的で分かり易い事例が以下のページで紹介されている。

Motoruu Instruments:fx-5800P のヒンジを直す 修理

この記事は 2012年10月のものだ。5年以上経過し状況が変わり、部品をかなり安く購入でき、修理できたので改めて紹介しようと思う。

[2019/06/30 追記修正]
コメント欄に貴重な情報を頂きました。
ピン付きヒンジの型番が現在では変更されていること(以下で修正致しました)。
さらに、修理対応は 2025年迄になっているというカシオのサポートからの情報も頂きました。
と、いうことは部品保有期間5~6年とするなら、fx-5800P はそろそろ生産中止、次機種が登場するのではないかと...
"通りがかり" 様、大変ありがとうございます。



交換部品としてのヒンジを入手

手元には、ヒンジが壊れてカバーが取れた fx-5800P が2台ある。そこで今回は、予備1個を含めて3個の部品を購入した。

現状では、4つのピンを含めたヒンジ部材として入手できる。
ヨドバシカメラでは、カシオからの取り寄せ部品の扱いで購入可能だった。なお部品仕入れの場合は、発注後にキャンセルできないので、ヒンジにスプリングピン4本が含まれているかどうかを何度か確認してもらった。

部品名カシオ部品コード番号単価 (消費税込み)数量 小計
ヒンジ / HINGE (WITH PIN)9482 2881
9481 8599 (2019/6月現在)
 ¥813¥243

届いたヒンジは、4本のスプリングピンが刺さって1体になっていた。

ヒンジ新品2 ピン付きヒンジ

ヒンジは少し曲げたくらいでは簡単に割れないので、ヒンジをたわませて取り付ける。私が試した範囲では、先にヒンジをたわませてハードカバーに取り付けてから電卓本体に取り付けると、うまくいった。ちなみにヒンジには "PC+10%GF" と刻印があり、調べてみるとポリカーボネート+10%グラスファイバの意味だと分かった。

なお、ヒンジには左右があり、突起がある方をハードカバー側にして取り付ける。

ヒンジ取り付けの方向 

たかだか¥81(税込み)で完璧に修理できるので、お勧めだ!




fx-5800P のリニューアル

ついでに、細かいキズが入ったり摺り切れたカバーを新品にすれば気分が良い。
...ということで、ヒンジに加えて以下の部品も一緒に入手した。ヨドバシカメラで注文し約一週間の納期だった。

部品名カシオ部品コード番号単価 (消費税込み)数量 小計
ヒンジ / HINGE (WITH PIN)9482 2881
9481 8599 (2019/6月現在)
¥813¥243
ハードカバー / H-COVER-GY344AY1025 8683 (変更なし)¥2433¥729
ラベル / LABEL-A-GY344AYO1026 7871 (変更なし)¥1623¥486



合計¥1458

ハードカバー新品の裏側処理 ハードカバーを部品として入手すると、簡単な取扱説明のラベル(粘着剤付き)を貼り付ける範囲に処理が施されていて、一旦貼ったラベルが取れにくくなっている。

このままだと、埃や汚れが付着し易く、汚くなることが容易に想像できる。また本来あるべきラベルが無いのはリニューアルとして不完全だ。そこで、ラベルも一緒に入手した。








ハードカバー新品1 ハードカバー新品3
ハードカバーは1個づつビニール袋に入っており、さらに緩衝材入りの箱に入っている。輸送中の損傷への配慮は日本的だ。

ステッカー新品1 ステッカー新品2
ラベルは注文した3枚が段ボールに挟まれて保護されている。輸送中に曲がったり破損しない配慮だ。

ヒンジの修理だけでなくハードカバーが新品になるので、新品のような fx-5800P にリニューアルできる。

完全修理 

たかだか ¥486 で、fx-5800P がリニューアルできた。気分一新で fx-5800P をさらに愛着を持って使えるのは良いことだと思う。

ヒンジ修理のついでにリニューアル(税込み¥486)はお勧めできる!


ところで、家電量販店 (ヨドバシカメラ) で部品購入したので、部品にもかかわらず値引きされた価格だった。一般店でカシオから部品仕入れして貰った場合は下記の価格になると思われる。
 ・ヒンジ (スプリングピン4個付き):¥100 (単価)
 ・ハードカバー:¥300 (単価)
 ・ラベル:¥200 (単価)
それでも、¥100 でヒンジ交換、¥600 でリニューアルできるのは、お得ではないだろうか?



[2018/02/25 追記]
今回入手したヒンジ部品が、ひょっとして改善されたものかどうか?気になった。
fx-5800P:ヒンジ破損でカバーが取れた で原因の1つとして挙げている残念な設計は解消していない。つまりハードカバーをひっくり返すと、本体裏面の足の突起とカバーが接触しない構造のままだった。寸法上の設計変更はなされていないことが分かる。

次に、素材の改善の可能性があるかも知れない。スプリングピンによる応力への耐性が向上している可能性だ。ヒンジに刻印されている PC+10%GF は以前から変わっていないので、あまり期待できない。しかし、しばらく様子を見て簡単に破損しないようなら、改善の可能性ありということだ。


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


 


keywords: fx-5800PCasioBasic、データリンク、CcLinker

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


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

fx-5800Pは良いプログラム関数電卓なのか?

2015/02/01 追記
2018/02/24 追記
2019/01/16 追記
2019/01/30 追記


最近、検索キーワード「fx-5800P」で当ブログへ来られる方が増えてきております。そこで、fx-5800P がどういうものか、簡単に紹介したいと思います。


一言で言えば、とてもバランスがとれた 日常使いに向いていて、作ったプログラムが使いやすいプログラム関数電卓です。フィールドエンジニア必携と言えますが、技術計算以外にも実用プログラムを作れるので、事務系や営業系でも役立ちます。


Casio Basic を搭載していて、プログラミングがとても楽なので、プログラミング経験者にはスグにオリジナルプログラムを作れます。
さらに、これからプログラミングを覚えようと言う方の学習用としても優れていると思います。Casio Basicはカシオ独自のプログラミング言語ですが、基本的にはパソコンで使うBASICと共通する部分が多いので、パソコンでのプログラミングへの移行も難しくありません。

Casio Basicを搭載しているのは fx-5800P だけでなく、グラフ関数電卓 fx-9860GII や fx-CG20、土木測量向けの fx-FD10 に加えて最近登場した fx-CG50 があります。Casio Basicを搭載している最も手頃なものが、fx-5800P で、実売で6千円台前半が長らく続いています。[赤文字部 2019/01/16 修正]

[2015/02/01 追記、2019/01/16修正]
最近、fx-5800P の実売価格が¥6,000 前半から¥5,000台へ下がってきています。fx-9860GII は機能面でも価格面でも新たに入手すべき機種ではなくなり、fx-CG50を入手すべきでしょう。ちなみに fx-CG50正規品が¥20,000弱、並行輸入品は¥15,000弱、Amazon USAで¥7,000~¥9,000円で直接購入でき、入手すやすくなっています。そこで、価格動向を調べています。
 ⇒ Casio プログラム電卓の価格動向

[2019/01/30 追記]
Amazon USAで注文して日本の住所へ配達してもらえます。fx-CG50 を Amazon USAで購入すると¥1万未満、場合によっては7千円台で購入できます。fx-5800P との価格差が少ない状況になってきています。この傾向下では、プログラム機能を優先させうなら fx-CG50、小型軽量を重視するなら fx-5800P とった選択となります。

※参考:fx-5800P搭載 Casio Basic のプログラミング入門、コマンドリファレンスを連載中 ⇒ Casio Basic入門 - 目次



fx-5800P の利点と弱点は以下のようになると思います。

1.良いところ (pros)
1) 小型・軽量・薄型
重量150gで、シャツの胸ポケット、上着のポケットに収まるサイズ。163mm x 82mm で厚さ15mm。

2) 省電力
単4電池で、公称1年稼働。但し、購入時に付属していた「入れ組み」用電池(Panasonicのアルカリ電池)で、激しく使用して4ヶ月でLow Batteryの表示が出ました。
※激しく使用: 毎日30~1時間使用に加えて、数時間連続計算を何十回と繰り返したりする

3) 処理速度
・ 関数電卓としては、 fx-955ES よりも高速で、使いやすい。最上位の関数電卓と言える。
・ プログラム電卓としては、簡単なアクションゲームなら、ロジックの工夫次第でそこそこのものが作れる程度には速い。
・ アクションゲーム以外の実用プログラムなら、全く問題を感じない処理速度

4) プログラミング言語
・ CasioBasic搭載: 行番号の無い、いわゆる構造化BASIC。数百行のプログラムを効率的に書ける。
・ Getkey (リアルタイムのキーコード取得)やLocate コマンドが、実用プログラム作成を容易にする
・ CasioBasic独自の命令が、ステップ数の少ないロジック構成を実現し、処理速度の高速化に寄与する (例えば、Dsz、Isz、⇒ 命令など、fx-502P、fx-602P の流れを汲む命令)
・ プログラム領域が28KB程度で、プログラム数は無制限
・ 変数は26個(A~Z)、但し配列変数を用いると、プログラム領域から変数領域を切り出してさらに多くの変数を使える

5) 見やすい液晶ディスプレイ
・ 黒液晶で、見やすいフォントを採用
・ 16桁 X 4行 は意外に使える

6) キーの印刷が見やすい
・ 最近のカシオの関数電卓に共通するが、キーの印刷が見やすい


2.悪いところ (cons)
1) PCリンクの手段が無い
・プログラムのバックアップ手段としては、もう1台の fx-5800P に専用接続ケーブルで転送する方法のみ
 [2018/02/24 追記]
 fx-5800P とPCのリンクがついに実現 ⇒ こちら

2) プログラム実行速度
・ カシオのグラフ電卓 fx-9860G II や fc-CG20 に比べると処理速度がかなり遅い
・ 文字列処理の機能がない
・ 配列変数は、インデックスが自然数(0を使えない)
・ グラフィックス処理の機能がない

3) 360度フリップタイプのハードカバーのヒンジが弱く壊れやすい
 [2018/02/24 追記]
 壊れたヒンジは、愚品として購入して修理できる ⇒ こちら

これら弱点は、解決できるようになっていますので、Casio Basicの実行速度と機能面で、fx-5800P か fx-CG50 かの選択にあると思います。もし Amazon USAで fx-CG50を注文すれば、日本国内までの配達を含めて 8,000円台以下 (2019年1月) の傾向で、これら2機種の価格差が主な選択理由では無くなるかも知れません。

いずれにせよ、6~7千円台の電卓をどう考えるかですが、小型軽量な fx-5800Pを1台持っていても損は無いと思います。



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


 


keywords: fx-5800Pプログラム関数電卓

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

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

Casio fx-991MS の完全模倣品 OSALO OS-991MS (笑)

2018/11/21
追記 2018/11/25
追記 2018/11/26
追記 2018/12/24
追記 2019/01/04


OS-991MS (笑)


OS-991MS    fx-991MS-2 
 コピー品       純正品 fx-991MS

アマゾンで、fx-991MS の完全模倣品があった。¥1499 だったのでポチッとした。

こちらを見て欲しい。



電卓本体の模倣だけではなく、取説もデザインに至るまで完全コピー。著作権無視である。

カバー裏のステッカーが曲がって貼ってある写真も紹介写真に含まれている。このあたりの粗雑さは、いかにも、と笑わせてくれる。


[2018/11/24 追記]

届いたので、早速チェック!
予想通り、品質は悪い。

1. 外観
樹脂成形の品質は、カシオなら出荷しないNG品レベルだ。
表面には、成形時に出来た傷が複数ある。樹脂が型内に完全に流れていないか、型に汚れがついたまま成形したか、そんな品質。エッジの処理も小さなバリがあちこちにあり酷い。

2. カバー裏のステッカー
真っ直ぐ貼られて居らず、端が剥がれてグシャグシャになっていた。

3. キートップの印刷
テンキー、[DEL]、[AC]、[EXP]、[Ans]、[=] キーのキートップ印刷が中心から右にずれている。

4. 太陽電池
暗くても、まともに機能する。部品レベルではいい線いっている。

5. 計算機能
全てを確認していないが、おそらく問題ない。

5. 自己診断ファクトリーモード
純正 fx-991MS とは詳細が異なるが、自己診断機能はある。
純正 fx-991MS では、ROMバージョンらしき表示は無いが、これは
ROM506  P000
と表示される。
ちなみに第2世代の fx-290 は、ROM507 P010 と表示され、キー配置は異なるが自己診断モードの表示はほぼ同じだ。
これの少し前の LSI のコピー品か横流し品を使っているのだろうか?


[2018/11/25 追記]
筐体の傷だと思っていたものの殆どが、実は汚れであることが分かった。
ウェットティッシュタイプのクリーナーで、力を入れてゴシゴシするとやっと取れる程度の汚れが強くこびりついていた。
グリースのような汚れで、こすると広がるような汚れだ。

ピンポイントで汚れを取ると、まわりよりも綺麗になったので、全体が汚れていることも分かった。
全体をクリーナーで拭き取ると、とても綺麗になった(^^;


なんという品質管理レベルか、ある意味驚いた!


[2018/11/26 追記]
sentaro様からのご提案で、内部演算精度について調べてみる。
結果として、模倣品 OS-991MS が好成績を収めた。
侮れません!

Test 1: 内部演算精度
tan(355/226) = -7,497,258.18532558711290507183
※ ラジアン設定
機種結果誤差

fx-991MS-7,497,094.8762.18 x 10 -8
OS-991MS-7,497,258.2631.74 x 10 -8
fx-5800P-7,497,258.444.10 x 10 -8
fx-CG50-7,497,258.444.10 x 10 -8
ラジアン設定で計算。tan(π/2) = -∞ のところ、近似的に tan(355/226) として、tan( の内部実装の精度および内部演算精度のテストになる。
※ なんと OS-991MS の方が内部精度が高いという結果になった。


Test 2: sin の定義域
1) sin(999,999,999 rad) = -0.410137277280044
2) sin(1x109 rad) = 0.5458434494486996
3) sin(1x108 rad) = 0.9316390271097260
機種定義域結果誤差
fx-991MSsin(999999999)Math ERROR


sin(1x109)Math ERROR
sin(1x108)0.9316414182.57 x 10 -6
OS-991MSsin(999999999)-0.4101372995.30 x 10 -8


sin(1x109)0.5458434362.46 x 10 -8
sin(1x108)0.9316390271.78 x 10 -10

fx-5800Psin(999999999)Math EROR


sin(1x109)Math ERROR

sin(1x108)0.93163910268.10 x 10 -8
fx-CG50sin(999999999)Math ERROR


sin(1x109)Math ERROR


sin(1x108)0.93163910268.10 x 10 -8
OS-991MS の定義域が一番広く、さらに精度も一番高いことが分かった。


Test 3: べき乗とルート
(-32)^(3/5) = -8
機種結果

fx-991MSMath ERROR

OS-991MSMath ERROR
fx-5800P-8
fx-CG50-8
Casio純正も模倣品も、これには対応できていない。
Casio品では、fx-991ES 以降の関数電卓で、正しい値が得られる。


[2018/12/24 追記]
sentaro様からの情報で、模倣品不使用キャンペーンとアップデート品投入の動画をCasioが公開しているとのこと。



fx-991MS は国内では既に過去の機種になっているが、欧米ではまだ現役機種として売られているところ、模倣品が大々的に売られている。fx-991MSは第2世代の関数電卓としては最も完成度の高い機種だ。この動画は、模倣品は許さないというCasioの明確な意思表示だろう。Casio品は長く愛用するための品質が備わっていることを強調した動画になっている。

上で調べたように、今回取り上げている模倣品は、外観上の品質は悪いが、機能面では劣化品でない。本来自社ブランドとして発売すべきところ、Casioブランドを利用した販売戦略であることは誰がみても明確だ。こんなのを許してはダメということだ。

電卓の集積回路は立派な戦略物資なので、アメリカはこれらの中国製品も輸入禁止にするという方策があるかも知れない。


[2019/01/04 追記]
CASIO WORLDWIDE EDUCATION WEBSITE に fx-991MS 2nd edition が新製品として掲載されているのを見つけた。

fx-991MS 2nd edition

⇒ 新製品のページは、上の画像クリックするか こちら から



さらに何か分かれば、追記する。



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


 

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

fx-5800P【ゲーム】:Hit&Blow

2013/11/07
追記 2018/10/30

※ CcLinker で fx-5800P に転送できるCCLファイルをダウンロードできるようにした [2018/10/31]


Hit&Blow と言うゲームをご存知だろうか?

フジテレビのNumer0nでの元になるもので、古くからある数当てゲームだ。

最初に、互いにN桁の数を決める。数の決め方には決まりがある。
・0から9までの数を使い、
・各桁は異なる数とする
・一番左の桁を0として良い

あなたが推測した数を相手に伝える。そして相手は、「2ヒット1ブロー」といったように、ヒット数とブロー数を答える。
・桁と数の両方が一致すれはヒット
・桁は違うが数だけ一致しればブロー



そこで、fx-5800PHit&Blow を作ってみた

ところで、fx-5800Pで素因数分解プログラムを作った時、処理速度の遅いことが骨身にしみている。そこで、電卓が出題した3桁の数を当てるゲームとした。

プログラム作成時に、主に以下の2点を考えた:
・16桁x4行の画面内で遊べるように、全てをうまく配置できるか?
 私なりのガイドライン(使いやすいプログラム参照)に従って、うまく配置してみた。

・HIT数とBLOW数の判定をどうするか?
 ここが、多分一番肝心なところ。2通りのロジックを試してみた。



プログラムの仕様

1) 試行10回以下で正解すればOKとする。

 ・この時、「VERY GOOD」と褒めてあげる。

2) 試行11回目以降でも、ゲーム継続を可能とする。
 ・但し、「QUIT?」(止めるか?)と表示する。
 ・ここで止めたら、「YOU GAVE UP」と釘をさして、正解を表示する。

3) 試行11回目以降で正解すれば、一応ねぎらう。
 ・「Good」と言葉をかける。

4) 正解を出した時は、試行回数を表示する。
 ・一応「YOU WIN」と認定してあげる。

4)  デバッグ目的で、ゲーム開始時に正解を見られるようにする
 ・秘密のキー入力で正解が分かるようにする。



プログラムファイルのダウンロード [2018/10/30:追記]

CcLinker で fx-5800P に転送してスグ使える CCLファイルのダウンロード
CcLinkerの紹介
 ここには、配列変数を使わない高速版(下記参照)を収録している。



ゲームの実行画面

こんな感じで完成した。

先ずは、メニューリストから、「HITBLOW」を選ぶ。

ManuList 



ゲームが起動した時の画面:

HB-Start 
 
ガイドラインに従って、メニュー表示をした。
< ? >は秘密のキーだ(ここでは、まだナイショ)。
ここで、[EXE]キーを押して、ゲーム開始。




HB-1 

ゲーム開始早々、405 で 2HIT だ!
右上の :1 は試行回数を示す。



さらに [EXE] キーを押すと...

HB-2 

試行2回目、ここまでくれは、こっちのものだ!!
[EXE]キーを押して...次は決まるか?



ぶぅ~~(´д`)

HB-3 

あとは、組み合わせの問題....もうちょい...



で...

HB-4 

試行6回目で、当たり!!\(^_^)/

さらに [EXE]キーを押すと...




HB-YouWin 

試行6回で YOU WIN の表示。
ここで、[0]キーを押すと、最初の画面へ戻って、新たに出題される。 



ところで、最初の画面で秘密のキーを押すと...

HB-Sneak 

こんな感じで、正解がわかる...




プログラムの構造

メインルーチンと4つのサブルーチンを作った。

・メインルーチン:
 プログラム全体の流れを記述する。細かい作業はサブルーチンに任せる。

fx-5800P専用プログラム
プログラム名: HITBLOW
====================
Lbl 0

0→C:0→D:→E
            :初期化と初期画面表示
Cls
Locate 2,1,"Hit And BLOW"
Locate 2,3,"
:START"
Locate 2,4,"< ? >:ANSWER"

Do             
     :秘密のキーを押した時
Getkey→F              
fx-5800P:同時にキーを押してみる を参照
If F>0 And F<10
Then 1→D
Break:IfEnd
LpWhile Getkey≠47

                    :この2行が肝心
Prog "S2HB3"            :正解出題ルーチン
Prog "S3HB3"            :ゲームの中心部分

Cls                   :結果表示
If D=1:Then               
"   YOU GAVE UP" 
          :正解できなかった時 D=1
"THE ANSWER ="
Locate 14,2,A
Else
Locate 5,1,"YOU WIN"  
      :正解時の処理
Locate 3,2,"IN"
Locate 6,2,C
Locate 8+Int(log(C)),2,"TRIES"
      :関数電卓ならではの処理
IfEnd                  ⇒ 別記事で紹介予定
Locate 1,4,"<0>:TRY AGAIN"

Whle Getkey≠25 
           :もう一度遊ぶ
WhleEnd
Goto 0
====================



・サブルーチン(1):
 入力された3桁数を、各桁の数字に分解する。

fx-5800P専用プログラム
サブルーチン: S1HB3
入力された数字を各桁に分解し
変数 K、L、M に格納する
====================
Int(N÷100)→X          
     ⇒ 別記事で紹介するかも...
Int((N-100X)÷10)→Y
N-100X-10Y→Z
If X=Y Or Y=Z Or Z=X
Then 1→E:IfENd
====================



・サブルーチン(2)
 各桁の数字が同じにならないように、3桁数を作る。

fx-5800P専用プログラム
サブルーチン: S2HB3
各桁を重複しないように作り、
正解の変数、K、L、Mへ格納し、
正解の3桁数を変数Aに格納する
====================
RanInt#(0,9)→K

Do
RanInt#(0,9)→L
LpWhile L=K

Do
RanInt#(0,9)→M
LpWhile M=K Or M=L

100K+10L+M→A
If D=1:Then
"THE ANSWER =   "
Locate 14,1,A

IfEnd
====================



・サブルーチン(3)
 ゲームの核心の流れを記述する。

fx-5800P専用プログラム
サブルーチン: S3HB3
正解するか、諦めると
メインルーチンへ戻る
====================
10→DimZ
Do
0→E:Isz C

Lbl 0
Cls
Locate 12,1,":"
Locate 13,1,C
"3 DIGITS"?→N
Prog "S1HB3"

If E=1:Then
Locate 12,2,"ERROR"
Locate 6,3,"SAME NUMBER"
Locate 2,4,"FOUND IN DIGITS"
0→E:Goto 0
IfEnd

Prog "S4HB3"

If D=1:Then
Break:IfEnd
LpWhile H≠3

0→DimZ
Return
====================



・サブルーチン(4)
 回答を判定して、△HIT、◇BLOW を表示する

 2つの異なるロジックで作ってみた。


サブルーチン(4-1):桁数の拡張性を考えたロジック

For 文と配列変数Z[ ]を利用した。


fx-5800P専用プログラム
サブルーチン: S4HB3
ヒット数を Hへ、ブロー数をBへ
格納してサブルーチン S3HB3へ戻る
====================
0→S:0→T
0→H:0→B:0→D
X→Z[1]:Y→Z[2]
Z→Z[3]:K→Z[6}
L→Z[7]:M→Z[8]

For 1→S To 3
If Z[S]=Z[S+5]
Then Isz H
IfEnd:Next

For 1→S To 3
For 1→T To 3
If Z[S]=Z[T+5]
Then Isz B
IfEnd:Next:Next

Locate1,3,H
Locate 3,3,"HIT"
Locate 1,4,B-H
Locate 3,4,"BLOW"

If H≠3 And C>10
Then
Locate 12,3,"QUIT?"
Locate 12,4,""
IfEnd

If H=3:Then
If C>10:Then
Locate 13.3."GOOD"
Else
Locate 8,3,"VERY GOOD"
IfEnd:IfEnd

Do
Getkey→F
If F=34:Then
1→D:Break:IfEnd
LpWhilr F≠47
====================



処理速度が少し遅いように思われた。 For 文の実行分と、配列変数へのアクセスに多少余計に時間がかかるのかも知れない。配列変数に関しては単なる思い込みの可能性もあるが...

[2014/03/09:追記]
速度低下の主要因は配列変数へのアクセスが非常に遅いためである。通常変数に比べてアクセス速度が3倍近くかかるようだ。

[2018/10/30:追記]
桁数を拡張して3~5桁を選べるようにした Hit & Blow を作成している。
プログラムライブラリ - Hit & Blow
※ 拡張版 Hit & Blow ではメインルーチンは HitBlow と同じファイル名。そこで私は、3桁固定で配列変数を使わない高速オリジナル版のメインルーチンを HB に変更して、拡張版と一緒に fx-5800P に入れて遊んでいる。


サブルーチン(4-2):処理速度向上を狙って、If 文のみのロジック

2者択一の If文 は処理が速いと考え、それでも桁数拡張がしやすいロジックにしてみた。


fx-5800P専用プログラム
サブルーチン: S4HB
ヒット数を Hへ、ブロー数をBへ
格納してサブルーチン S3HB3へ戻る
====================
0→S:0→T:0→U
0→H:0→B:0→D

If X=K:Then
Isz H:1→S:IfEnd
If X=L:Then
Isz H:1→T:IfEnd
If Z=M:Then
Isz H:1→U:IfEnd

If X=L And T=0
Then Isz B:IfEnd
If X=M And U=0
Then Isz D:IfEnd
If Y≠X:Then
If Y=K And S=0
Then Isz B:IfEnd
If Y=M And U=0
Then Isz B:IfEnd
IfEnd
If Z≠X And Z≠Y:IfEnd
If Z=K And S=0
Then Isz B:IfEnd
If Z=L And T=0
Then Isz B:IfEnd
IfEnd

Locate 1,4,"                "
Locate1,3,H
Locate 3,3,"HIT"
Locate 1,4,B
Locate 3,4,"BLOW"

If H≠3 And C>10
Then
Locate 12,3,"QUIT?"
Locate 12,4,""
IfEnd

If H=3:Then
If C>10:Then
Locate 13.3."GOOD"
Else
Locate 8,3,"VERY GOOD"
IfEnd:IfEnd

Do
Getkey→F
If F=34:Then
1→D:Break:IfEnd
LpWhilr F≠47
====================



思った通り、配列変数とFor文で作ったサブルーチン(4-1)よりも、If 文だけで作ったサブルーチン(4-2)の方が、処理が速かった。

ちなみに、if 文が実行される回数を比較してみた:

(4-1):12回 (おそい)
(4-2):10回 (はやい)

if文が2回多いだけだ。

あきらかに体感できる範囲で、確実に速度差を感じる。If分の実行回数に違いがないとすると、やはりFor分の実行による時間が体感の違いの原因だろう[2014/12/14 追記]: 動作の非常に遅い配列変数を使ったことが主な原因だ。

fx-5800Pで素因数分解プログラムを作った時、Doループの実行速度を簡易的に計測して、ループが1回だけ回るのに45m秒程度かかっていることが分かっている。処理時間は、当然ループ内の処理内容に依存するわけだが、それでもパソコンに比べると恐ろしく遅い。

仮に、今回のFor文のループが1回だけ回るのに50m秒かかるとすると、0.05 x 12 = 0.6(秒) かかるわけだが、体感とほぼ合う。なんとなく納得できる範囲だ。

fx-5800Pは、単4電池1本で、1日に1時間使用したとして1年の寿命と仕様に記載されている。消費電力を抑えることをかなり高い優先度としていると思われる。消費電力抑制の効果的な方策の1つに、MPUのクロックを落とすことがある。つまりその分処理速度は遅くなるわけだ。

いずれ、検証してみたいと思う。 [2014/12/14 追記]: For 文と Lbl / Goto ループの速度差は無視できるほど小さい。非常に遅い配列変数を使ったことが主要因だと判明している。


また、ソースコードの詳細については、プログラミング入門向けに別の記事で取り上げる予定だ。



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


 


keywords: fx-5800PゲームプログラミングHit & Blowプログラム関数電卓

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

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

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

やす (Krtyski)

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


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

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

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


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

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

ブロとも申請フォーム

この人とブロともになる

QRコード
QR