fx-5800P プログラムのバックアップ

fx-5800P
e-Gadget


2014/09/27 更新
2018/02/26 追記


2台目の fx-5800p と専用の通信ケーブルを買ってしまいました。

11ヶ月前に買った fx-5800p のカバーのヒンジがまた壊れてしまいました。満員電車で押された時に壊れたようです。接着剤で修復するつもりですが、脆弱な作りには困ったものです。

fx-5800p には電源ロック機能が無いので、カバー無しだと、カバンやポケットに入れて持ち運ぶには不都合を感じます。通勤で東京の満員電車を利用する特殊な事情もあるのでしょうが、そのうち電卓の機能まで影響を受けることが心配になります。

と言うのも、これまでに fx-5800p で作ったプログラムのうち、幾つかは仕事で日常的に使っていて、それがが使えなくなると結構困ったことになります。使いこなすことで、自作のプログラムへの依存度が高くなってしまっているとも言えます。

作ったプログラムを電子データとして保存し、何かの時にそれを電卓に簡単に戻す必要性を、これまで以上に感じました。
CASIOが現在販売しているプログラム電卓の上位機種では、パソコンやメモリカードにプログラムを電子データで保存したり読み出したりすることが出来ますが、fx-5800pでは、それができません。

[2018/02/26 追記]
ついに fx-5800P がPCリンク可能になった をご参考に!


ここしばらくは、公私ともに忙しくしているため、プログラムを触る時間を殆どとれずにいますが、以前作ったプログラムは毎日のように使っています。上位機種を購入することも考えましたが、プログラムをfx-5800pから移植する余裕はありません。

fx-5800p や 上位機種の fx-CG10/20、fx-9860G II、fx-FD10 proなどの価格動向は、定期的に調べていて、これらの購入も考えましたが、目的とコストのバランスを考えて、結局2台目の fx-5800P を買うことにしました。

今年の6月以来、これらの電卓の価格は低めで推移してきていますが、価格.comAmazonを見ていると、最近は価格の上昇傾向が出てきています。

現在はAmazon¥6,518 が最安値に近いが、通信ケーブルが見つかりません。そこで手近なヨドバシカメラに行ってみると、¥7,170でした。交渉するとAmazonと同じ値段にしてもらえたので、通信ケーブルと一緒に購入しました。通信ケーブル:SB-62¥2,700でした。fx-5800p の購入を検討なさっているなら、今は良いタイミングかも知れません。


通信ケーブル:SB-62は、袋に入っているだけで、梱包にはお金がかかっていません。

専用通信ケーブル 


fx-5800p を通信ケーブルで繋ぎ、一方を受信モードにしておき、他方を送信モードにすると、プログラムの転送ができます。全てのプログラムの一括転送に加えて、プログラムファイルを選んで転送することも可能です。

データ転送 


これで、一安心です。

先ずは、コストパフォーマンスの高い fx-5800p を使ってみて、その後もし使い込んでオリジナルで有用なプログラムが貯まってきたら、2台目と通信ケーブルを買うというのもアリのように思います。

一方で、fx-9860G II は、fx-5800p とほぼ同じ CasioBasicを使えるので、これを最初から頑張って買うのも選択肢です。但し、最初から fx-5800p 2台分の費用になります。個人的には1万円超えと言うのは、チョット抵抗がありますね。



壊れたヒンジ部の補修については、うまくできたら紹介しようと思います。
[2018/02/26 追記]
fx-5800P 破損ヒンジの交換、ついでにリニューアル で紹介しました。


ところで試しに、素因数分解プログラムを同時に走らせてみたところ、どうも新しい方が、時間がかかることを見つけてしまいました。同じハードウェアに、同じ設定で、プログラムをごっそり転送したので、処理速度に差が現れた理由は、まだ不明です。



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


 



keywords: fx-5800Pプログラム関数電卓バックアップ

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



関連記事

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

fx-5800P が大好き、だけど..

2017/11/11
追記 2018/02/25
最後に追記あり

I love fx-5800P still, but...

これは大声の独り言...

4年前に fx-5800P で Casio Basic の面白さに目覚めた。プアなハードウェアに結構使える言語、これを最大に活かすのが面白い。自分の研究メモ代わりにこのブログを始めた。

そのうち、グラフ関数電卓に移植し始めた。fx-5800P で動くなら、グラフ関数電卓でもサクサク動く。気がついたら、fx-9860GII が2台、fx-CG20、fx-9860GII SD、fx-CG50 が手元にある。

それでも fx-5800P が普段使いだ。理由はいくつかある。先ず使いやすい。グラフ関数電卓は、関数電卓としては使いにくい。fx-5800P の方が断然良い。もう一つの重要な理由はプログラムだ。まだグラフ関数電卓に移植していないプログラムが沢山ある。fx-5800P でしか使えない。小さく薄いので、カバンや上着のポケットに入れて持ち歩きやすいのも大切だ。

今、2番目のお気に入りは fx-CG50。これは、fx-9860GII 代わりに使える後継機種で、デザインが良い。当然 fx-5800P のプログラムは全て移植可能だ。だからこれも持ち歩いている。

ところが、である...

fx-5800P のプログラムを移植するには、全て手で入力しているわけだが、これが結構大変だ。昨日も1つのプログラム (サブルーチン2つ) を移植するのに、結局90分もかかった。かなり疲れた...

Casio Basic入門に掲載しているプログラムを打ち込む読者の気持ちも同じだろう。一旦移植してしまえば、fx-CG50 はカラー表示してより使いやすくなる。でも、まだまだ移植したいプログラムがある。先は長い...



[2018/02/25 追記]
ついにfx-5800P のPCリンクが実現した。利用をお勧めする。
 ついに fx-5800P がPCリンク可能になった

さらに、PCに保存したプログラムを編集したり、PCでプログラムが作れるようになった。PCでプログラムを編集・作成する時は fx-5800P の隠しフォントを活かして、より多くの変数が使えるようになった。
 fx-5800P Casio Basic をPCでコーディング - CcEditor


fx-5800P のもう一つの弱点は、ヒンジが壊れやすくてスグにハードカバーが取れてしまうことだ。
カシオの部品として交換用ヒンジが家電量販店で安く(ナント¥81で !!) 入手できた。さらに部品のハードカバーとラベルを一緒に入手して (総額¥486 !!)、 fx-5800P がニューアル! リニューアルした fx-5800P にさらに愛着を感じます。
 fx-5800P の破損ヒンジの交換、ついでにリニューアル



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


 



keywords: fx-5800Pfx-CG50、CasioBasic、プログラム関数電卓

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



関連記事

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

fx-260 Sollar II のイースタエッグ

  ▶ CASIO電卓の自己診断機能 - 目次


  2018/02/20

fx-260_Solar_II.png1行液晶、第1世代 の古い設計のまま、外装だけを fx-JP900fx-CG50 とほぼ同じデザインにリニューアルしたのが、fx-260 Solar II です。

海外では 2017年に発売されたもので、国内では未発売です。
同じ機能の fx-260 Solar は国内で1995年7月以降2006年1月までに新発売され、その後2007年に fx-260A として発売され(関数電卓マニアの記事参照)、現在は製造中止になっています。

太陽電池のみで駆動する珍しい関数電卓でもあります。

なお、第1世代の設計というのは、例えば 30 と先に入力してから [sin] を押すような関数後置式の入力を行い、表示が1行のタイプです。リニューアルとは言え、新発売の関数電卓が第1世代のタイプというのは珍しいと思います。


さらに、注目したいのはデザインです。カバーと本体裏が白く、キーボード面はCFRP(炭素繊維強化プラスチック)のような黒く凹凸のあるデザインです。このデザインは、fx-CG50fx-JP900fx-CP400fx-CG500 と共通です。このデザインについては 新しい"カシオのカタチ"の広がり - Casio fx-260 Solar II で記事にしています。

左から fx-CG50fx-JP900fx-260 Solar II
Casio New Design

ここでは、fx-260 Solar II のイースタエッグ - 自己診断機能をまとめてみます。

自己診断機能を開始させるキーの組み合わせと診断モードに入る隠しキーは、第3世代の fx-991ES、fx-993ES、fx-995ES と同じで、診断モードでは液晶表示チェックとキー入力チェックを行います。但し液晶がドットマトリックスではなく8セグメントなので、表示診断の詳細は異なります。


自己診断モード

診断モードに入るには、[SHIFT]+[7] を同時押ししたまま [ON]を押します。この操作は電源が入っている、入っていないに関わらず有効で、最近のカシオのスタンダード関数電卓でほぼ共通です。

診断モードに入ると、左端に AC と表示されます。
ここで何もしないと、診断モードを抜けて通常の計算モードに移行します。この表示がされた後、タイムアウトする前に [9] を押すと診断ル-チンが始まります。

その後は以下のように推移します。どの段階でも [ON] を押せば診断モードが中断し、計算モードになります。

操作画面出力
[SHIFT]+[7]+[ON]診断モードに入る、左端に AC と表示
1[9]液晶のインジケータと全セグメントON
2[SHIFT]液晶のインジケータと全セグメントOFF
3[SHIFT]偶数位置のインジケータとセグメントの半分がON
4[SHIFT]上記がOFF、残りのインジケータとセグメントがON
5[SHIFT] 010 P010 AC と表示
ファームウェアバージョン表示か?
6[AC]00 と表示
7[SHIFT]01と表示、他のキーは受け付けない
8[MODE]02と表示、他のキーは受け付けない
9[x-2]03と表示、他のキーは受け付けない
10[log]04と表示、他のキーは受け付けない
11[ln]05と表示、他のキーは受け付けない
12[ab/c]06と表示、他のキーは受け付けない
13[°’ '']07と表示、他のキーは受け付けない
14[hyp]08と表示、他のキーは受け付けない
15[sin]09と表示、他のキーは受け付けない
16[cos]10と表示、他のキーは受け付けない
17[tan]11と表示、他のキーは受け付けない
18[+/-] から [MR] まで左から右へ順に押す12, 13, 14, 15, 16, 17 と順に表示、他のキーは受け付けない
19[7] から [AC] まで左から右へ順に押す18 から 22 まで順に表示、他のキーは受け付けない
20[4] から [÷] まで左から右へ順に押す23 から 27 まで順に表示、他のキーは受け付けない
21[1] から [ー] まで左から右へ順に押す28 から 32 まで順に表示、他のキーは受け付けない
22[0] から [=] まで左から右へ順に押す33 から 36 まで順に表示、他のキーは受け付けない
23[M+]Good    AC と表示
23[AC] 他何かキーを押す診断モード終了、計算モードへ移行

なお、ステップ5で  010 P010 AC と表示されている状態で、
 - [0] を押すと、右端のインジケータ SD が点灯、
 - [1] を 押すと、- - 09 -1 - AC と表示
となり、さらに [AC] を押すと ステップ 6 に戻る







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






keywords: fx-260 Solar II関数電卓、イースタエッグ、診断機能

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

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

C.Basic for CG 開発が始動

アドイン版 Casio Basic - C.Basic for CG
<トップページ>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します

2017/11/20
最終更新 2018/02/18

C.Basic for CG Ver 0.38α 以降は Part 2 に移動しました

[2017/01/31] C.Basic for CG Ver 0.37α がマイナーアップデート


はじめに

完成度の高い fx-CG50 が登場し、この機種で走る アドイン版 Casio Basic - C.Basic for CG がついに公開されました。純正Casio Basic の g1m ファイルや g3m ファイル、そして C.Basic for FX (従来の fx-9860Gシリーズ版) の g1m ファイルも実行できるように進められています。

なお今のところアルファ版ですが、作者の sentaro様を皆で応援し、作者とユーザーの情報交換を行うために、このエントリーを作りました。

[2017/11/25 追記] fx-CG10 / CG20 は、面表示が遅すぎるために(特にグラフィックス画面)、プログラミング向きでなくあまり使っていなかったのは私だけでないと思います。ところが、C.Basic for CG が  fx-CG10 / CG20 に対応したことで、グラフィックス描画が超高速化したという喜びの声があります。fx-CG10 / CG20 を死蔵させていた方に朗報です。

[2017/11/27 追記] fx-CG10 / CG20 の動作全体を高速化させるチューンアップツール - Ptune2 を利用している場合、C.Basic for CG が起動できない、不安定になるという問題がありました。従来の Ptune2 (Ver 1.11) の設定を変更 (このコメントおよび以降の解消事例のコメント参照) すれば問題は解消できますが、もっと楽に殆ど何もせずに解消させるための Ptune2 Ver 1.20 が公開されました。ノーマルクロック時にC.Basic for CG を起動すると、主に自動的にクロックをfx-CG50 相当の 118MHz に上げ、その他の設定も変更するようになります。


目 次

最新版のダウンロード
  - 更新履歴 (概要) 
  - 現行アルファバージョンについて

動作確認されたプログラム

C.Basic for CG プログラミングのための役立ちツール




最新版のダウンロード - 現在は Ver 0.38α 以降にアップデートされています ⇒ Part 2

   C.Basic for CG Ver 0.36α(アルファ)版
  • インストール方法はこちら 
  • 取扱説明書:同梱テキストファイル参照。ReadmeCG_J.txt (C.Basic開発環境の使い方)、 ManualFX_J.txt (C.Bbasicコマンドリファレンス)、Command_List_CG.txt (C.Basic コマンド一覧と呼び出しキー操作) が含まれています。なお ManualFX_J.txtC.Basic for FX Ver 1.64β 同梱と同じもので、この記載仕様が当面の開発目標です。殆どのコマンドは実装済みですが、今はユーザーによるバグ出し作業中です。
更新履歴 (概要)
 Ver 0.37α (1/32768高分解能タイマー追加+短縮行列再初期化バグ修正版)
 ・A1、B2 形式の端出行列アクセスでの行列再確保の不具合を守勢しました。
  
 ・タイマー変数のTicksと%に高分解能 1/21768sタイマーを追加しました。コマンド後に%を付けると
  分解能が 1/32768s になります。
  (例) Ticks%
  (例) Ticks%Wait
  (例) %%
  (例) %%Wait
  
 ・プログラム実行の時間計測機能で高分解能1/32768sタイマーを選択できるようになりました。
  (セットアップで設定します。)
  小数点二か4桁まで計測できます。
  
 ・[F5](CHAR)^[F6] 外部フォント表示の選択で外字とカナに加えてASCII文字を加えました。
  
 ・エディタで[SHIFT]-[6]を押すとRGB(コマンドのカラーコードを入力する機能を追加しました。
 ・エディタで[SHIFT]-[3]を押すとGetkeyコマンドのキーコードを入力する機能を追加しました。
 ・[AC]キーによるBreakの有効無効をプログラム内で出来るようにしました。
  (例) "#Break0 // [AC]キー無効  
  (例) '#Break1 // [AC]キー有効 (デフォルト)
  

 Ver 0.36α (自由な名前でフォントSave/Load + FX版フォント追加+メモリリーク修正版)
 ・外部フォントの読み込みでバッファの解放が出来ていなかった不具合を修正しました。
  
 ・g1mモードでは標準フォントも従来のfxシリーズの標準フォント(6x8)で表示するように変更しました。
  (セットアップでEditextFontをオンにするとg1mモードではエディタの表示も重ら宇フォントに変わります)
  
 ・フォントファイルのセーブ/ロードにおいて任意のファイル名が津空けるようになりました。
  (書式) BmpLoad @GL"ファイル名"
  (書式) BmpLoad @GM"ファイル名"
  (書式) BmpLoad @KL"ファイル名"
  (書式) BmpLoad @KM"ファイル名"
  (書式) BmpLoad @AL"ファイル名"
  (書式) BmpLoad @AM"ファイル名"
  (例) BmpLoad @GL"MYFONTL"
   MyFONTL.bmpが外字標準フォントとして読み込まれます。
  (例) BmpLoad @GM"MYFONTM"
   MYFONTM.bmpが外字ミニフォントとして読み込まれます。
  
  (書式) BmpSave @GL"ファイル名"
  (書式) BmpSave @GM"ファイル名"
  (書式) BmpSave @KL"ファイル名"
  (書式) BmpSave @KM"ファイル名"
  (書式) BmpSave @AL"ファイル名"
  (書式) BmpSave @AM"ファイル名"
  (例) BmpSave @GL"MYFONTL"
   現在の外字標準フォントを"MYFONTL.bmp"としてセーブされます。
  (例) BmpSave @GM"MYFONTM"
   現在の外字ミニフォントを2MYFONTM.bmp"としてセーブします。
  

 Ver 0.35α (バグ修正、複数文字変数+Const拡張版)
 ・StrSrc( コマンドにおいて、検索開始位置を指定した場合に結果が1つづつズレていたのを修正しました。
  
 ・アンダーバーより始まる複数英数字名(8文字まで)の変数が使えるようになりました。
  従来の1文字変数とは独立したエリアに確保される変数ですがプログラム開始時には常に初期化されます。
  使える変数は26個までとなっています。実数変数と整数変数は別の値を保持できますが、
  同じ名前で同時に確保されます。
  [SHIFT]+[F1]の変数リストで[F1]を押す度に大文字変数、小文字変数、アンダーバー変数が表示されます。
  {例) '#CBDBL
  (例) 123.456->_ABC
  (例) _ABC+_ABC%->_RESULT
   ※ _RESULTの値は579.456となります。
  
 ・RowSize(、ColSize( が逆になっていたのを修正しました。
  (g1mおよびg3mファイルでは修正する必要はありません。テキストファイルで帆村している場合は、
   修正する必要があります。)
  
 ・変数を定数仕様限定にするConstコマンドを追加しました。[OPTN]-[F3](extd)-[F3](Const)
  代入時にConstを前置すると変数が定数として扱われ、以後代入できなくなります。
  (例) 123->Const A
  (例) 123->Const _ABC
  (例) 456->A
   同じプログラムで変数の値を変更しようとするとエラーになります。
  
 ・文字列分割するStrSplit( コマンドを追加しました。
   [SHIFT]-[VARS](PRGM)-[F6][F6]-[F3](ExStr)-[F6][F6]-[F1](StrSplit)
  (書式) StrSplit("文字列","区切り文字"[,開始位置])
   結果はMatAnsに文字列として返ります。
  (例) StrSplit("123,4567,89",",")
   MatAnsの結果は、["123","4567","89"] となり、ココの要素を読み出すには次のように
   アクセスできます。
   $Ans[1]="123"
   $Ans[2]="4567"
   $Ans[3]="89"
 ・変数の定数仕様追加にともなって、Swith~Case~SwitchEnd でのCaseの指定は変数指定も
  可能になりました。
  

 Ver 0.34α (セットアップ設定変更版)
 ・セットアップの設定がプログラムで変更されないようにする設定を追加しました。
  SetupRecoverの項目でオンオフで設定します。
  影響を受ける設定は純正互換の以下の設定になります。
   Angle
   DrawType
   Coord
   Grid
   Axes
   Label
   Derivative
   Plot/Line-Color
   Sketch Line
   Display Fix/Sci/Norm/Eng

  これ以外のC.Basicで拡張した設定はプログラムで変更されることはありません。
 ・Prog - Return において、Returnコマンドでの返り値が無効になる不具合を修正しました。
 ・ファイルリスト表示でステータスラインに現在日時を表示するようにしました。
  (リアルタイム表示ではなく何かアクションした時の更新になります。)
 ・外字のテキスト変換に失敗していたのを修正しました。
 ・フォントデータをセーブ、ロードするBmlLoad @/BmpAave @コマンドにおいて、
  フォントファイル番号を指定する場合に不具合が出ることがあったのを修正しました。
  

 Ver 0.33α (Getkey1/2計測リセット+楕円の回転+Paintコマンド追加版)
 ・ML系コマンドに_Paintを追加しました。[SHIFT][F4][(SKETCH)-[F3](ML)-[F6][F6][F6]-[F5](Paint)
   http://pm.matrix.jp/CB/CBASICCG033.zip
   こちらのPaintサンプルプログラムをほぼそっくりそのまま利用させて頂いています。
  (書式) _Paint x,y,Color[,確率/透過率]
  (例) _Paint 100,100,1
   座標(100,100)を始点にして描画色で塗りつぶします。
  (例) _Paint 100,100,0
   座標(100,100)を始点にして背景色で塗りつぶします。
  
 ・ML系コマンドの楕円描画コマンドの _Elips、_FillElipsにおいて回転された楕円の描画をサポートしました。
  (書式) _Elips X,Y,Rwidth,Rheight,Color[,確率/透過率][,回転角(度)]
  (書式) _Elips 100,100,80,40,1,,45
   座標(100,100)を中心に横径80ドット、縦径40ドットの楕円を45度傾けて描画します。
  
 ・Getkey1/2実行後に時間計測をリセットするように仕様変更しました。
 ・ReadmeCG_J.txt / ManualCG_J.txt を同梱しました。
 ・Getky1/2実行中は時間計測を一時停止するように仕様変更しました。
  セットアップにて計測の一時停止または計測のリセット&リスタートを選択できます。
  関連コマンドとして、
  (書式) '#GetKeyC
   デフォルトの計測一時停止、継続モードです。
  (書式) '#GetKeyR
   Getkey1/2実行後に計時がリセット&リスタートします。
 ・セットアップでステータスラインが表示されていなかったのを修正しました。
 ・Lbl もAlias機能が使えるようになりました。併せて AliasVarのコマンド名称をAliasに改訂致します。
  (例) Alias A = _ABCD
  (例) Alias Mat A=_ABCD
  (例) Alias Lbl A=_ABCD
 ・MenuコマンドにFX版互換表示を追加しました。コマンド直後に"@"を付けるとFX版互換表示になります。
  (書式) Menu @"<メニュータイトル>","<項目1>",<ラベル文字1>,"<項目2>",<ラベル文字2>[,"<項目n>",<ラベル文字n>...]
  
 ・Ticks (%) のタイマー変数への代入で内部時計を変更しないようにしました。
  (例) 0->Ticks
   従来は内部時計も 00:00:00に初期化されていましたが、C.Basicのタイマー変数だけを0にリセットします。
   この仕様変更により時計の変更は DATE、TIMEコマンドのみとなります。
  
 Ver 0.32α (Menuコマンド互換化+透過率改善版)
 ・MenuコマンドをCGシリーズの純正互換に変更しました。
  タイトルの色はMenuコマンド直前の色指定が有効になります。
  メニュー項目はPlot/Line-Colorの色設定が有効になります。
  メニュー背景はBacl-Colorで指定している色になります。
  
 ・BmpLoadの透過指定がバグっていたのを修正しました。
  透過率の指定は0~1の範囲の変数または100%までの整数指定に変更しました。
  (書式) BmpLoad("BMPファイル名"),X,Y,1,透過率 (0.0~1.0)
  (書式) VmpLoad("BMPファイル名"),X,Y,1,%透過率 (%0~%100)
   (X, Y)座標を始点として背景とヨウ化率で合成してロードします。
  (書式) BmpLoad("BMPファイル名"),X,Y,0,透過率
   (X, Y)座標を始点として背景だけにロードします。
  (例) BmpLoad("TEST"),100,50,1,%50
  (例) BmpLoad("TEST"),100,50,1,0.5
   (100, 50)座標よりTEST.bmpファイルを透過率10%でロードします。
  (例) BmpLoad("TEST"),100,50,0,%25
  (例) BmpLoad("TEST"),100,50,0,0.25
   (100, 50)座標よりTEST.bmpファイルを透過率25%で背景部分だけにロードします。
  
 ・ML系コマンドのパラメータのcolor指定において透過率指定を追加しました。
  コマンドの描画色と画面を透過率で合成して表示します。
  color指定地は5になっています。color指定のあるML系コマンドで使用できます。
  (書式) _Pixel x,y,5,透過率 (0.0~1.0)
  (書式) _Pixel x,y,5,%透過率 (%0~%100)
  (例) Red _Pixel x,y,5,%50
  (例) Red _Pixel x,y,5,0.5
   画面の色と50%赤を合成して描画を行います。
  
 ・Normコマンドが正常に動作していなかった不具合を修正しました。

 ・Str( コマンドの表記をToStr( に変更しました。
  従来プログラムで Str( を使用していても g1m/g3m形式の場合は何も修正する必要はありません。
  テキスト保存されている場合は内部形式への変換時に自動変換されます。
  再保存の時には ToStr( 表記に変わりますので、以前のC.Basicでテキスト形式で読み込ませると
  エラーになります。
  プログラムの保存はテキストだけでなく g1m/g3m形式での保存もお勧めします。
  
 ・Sprintf( コマンドのバグを修正しました。
  
 ・ML系コマンドの_Bmp表示系コマンドをCGモード対応しました。
  _Bmp
  _Bmp8
  _Bmp16
  _BmpZoom
  _BmpRotate
  _BmpZmRotate
  g3mモードではデフォルト16ビットカラー描画ですが、1ビット行列を指定すると
  1ビットマップの描画になります。
  

 Ver 0.31α (AliasVar拡張 & IsExist拡張版)
 ・1文字変数を任意の英数字名の別名で使えるようにAliasVarを拡張しました。
  アンダーバーより始まる変数名が使えます。
  変数の長さは8文字以内で英数字とアンダーバーが使えます。
  (例) AliasVar a=_abc_de
  (例) _abc_de+1->_abc_de
   小文字変数aを_abc_de表記で使えます。
 ・LiatとMatの表記を変更しようとした場合にシステム絵r-亜になっていた不具合を修正しました。
 ・ファイルリストにおいてストレージメモリの残量を表示できるようになりました。
 ・IsExistコマンドでファイルリストを取得できるようになりました。
  (書式) IsExist("*.拡張子")->ファイル数
   Mat Ans:拡張子が"bmp"のファイルがAns行列に作成されます。
   リストはアルファベット順にソートされます。
  (例) IsExist("*.bmp")->N
    $Mat Ans[3]
   リストの3番目のファイル名を文字列として表示します。
   N:ファイル数が返ります。
  (用例) BMPフォルダにある全てのBMPファイルのリスト表示するサンプルプログラム
   --------------------------------------------
   IsExist("/BMP/*.bmp")->N
   N=0⇒Stop
   For 1->I To N
   Disp $Mat Ans[I]
   Next

   --------------------------------------------
 ・Textコマンドのカラー指定に不具合があったのを修正しました。
 ・"#"をコメント色から外しました。


 Ver 0.30α (3品から音が出るかも試練版)
 ・Beepコマンドを追加しました。@SHIFT]+[VARS](PRGM)-[F6]-[F4](I/O)-[F6]-[F5](Beep)
  (書式) Beep 周波数,継続時間(ms)
   3Pin出力より指定周波数の矩形波を出力します。
  (例) Beep
   1KHzの矩形波を0.5秒間、3Pinより出力します。
  (例) Beep 440,1000
   440Hzの矩形波を1秒間、3Pinより出力します。
 ・Textコマンドの表示位置が順背英位置よりも1ドット右下にずれていたのを修正しました。
 ・ReadGraph( と DotGet( コマンドにおいて、行列の型指定で取得ビット数を1ビットか16ビットかを
  選択できるようになりました。
  (g1mモードでnデフォルトは1ビット、g3mモードでのデフォルトは16ビットになっています。)
  (例) ReadGraph(0,0,15,23)->Mat A
  (例) DotGet(0,0,15,23)->Mat A
   (0,0)-(15,23)の領域を16ビットカラーで行列Aに取り込みます。
  (例) ReadGraph(0,0,15,23)->Mat A.P
  (例) DotGet(0,0,15,23)->Mat A.P
   (0,0)-(15,23)お領域を1ビットモノクロで行列Aに取り込みます。
  
 ・スタンダード入力モードにおいてStrLwrコマンドの入力ができなかった不具合を修正しました。
 ・エディタの選択時のリバース表示を修正しました。
 ・外部フォント導入時に標準サイズフォントにおいてキャ作田-コード 0x00~0xFが表示されなかった不具合を
  修正しました。

 ・デフォルトの外部フォントをIPAフォントに変更しました。
  @LFONTK0 カタカナフォント(標準)
  @MDONTK0 カタカナフォント(ミニ)
  @LFONTK1 ひらがなフォント(標準)
  @MFONTK1 ひらがなフォント(ミニ)
  @LFONTG0 外字サンプルフォント(標準)
  @MDONTG0 外字サンプルフォントの(ミニ)
  使用例) NewYear
  

 Ver 0.29α (純正ASCIIフォント差し替え可能になった版)
 ・フォントデータのせー図が不安定だった不具合を修正しました。
 ・英数字のASCIIキャラクタのフォント差し替えができるようになりました。
  デフォルトでのファイル名はファ維持同様にそれぞれ、
  @LFONTA.bmp  (ASCII標準フォント)
  @MFONTA.bmp (ASCIIミニフォント)
  となっております。
  コードで 0x20~0x7Eまでの95キャラクタの差し替えが可能です。
  サンプルフォント(デフォルト、IMPACTを同梱しました。)
  
 ・フォントデータを読み出すGetFontにおいて、デフォルトの内蔵フォントを読み出す@オプションを
  追加しました。
  (書式) GetFont(@"フォントキャラ")->Mat A
  (書式) GetFontMini(@"フォントキャラ")->Mat A
  (例) GetFont(@"A")->Mat A
   内蔵フォント"A"のビットマップデータ(18x24)が1ビット行列A[18,24]に入力されます。
  
 ・エディタのフォントを外部フォントに切り替えられるようにしました。セットアップより変更できます。
 
 ・外部フォントの切替を行うための、BmpLoadにFontロードオプションを追加しました。
  外部フォントがそれ以降使用されます。
  (書式) BmpLoad @G[フォントファイル番号]
  (書式) BmpLoad @K[フォントファイル番号]
  (書式) BmpLoad @A[フォントファイル番号]
   フォントファイル番号は0~9が指定できます。
  (例) BmpLoad @A1
   @LFONTA1.bmp  (ASCII標準フォント)
   @MFONTA1.bmp (ASCIIミニフォント)
   のフォントファイルが外部ASCIIフォントとして読み込まれます。
   
 ・フォントファイルのせー図において0~9までのオプションを追加しました。
 ・BmpSaveにフォントデータのセーブ機能を追加しました。
  (書式) BmpSave @G[フォントファイル番号]
  (書式) BmpSave @K[フォントファイル番号]
  (書式) BmpSave @A[フォントファイル番号]
  (例) BmpSave @G2
   @LFONTG2.bmp  (外字標準フォント)
   @MFONTG2.bmp (外字ミニフォント)
   現在の外字フォントを外字フォント2としてセーブします。
  ※今回のバージョンアップではサンプルフォントその1として下記のフォントファイルを同梱しています。
   その 0 は標準のデフォルトフォントとなっております。これらは pFONTフォルダに入れておいてください。
   @LFONTA0.bmp  (ASCII標準フォント純正)
   @MFONTA0.bmp (ASCIIミニフォント純正)
   @LFONTA1.bmp  (ASCII標準フォントIMPACT)
   @MFONTA1.bmp (ASCIIミニフォントIMPACT)
   (例) プログラムでフォントを切り替えるには、下記1行だけでIMPACTに切り替わります。
    BmpLoad(@A1)
   (例) 元のフォントに戻すには、
    BmpLoad(@A0)
  
 ・Getkey1/2/3において、[SHIFT]+[OPTN]を[OPTN]と判定出来るようになりました。
 ・Plot/Line-Color直後のテキスト表示系コマンドが色変更の影響を受けていたのを修正しました。
 ・Menuコマンドで色指定がコマンド終了後にデフォルト=黒に戻る用意修正しました。

 Ver 0.28α (phontコマンド追加版)
 ・フォントデータの読み出しと設定を行う GetFont( とSetFont( を追加しました。
  (書式) GetFont(フォントコマンド)->Mat A
  (書式) GetFontMini(フォントコード)->Mat A
  (例) GetFont(0x41)->Mat A
   フォント!A!のビットマップデータ(18x24)が1ビット行列Mat A[18,24)に入力されます。
  (例) GetFontMini(0xFF80)->Mat A
   外字ミニフォントの一番目のビットマップデータ(16x24)が1ビット行列Mat A[16x24]に入力されます。
  [書式) SetFont フォントコード,Mat A
  (書式) SetFontMini フォントコード,Mat A
  (例) SetFont 0z41,Mat A
   Mat Aのフォントデータがフォント!A!のデータとして設定されます。
  (例) SetFontMini 0xFF80,Mat A
   Mat Aのフォントデータが外字ミニフォントの一番目のデータとして設定されます。
  
 ・BmpSaveにフォントデータのセーブ機能を追加しました。
  (書式) BmpSave @G
   カレントフォルダにファ外字フォント (標準、ミニ) をセーブします。
   ファイル名は@LFONTG.bmp (標準)
   ファイル名は@MFontG.bmp  (ミニ)
  (書式) BmpSave @K
   カレントフォルダにカナフォント (標準、ミニ) をセーブします。
   ファイル名は@LFONTK.bmp (標準)
   ファイル名は@MFONTL.bmp (ミニ)
  (書式) BmpSave @@G
  (書式) BmpSave @@K
   @Fontフォルダにセーブします。
  
 ・デフォルトフォントファイルを変更しました。
  @LFONTG.bmp  (外字標準フォント)
  @MFONTG.bmp (外字ミニフォント)
  @LFONTK.bmp  (カナ標準フォント)
  @MFONTK.bmp (カナミニフォント)
  
 ・大文字と小文字のRenameで元のファイルがまた消えてしまう不具合を修正しました。
 ・MLコマンドの_Hrizontal、_Vertical、_Polygon、_Rect(、_Elips(、_ElipsRect( において、
  前回MLコマンドのWidth指定が継続していたのを修正しました。
 ・BMPファイルのRenameとCopyに対応しました。
 ・ファイルモードでのBMPファイルの表示の不具合を修正しました。
 ・ReadGraph(、DotGet コマンドにおいて、g3mモードでも1ビットサイズの行列への取り込みが
  できるように修正しました。
  (例) ReadGraph(1,1,16,24)->Mat A.P
  (例) DoGet(1,1,16,24)->Mat A.P
 ・BmpSaveコマンドにおいて、g3mモードで1ビットサイズの保存が出来るようになりました。
  (例) BmpSave "TEST",Mat A
 ・RectおよびFillRectがFX版解像度対応のままになっていたのを修正しました。
 ・行列の初期化において、既に確保された行列領域を再初期化する場合に0栗あしないように
  することが出来るようになりました。
  (ただし、最初のその行列で仕様する最大領域を確保しておく必要があります。)
  (書式) {12,20}->Dim Dim Mat A
  (例) [[1,2,3][4,5,6]]->Mat A
    {2,2}->Dim Dim Mat A
   Mat A の内容は [[12][3,4]]となります。 
  

 Ver 0.27α (フル画面モード正式使用版)
 ・フル画面に正式対応しました。
  副作用として、C.Basic実行時の?コマンド入力時に左上のシフト状態のステータス表示が
  機能しなくなります。
 ・GetRGB( コマンドを追加しました。VRAMのカラー値をR、G、B に分解します。
  (書式) GetRGB(カラーコード)
   結果はList Ans に帰ります。
  (例) Get(65535)
   List Ans = {248,252,248}
   R = List Ans[1]
   G = List Ans[2]
   B = List Ans[3]
 ・Renameで元のファイルが残っていた不具合を修正しました。
 ・RenameとCopyで新しいファイルの箇所にカーソル移動が出来てなかった不具合を
  修正しました。
  

 Ver 0.26α (外字フォント対応版)
 ・カナ文字と外字フォントを外部のBMPファイルより導入できるようになりました。
  カレントフォルダに次の4つのファイルを置くとフォントが切り替わり、
  外字が使えるようになります。
   LFONTK.bmp  18x24ドット カナ文字フォント
   LFONTG.bmp  18x24ドット 外字フォント
   MFONTK.bmp  最大16x18ドット カナ文字ミニフォント
   MFONTG.bmp  最大16x18ドット 外字ミニフォント
   - フォルダを移動する度にそのフォルダにあるフォントファイルを読み込みます。
   - フォントファイルが存在しない場合は、@FONTフォルダに置かれたファイルを
    デフォルトとして使用します。
   - どこにもフォントファイルが存在しない場合はFX互換の内蔵フォントを使用します。
    フォントファイルのフォーマットは1ビットモノクロBMPファイルとなっています。
  - 標準サイズのフォントは18x24ドットのフォントが横に16個、縦に5つ並ぶフォント
   ファイルになっています。
  - ミニサイズのフォントはプロポーショナルフォントなので、フォントの1ドット上の
   1ラインを横幅検出ラインとし、フォントの上隅の1ドットを開始位置とします。
  - 横に16文字、縦に2行で32文字の外字が使えます。
 ・エディタの検索機能において、検索窓に入力後にコマンド入力ファンクションキーが
  表示されし続けていた不具合を修正しました。
 ・_ClrVramが背景色にクリアされていなかったのを修正しました。
 ・Str変数の増量が127で止まっていた不具合を修正しました。
 ・BatteryStatusコマンドを追加しました。[VAR]-[F3](Extd)-[F6](BatteryStatus)
  (書式) BatteryStatus
   左上隅のバッター-アイコンを表示します。
   数式で使用した場合はバッテリアイコンを表示して現在の転圧値 (V)x100 を返します。
 ・Clip&Paste後にカーソル位置が6行目で固定されていたのを修正しました。
  

 Ver 0.25α (フル画面拡張版)
 ・外枠を色指定できるようになりました。BackColorコマンドに@オプション追加です。
  (書式) BackColor @外枠色指定
  (例) BackColor @Black
  (例) BackColor @RGB(255,128,128)
 ・ML系コマンド仕様時にVRAMの全域を操作&表示対象にしました。
  Y座標系はマイナス方向に拡張して (-24) まで使用できます。
  この変更により、PutDispDD と _SiaspVram コマンドで転送エリアが異なります。
  PutDispDD:転送範囲 (0,0) - (383,191) 純正仕様です。
  _DispVram:転送範囲 (0,-24) - (383,191) 上部ステータスライン分を含みます。
 ・PutDispDD と _DispVram コマンドでLCDへの転送ラインを任意選択できるオプションを追加しました。
  (書式) PutDispDD@開始行,終了行
  (書式) _DispVram@開始行,終了行
   行の範囲は最上部(-24)から最下部(191)までとなります。
   どちらも同様の動作をします。
  (例) PutDispDD@0,23
   Locateでの1行目だけを転送します。
 ・ListとMat@の変数名指定に ( を使うことで数式が使えるようになりました。。
  (例) List (A+1)
   Aが1の場合はList 2を指定したことになります。
  (例) Mat@(A+1)
   Aが1の場合はMat 2、つまりMat Bを指定したことになります。
 ・Renameにおいてファイル名の大文字⇔小文字の変更のみをした場合、
  ファイルが消えてしまう不具合を修正しました。
 ・エディタのミニフォント表示において固定ピッチ表示を選択できるようになりました。
 ・Textコマンドにて固定ピッチ表示のオプションを追加しました。
  (書式) Text Y,X,"文字列" or数式 [.N/O/R/V][.F]
   最後にFオプション追加で固定ピッチになります。
  (例) Text 10,1,"Simple Text"..F
   固定ピッチ(12ドット間隔固定)でミニフォント表示されます。
  

 Ver 0.24α版
 ・テキスト画面にグラフィックス画面を重ねて表示することが出来るようになりました。
  Screenコマンドで設定できます。
  (書式) Screen.O (アルファベットのO)
   テキスト画面で実行するコマンドの背景色がグラフィックス画面になります。
   つまり、テキスト画面にグラフィックス画面が合成表示されます。
  (書式) Screen.N
   通常モードに戻ります。
 ・BmpLoadコマンドで直にVRAMにロードする場合、背景だけをロードしたり透過率を設定できるようになりまた。
  (書式) BmpLoad("BMPファイル名"),X,Y,1,透過率 (0~255)
   (X,Y)座標を始点として透過率 (最大255) でロードします。
  (書式) BmpLoad("BMPファル名"),X,Y,0,透過率 (0~255)
   (X,Y)座標を始点として背景だけにロードします。
  (例) BmpLoad("TEST"),100,50,1,128
   (100,50)座標よりTEST.bmpファイルを透過率10%でロードします。
  (例) BmpLoad("TEST"),100,50,0,64
   (100,50)座標よりTEST.bmpファイルを透過率25%で背景にロードします。
  (使用例)
   テキスト系プログラムの背景にTEST.bmp画像を合成表示するには、
   先ずグラフィックス画面(VRAM)にBMPをロードしておきます。
   ------------------------------
   Screen.G      // グラフィックス画面を選択
   BmpLoad("TEST")   // 画像をロードします
   Screen.O      // 新規オプションはセロでななくてオーです
   ClrText       // テキスト画面クリアで背景に画像が表示されます
   ------------------------------
   以後、テキスト画面の背景には常にグラフィックス画面が重なります。
  

 Ver 0.23α版
 ・BmpLoadコマンドで直にVRAM二ロード出来るようになりました。
  (例) BmpLoad("TEST"),100,50
   (100, 50) 座標よりTEST.bmpファイルをロードします。
   (添付サンプルプログラムを参照してください。)
 ・BmpSaveコマンドで直にVRAmからセーブ出来るようになりました。
  (例) BmpSave "TEST",100,50,200,90
  (100, 50) 座標より (200, 90) 座標までの範囲を24ビットフルカラーBMPファイル"TEST"としてセーブします。
  指定可能な座標置は (0,0) - (383,191)の範囲です。
  (フル画面の保存には1分異常かかる場合があります。)
 ・BMPファイルの読み込める最大サイズを256KNまで増量しました。
  CGシリーズの画面サイズの244ビットフルカラーBMPファイルを読み込めます。
 ・エディタのミニフォントモードのカーソルの幅を太くしました。
 ・Clip&Pasteのバッファ処理を改善 (エラー対策)
 ・Clip&Pasteで範囲指定された行をコメント化、コメント解除の機能を追加しました。
  範囲指定した後に[F5][F6]で機能します。
  

 Ver 0.22α版
 ・エディタのミニフォントモードのパフォーマンスを向上させました。
 ・複数行のペーストをした場合にカーソルが飛ぶ不具合を修正しました。
 ・For~Nextの制御変数のエラーチェックを厳しくしました。
  (実数モードで整数変数を制御変数に使うとエラーになります。)
 ・24ビットフルカラーBmpファイルの読み込みに一部対応しました。
  まだ、大きなファイルの読み込みは未対応です。約160KB以下のファイル限定です。
  (添付サンプルプログラムを参照してください。)
 ・行列編集モードの行列編集でドット編集の出来るモードをCG対応しました。
  表列を表示している状態で[OPTN]キーを押すとドットエディタになります。
  が、カラー値の変更は直接数理入力しか色変更方法がありません。
  

 Ver 0.21α版
 ・実数指数表示を修正しました。
  

 Ver 0.20α版
 ・SDK変更初版
  

 Ver 0.11α版
 ・Save、Loadコマンドのファイル名に文字列変数が使えるようになりました。
 ・カナ文字が表示できなくなっていたのを修正しました。
 ・CG20における自動オーバークロック基準を変更しました。
  ⇒ Ptune2 (fx-CG10/CG20専用)でPutDispのフレームレートが50fps以下の場合に自動オーバークロックします。
 ・MLコマンドの_Pointコマンドが動作しなかったのを修正しました。
 ・バッファーオーバーフロー修正
  

 Ver 0.10α版
 ・コピー&ペーストの不具合を修正しました。
 ・Pixel系コマンド後色が変わってしまっていたのを修正しました。
 ・整数モードにおけるPixel系コマンドでは描画範囲外になる時はエラーにならずに描画されないようにしました。
  

 Ver 0.09α版
 ・PopUpWin(コマンドを拡張しました。関数としての実装に変更になります。数式の中で使えます。
  ・(書式) PopUpWin( n )
   従来の使用です。n行分のポップアップを表示させます。表示のみです。
  ・exit ポップアップ
   (書式) PopUpWin(11,"メッセージ1行目"[,"メッセージ2行目"])
   返り値は常に1です。コマンド終了時に画面が復帰します。
  ・Yes No ポップアップ
   (書式) PopUpWin(10,"メッセージ1行目"[,"メッセージ2行目"])
   返り値が[Yes]:1 [No]:0となります。コマンド終了時に画面が復帰します。
  ・コピー&ペーストで使うバッファ領域の確保に不具合があったのを修正しました。
 ・PopUpWin(コマンドをさらに拡張しました。
  ・画面待避のみ ポップアップしません
   (書式) PopUpWin(0)
  ・待避した画面の復帰のみ
   (書式) PopUpWin(9)
   画面待避バッファはシステムと共通なので、待避壕にポップアップが出るとバッファが上書きされ
   元に戻らなくなるので注意してください。
  

 Ver 0.08α版
 ・?拡張コマンドの入力文字数制限が機能していなかったのを修正しました。
 ・ーDISP-表示とDone表示が通常表示に戻ってしまうのを修正しました。
 ・デバッグモードでテキスト表示が白になる不具合を修正しました。
 ・Locateコマンドの22ヶ溜めが描画される不具合を修正しました。
 ・コメントがあった場合の非互換性を修正しました。
 ・編集画面からファイルリストへ戻る時 [EXIT]キーを離すまで効かないように変更しました。
 ・コピー&ペーストの選択範囲とカーソル位置がずれているのを修正しました。
  

 Ver 0.07α版
 ・CG10/CG20でデフォルトクロックで起動した場合には自動的にCG50相当にオーバークロック
  するようにしました (58MHz->118MHz)。
 ・入力時に画面が壊れるのを修正しました。
 ・検索、Char選択画面がBack-Colorコマンドに影響されるのを修正しました。
 ・FkeyMenu(にシステム内蔵ファンクションを表示できるようにしました。
  (例) FkeyMenu(1,42)
  テキスト画面の1番左側のファンクションメニューエリアに白抜きEDITが描画されます。
 ・中断再開時の[EXE][F1]キーの入力が継続しないようにしました。
  

 Ver 0.06α版
 ・?拡張コマンドの動作をEXEキー押下で終了するように変更しました。
 ・ファンクションキー表示を修正しました。
 ・エディタ等がBack-Colorコマンドに影響されるのを修正しました。
  

 Ver 0.05α版
 ・ポップアップをシンプルに変更しました。
 ・カラー指定で While が使えるようになりました。
 ・べき乗の不具合を修正しました。
 ・CG10/CG20でのPictファイルの不具合を修正しました。
 ・ファンクションキー表示を修正しました。
 ・セットアップの左右キーで最初と最後に移動するようにしました。
  

 Ver 0.04α版
 ・Plotの移動単位を以下の設定の時だけPixelドットに合わせました。(純正非互換となります)
  ViewWindow 1,379,0,187,1,0
 ・g1mモードとg3mモードの切替をプログラム中で出来ます。
  (書式) '#G1M または '#g1m
  (書式) '#G3M または '#g3m
 ・g3mモードの場合にPlotの解像度をデフォルトで1x1ドットに変更できます。
  (書式) '#SketchThin または '#S-L-Thin
  デフォルトに戻すには
  (書式) '#SketchNormal または '#S-L-Normal
 ・Plotコマンドの前にSketchThinを付けると、それ以降のPlotで移動単位および描画が1ドットになります。
  (書式) SketchThin Plot
  (書式) SketchTHin PlotOn
  
 Ver 0.03α版
 ・g3mモードのViewWindowに対応しました。
  
 Ver 0,02α版
 ・CG10/20に対応しました。
  
 Ver 0.01α版
 - 公開初版


現行アルファバージョンについて
既に公開されている fx-9860Gシリーズ用 C.Basic FX Ver 1.64β をベースに fx-CG50 に対応させるべく開発開始した C.Basic for CG は、現在アルファ版 (初期お試し版) です。多くの機能の実装が終わっていますが不完全なものも残っています。動作確認も進んでおり、既にグラフィックス処理の大幅な高速化を楽しめます。

fx-CG20 にも対応したことで、これまで処理が遅くてあまり使えなかった 純正Casio Basicプログラムも非常に高速動作するので、fx-CG20 の利用価値が高まったと言えます。

現行バージョンでは、期待通りに動作しないものは、まだ未完成と考えて下さい。但しバグの可能性もあるので、作者 (sentaro様) に連絡して応援する...というのが当ブログのスタンスです。



動作確認されたプログラム

フラクタル - シダの葉
プログラムの説明とダウンロード (g3mファイル)
 高精細カラー液晶でのピクセル単位での描画が美しく、処理が大きく高速化される

BugTrace ゲーム [2017/11/22 追加]
プログラムの説明
C.Basic for CG 向けに修正したプログラムのダウンロード
◆ 
高精細液晶のピクセル単位での千鳥格子塗りつぶしの大幅高速化を楽しめる

プログラムライブラリ収録のプログラム
プログラムライブラリ収録プログラム (g1m / g3mファイル)
 主にテキストベースのプログラムだが、一部グラフィックス描画も含む

ライフゲーム
プログラムの説明とダウンロード
 fx-9860Gシリーズ用 C.Basic for FX プログラム (g1mファイル)

落ちゲー: ヨコリス
プログラムのダウンロード
 fx-9860Gシリーズ用 C.Basic for FX プログラム (g1mファイル)

アクションゲーム: ドラゴン
プログラムの説明とダウンロード
 fx-9860Gシリーズ等 C.Basic for FX プログラム (g1mファイル)

3D迷路
プログラムの説明とダウンロード
 fx-9860Gシリーズ用純正Casio Basic プログラム (g1mファイル)

もぐら叩き - カラー版
プログラムの説明とダウンロード
 fx-CG50用純正Casio Basic プログラム (g3mファイル)

マスターマインド Ver4 カラー版
プログラムの説明とダウンロード
 fx-CG50用 純正Casio Basic プログラム (g3mファイル)

マスターマインド Ver4 モノクロ版
プログラムの説明とダウンロード
 fx-9860Gシリーズ用純正Casio Basic プログラム (g1mファイル)



C.Basic for CG プログラミングのための役立ちツール

RGB指定による色確認プログラム - Check RBG Color (Ver 1.4c / 1.5a)
 [2018/02/25] アップデート
 ※ C.Basic for CG で作成(アドインではありません)
 ※ C.Basic for CG Ver 0.34α 以降を使用のこと
  ダウンロード: RBG4c.zip / RGB5a.zip
  C.Basic for CGRGB( コマンドで実際の色を調べる
  プログラムの説明:プログラムライブラリ - RGB指定による色確認プログラム

  RGB4b_2.png 

  RGB4b_3.png 


OS内蔵ファンクションキー探索プログラム - Check System F-Key

 ※ C.Basic for CG で作成(アドインではありません)
   [2017/12/09 アップデート] 本プログラム自体で、システムファンクションを利用
  ダウンロード Ver1.1: SysFunc.g3m   (ファンクション文字に文字列を利用)
   ダウンロード Ver1.2: SysFunc2.g3m (システムファンクション番号利用)
  C.Basic for CGFKeyMenu( コマンドで呼び出せるSystem Function Key# を調べる
  1. 画面左下に システムファンクションキーを表示する
  2. カーソルキーで システムファンクションキー#をスキャンする
   - カーソルキーの長押しで連続スキャン
   - 左右 / キー (??) で1づつ Step スキャン
   - 上下 / キー (▲▼) で50刻みの Skip スキャン
  3. [F4](Input)[EXE] キーで数値の入力
  4. [F5](Help) で使い方説明
   SysFunc 
   Ver 1.1、ファンクションメニューに文字列を利用

   SysFunc2
   Ver 1.2、ファンションメニューに、システムファンクション番号を利用

   C.Basic for FX 用 (fx-9860Gシリーズ用) に移植しました SysFunc2.g1m 





随時、追加・追記します。


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





keywords: fx-CG50、fx-CG20CasioBasic、プログラム関数電卓、C.Basic、C:Basic


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



関連記事

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

新しい "カシオのカタチ" の広がり - Casio fx-260 Solar II

追記 2018/02/17

fx-260 Solar II のデザイン

fx-260_Solar_II.png 
とね日記でこの電卓が紹介されたのをみて、興味を持った。

なんと、fx-JP900 や fx-CG50 とほぼ同じデザインだ。ただその一点で購入した。海外では 2017年発売だが、日本では未発売のモデルだ。Amazon Japan で入手できたのでポチッとした。

関数電卓としては3世代前の古いタイプで、30 と入力してから [sin] を押す方式で、表示は1行しかない。この機種は、既に国内で製造中止になった fx-260A と同じ機能で、デザインのみが刷新されたもの。関数電卓マニア での fx-260A の評価は低い。

Casio Basic がメインテーマの当ブログで紹介するのは、こんな古い設計の電卓をデザインだけリニューアルして発売したことに興味を持ったからだ。

関数電卓の設計としては非常に古い第1世代のもので、カシオは国内では既に発売していない、しかし、リニューアルして海外で売り出す意図はどこにあるのか?私が勝手に言っている"新しいカシオのカタチ" がこんな形で広がりを見せるのは、とても興味深い。

液晶表示タイプのカシオ関数電卓の進化について、私は以下のように考えている。

  世 代表示行数入力方式出力方式代表的機種 (管理人所有機種)
第1世代1行表示
置数後に関数入力

置数と計算結果fx-260 Solar II
FX-502P, FX-602P
 
第2世代2行表示数式通り入力入力表示行と結果出力行を分けるfx-991s, fx-991W, fx-991MS
FX-603P, fx-4500P
 
第3世代複数行表示数式通り自然入力数学自然表示 (積分や総和記号入力も)fx-991ES, fx993ES, fx-995ES
fx-5800P, fx-9860Gシリーズ
 
第4世代高精細
複数行表示
数式通り自然入力数学自然表示 (積分や総和記号入力も)fx-JP900, fx-JP700, fx-JP500
fx-CG50
※ "新しいカシオのカタチ" 適用機種は赤文字で示した。

ハードカバーと裏面が白のもの、左から fx-CG50、fx-JP900、fx-260 Solar II
Casio New Design 

前面パネルまで同じもの、左から fx-CG50、fx-JP900、fx-700JP、fx-500JP、fx-260 Solar II
New_Casio_Design 

第1世代の fx-260 Solar II は小型で薄型、軽量なので、ワイシャツの胸ポケットにすっぽり収まる。普段はせいぜい四則演算くらいしか使わず、実験や工作中にチョット関数計算をしたいという需要は結構あるのだろう。私も工具箱に放り込んでいる。アメリカ価格 $8.99、実売はおそらく半値に近いとすれば、販売台数が見込めるのではないか?

今後のモデルでも同じデザインが適用されるのかだろうか? ちょっと興味がある。


プログラム関数電卓への広がりを期待する

プログラム関数電卓といえば、fx-5800P が唯一の製造機種だ。今後の展開が楽しみだ。fx-5800P に "新しいカシオのカタチ" を適用し、以下のチョットした機能が追加されたらうれしい。

▶ 同様の分離型のハードカバーを適用 (ヒンジ破損の解消)
▶ 高精細度液晶を搭載
 ・ Casio Basic で21桁x7行テキスト表示 (fx-FD10 Pro準拠で良い) [2018/02/17 追記]
▶ 3桁区切り機能を搭載


最低この程度が実現したら、間違い無く買いだと思う。

[2018/02/17 追記]
fx-FD10 Pro の Casio Basic は fx-9860Gシリーズのサブセット版になっていて、グラフィックス機能のないテキストベース出力のみになっている。fx-5800P の後継はこれで良いと思う。fx-JP900 や グラフ関数電卓の MENU画面は、アイコンを並べた形式で共通点がある。以前から fx-FD10 Pro は fx-5800P 後継機のテスト版ではないかと思っており、新しいデザインの展開が始まったことから、いよいよ fx-5800P の後継機への期待が高まってくる。



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


 

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

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



関連記事

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

Casio Basic入門8

Casio Basic入門
<目次>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します
最終: 2018/02/10

 4. CasioBasicを使ってみる(続き)

Chapter 1 - 初級
GetkeyLocate コマンドを使いこなす

前回: Casio Basic入門7


◆ Chapter 1 の目標: キーコードを調べるプログラムを作る

Chapter 1-10で作ったプログラム

プログラム名 CH1-10

"  GET KEYCODE"
Locate 6,3,"HIT ANY KEY"
Locate 8,4,"<AC>:QUIT"
Locate 1,4,"CNT:0  "
Lbl 0
Do

Getkey→K
LpWhile K=0
Locate 1,1,"KEYCODE =    "

Locate 11,1,K
0→C

Locate 5,4,"   "
Do
Isz C

C≦99⇒Locate 5,4,C
C>99⇒Locate 5,4,"--"
LpWhile Getkey
Goto 0


Chapter 1 のメインテーマは、GetkeyLocateの使いこなしです。Getkey はCasio Basicの優れた特徴を支える重要コマンドの一つで、これによって動きのあるプログラムを作り易くなっています。

そこで、Chapter 1 の締めくくりとして、これまでに実際に使ってみた命令やコマンドを使って、ダイナミックに動くプログレスバーを追加して、視覚的に動きのあるプログラムに仕上げます。



Chapter 1-11
ダイナミックな表示機能の実装

Chapter 1 で仕上げるプログラムの動作:


今回追加するプログレスバーの仕様は以下のものです。

1) プログレスバーに > を使うことにします。

2) キーカウントが増えるに従って、>>>> が右へ伸びてゆきます。

3) >
の数はキーカウントと同じです。キーカウントが10の時は、> が10個まで伸びてゆきます。

4) fx-5800P のディスプレイは16桁が最大なので、プログレスバーの最大の長さは > が16個。

5) キーカウントが16を超える場合は、プログレスバーは最大長のままになります。

6) 新しいキーが押された時は、キーカウントが1になると同時に、プログレスバーは > 1個になります。


プログレスバーの実装

プログレスバーは、ディスプレイの2行目に、左から > が伸びてゆくように作ります。

ダイナミックな(動的な)プログレスバーの表示を行うためには、増えてゆくキーカウントCを表示位置に利用して、> の表示位置をCの値に応じて変更できるようにすれば良いのです。

Locate C,2,">"

と記述します。Locate の表示桁を指定するのに、変数Cを使うのがミソです。


この Locate C,2,">" は、キーカウントを反映させてプログレスバーをリアルタイムに表現するため、Doループの中に記述します。

ここまでに出来上がっているプログラムを見ると、このDoループに最初に入った時は、先ず Isz C によりCが1つ増えて、1となります。

そして、Locate C,2,">" が実行されると、Locate 1,2,">" と同じことになり、> が左端に1つ表示されます。


キーを押し続けた時は、このDoループが回るので、キーカウントCは、1つづつ増えてゆきます。すると、Locate C,2,">" のCも増えるので、> の表示桁の位置も順次増えてゆき、プログレスバーが右へ伸びてゆきます。

この部分のプログラムを詳細に見てゆきましょう。

Do
Isz C
C≦99⇒Locate 5,4,C
C>99⇒Locate 5,4,"--"
Locate C,2,">"

LpWhile Getkey


キーが押され続けると、このDoループが回るので、追加した Locate C,2,">" により、次々に

Locate 1,2,">"
Locate 2,2,">"
Locate 3,2,">"
Locate 4,2,">"
Locate 5,2,">"

 ・
 ・
 ・
Locate 14,2,">"
Locate 15,2,">"
Locate 16,2,">"


が実行されることになります。


ディスプレイの2行目だけに注目すると、

Locate C,2,">"  (C=1の時)
>               

Locate C,2,">"  (C=2の時)

>>              

Locate C,2,">"  (C=3の時)
>>>             

Locate C,2,">"  (C=4の時)
>>>>            

Locate C,2,">"  (C=5の時)

>>>>> 
          

 ・
 ・
 ・

Locate C,2,">"  (C=14の時)
>>>>>>>>>>>>>>  

Locate C,2,">"  (C=15の時)

>>>>>>>>>>>>>>> 

Locate C,2,">"  (C=16の時)
>>>>>>>>>>>>>>>>


というように、プログレスバーが1つづつ右へ伸びてゆきます。


Locate
コマンドは、引数に変数を使えるため、このようなことが可能になります。


※ CasioBasicコマンドリファレンス
      - Locateコマンド



さて、Locateコマンドは、表示する内容が16桁以上になるとエラーになります。そこで、このエラーを回避するには、Cが16を超えると Locate C,2,">" を実行させないことです。言い換えれば、Cが16以下の時だけ、Locate C,2,">" を実行させます。

そこで、条件ジャンプ命令 ⇒ を使って、

C≦16Locate C,2,">"

とすれば良いので、Doループを、以下のように修正します。

Do
Isz C
C≦99⇒Locate 5,4,C
C>99⇒Locate 5,4,"--"
C≦16⇒Locate C,2,">"

LpWhile Getkey



改めてプログラム全体を書きます。


"  GET KEYCODE"
Locate 6,3,"HIT ANY KEY"
Locate 8,4,"<AC>:QUIT"
Locate 1,4,"CNT:0  "
Lbl 0
Do

Getkey→K
LpWhile K=0
Locate 1,1,"KEYCODE =    "

Locate 11,1,K
0→C

Locate 5,4,"   "
Do
Isz C

C≦99⇒Locate 5,4,C
C>99⇒Locate 5,4,"--"
C≦16⇒Locate C,2,">"
LpWhile Getkey
Goto 0



赤文字で示した1行を追加するだけで、プログレスバー機能の追加ができそうです。このように、たった1行だけで、ダイナミックな表示機能を追加できるのは、プログラミングの面白いところですね。

但し、残念ながらこのままだと、1つ問題があります。実際にプログラムを走らせてみると分かります。

一旦プログレスバーが伸びた後、別のキーを押しても、プログレスバーは伸びたままになってしまいます。新たなキーを押した時、プログレスバーを一旦消す必要がありますが、その動作をプログラムしていないのが原因ですね。そこで、何か新しいキーが押された時、つまりキーカウントを行うDoループの前で、プログレスバーを消去する動作を追加しましょう。


このプログラムには、Doループが2つあります。最初のDoループは、キーコードを取得するためのループです。

キーコードが取得されるまで、つまり何かキーが押されるまでは、最初のDoループが回り続けます。そして何かキーが押された時、このループを抜けて、動作が下へ進みます。

「プログラムは、何も指示が無ければ、上から下へ動作する」と言う基本を思い出してください。

2つめのDoループの Do の1つ上に Locate 5,4,"   " (スペース3個)がありますが、これはキーカウント表示にスペース3個を上書きして表示の初期化を行っています。

従って、プログレスバー表示の初期化も、ここで、つまり Locate 5,4,"   " の直後で行います。プログレスバーの初期化は、> を1つだけ表示し、残る15桁全てをスペースにして、上書きすれば良い、と分かると思います。

具体的には、

Locate 1,2,">               "  (スペース15個)

を記述します。

これで、プログラムは完成です。完成したプログラム名を GET KEYCODE とします。


プログラム名 GET KEYCODE

"  GET KEYCODE"
Locate 6,3,"HIT ANY KEY"
Locate 8,4,"<AC>:QUIT"
Locate 1,4,"CNT:0  "
Lbl 0
Do
Getkey→K
LpWhile K=0

Locate 1,1,"KEYCODE =    "
Locate 11,1,K

0→C

Locate 5,4,"   "
Locate 1,2,">        "
Do
Isz C

C≦99⇒Locate 5,4,C
C>99⇒Locate 5,4,"--"
C≦16⇒Locate C,2,">"
LpWhile Getkey

Goto 0



改めて完成したプログラムは、たった20行のコンパクトなものです。1行1行に意味があるのですが、意外にシンプルですね。

プログラム全体をおさらいします。

1) プログラム全体の基本構造は、Lbl 0Goto 0 で作った大きなループです。

2) 最初に、プログラム名の表示、操作方法の表示、キーカウントの初期表示を行います。

3) キーコード取得は、1つめの Doループ で行います。何かキーが押されるまでこのループが回っています。

4) その後、キーコードの表示を行います。

5) 続いて、キーカウントの初期化、表示の初期化を行います。

6) 2つめのDoループで、キーカウントの表示とプログレスバーの表示を行います。キーが長押しされている間はこのループが回っています。

7) 以上の動作は Lbl 0 と Goto 0 のループにより、エンドレスに継続されます。

8) [AC]キーを押した時、プログラムは終了します。


プログラムを見て、この 1) ~ 8) を説明できれば、ほぼ完全に理解できたと言って良いと思います。



Chapter 1-12
プログラムのバックアップ

完成させたプログラムは、fx-5800Pのメモリの中にあります。

fx-5800P にはパソコンとのリンク機能が無いので、プログラムをパソコンに転送して保存することができません。fx-5800Pのプログラムをバックアップするには、オプションのリンクケーブルを使って、もう1台の fx-5800P へプログラムを転送してバックアップする方法のみが提供されています。

fx-5800Pで作ったプログラムのバックアップ方法に関するカシオの説明こちら


せっかく作ったプログラムは、操作ミスやfx-5800Pの故障により失われる可能性があるので、バックアップしておくべきです。しかしそのために、fx-5800Pやリンクケーブルを購入する気にもなれません。

注意!!
fx-5800P の初期化操作を行うと保存されているプログラムが全て消えてしまいます。
[MODE] [▼] [3] (SYSTEM) [3] (Reset All) とすると、初期化されるので要注意です!

[2018/02/10 追記]
ついに fx-5800P がPCリンク可能に

この記事を書いたあと、PCへのバックアップ手段が登場していますが、多少の費用が必要です。費用をかけないなら依然としてPCへのバックアップ手段が使えません。

PCへのバックアップができないのは、なんとかして欲しいものです。しかし無いものは無いので、別のバックアップ方法が必要です。要するに作ったプログラムを転記して保存するしかありません。

転記作業は、書き間違いがあり得ますが、そこは慎重に書き写すしかありません。そして転記する先は、紙媒体か電子媒体の2通りが考えられますが、私はエクセルファイルに転記して保存しています。

実は、私にとっては本ブログがもう一つの保存媒体になっています(^^;)

エクセルに保存する際、フォントに Consolas を指定しています。このフォントを使うのは、数字のゼロとアルファベットのオーの区別が明確なためです。数字のゼロは、斜め線が入るので、オーとはっきり異なります(以下参照)。
fx-5800P の液晶表示でも、数字のゼロに斜め線が入ったフォントを使っています。

エクセルなど電子媒体で保存するもう一つの利点として、スペースの数の確認が容易なこともあります。


GetKeycodeSource 


他に良い方法があれば教えて頂ければ有り難いのですが、今のところ私はこの方法を採用しています。

[2015/01/07 追記]
プログラムを数多く作ったので、1台の fx-5800P に入りきらなくなったので、もう一台入手して一方はバックアップ用、もう一方は日常使いとしています。



Chapter 1
おわりに

GetkeyLocate があること、そして条件判定で 値が0なら"偽"、0以外なら"真"となることが Casio Basic の最大の優位点だと思っています。そこでChapter 1 では、これらのコマンドの使いこなしを通じて、fx-5800P のプログラミングを紹介しました。

プログラミング初心者の方には、いきなりループ処理が出てきて面食らったかも知れませんが、Chapter 1 を完璧に理解すれば、プログラミングの基本をかなり習得したことになります。言い換えれば、ループ処理に馴染むことがプログラミング習得の大きなステップになります。

今回作った Get Keycode プログラムは、実際にプログラムを作る際に、キーコードが分からなくなって、取扱説明書が手元に無くても、プログラムを走らせれば調べることが出来るので、私には必携プログラムです。

キーコード取得プログラムは、プログラムライブラリ - キーコード取得 にもまとめています。今回 fx-5800P 用に作ったプログラムは、実は fx-9860GII や fx-CG20 でもそのまま正常動作する互換性100%のプログラムです。但し画面がより広い fx-9860GII 向けに表示の配置を最適化したプログラムも 上記のプログラムライブラリで紹介しています。fx-9860GII や fx-CG20 はダウンロードしたプログラムファイルをそのまま電卓に転送する機能があるので、プログラムファイルをダウンロードできるようにしています。






「CasioBasic入門」は、Chapter 2 へ進みます。そこでは簡単なアクションゲームを作ってゆこうと思います。

以前作ったもぐら叩きゲーム(詳細はこちら)は、初心者の方にはチョット敷居が高いと思いますので、もう少し単純なゲームを作ってゆこうかと考えています。



つづく...

⇒ CasioBasic入門9 / 目次




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


 



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

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

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

Sprintf( - コマンドリファレンス

Casio Basicプログラミング - コマンドリファレンス
<コマンドリファレンス・トップ>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します

2018/01/17
追記 2018/02/05


[C.Basic] [FX / CG]


Sprintf(




数値から文字列へ変換する。書式指定が必要になる。なお、純正Casio Basicには数値から文字列への変換コマンドは無い。

(書式) Sprintf("書式指定子",引数1[,引数2[,引数3]])
※ 書式指定子はANSI Cの sprintf と完全互換ではない (下記参照)。
※ 引数は3個まで指定可能。
※ 引数が整数の場合はプレフィックス%を、実数にはプレフィックス# を指定する。
※ 引数のプレフィックスを省略した場合は、その時点での実行モード(実数か整数)に従う。

(注) Sprintf( は引数チェックをしていないので、間違った設定によりシステムエラーになる
   可能性有り。引数チェックのある ToStr( や他の文字列コマンド使用を検討しても良い。


(キープレス) [SHIFT]-[VARS](PRGM) [F6](▷) [F6](▷) [F3](ExStr) [F3](Sprintf)

(例) Sprintf("A=%4d B=%3.2f",%A,#B)
※ A=1234, B=45.68 の場合、変換される文字列は "A=1234 N=45.68" となる。

(例) Sprintf("%g%s",#1.234,"sec")→Str 1
※ Str 1 に代入される文字列は "1.234sec" となる。

(例) Sprintf("Result=%08.3f",#123.45)
※ 変換される文字列は、全8桁、小数点以下3桁でセロ詰めで "Result=0123.450" となる。

(例)
Sprintf ("%e",#123456.78)
※ 変換される文字列は、指数表示で "1.234568E+05" となる。

(例) Sprintf("%.3e",#123456.78)→Str 1
※ 変換される文字列は、小数点以下3桁の指数表示で "1.235E+05" となる。


書式指定子"%[フラグ文字][変換文字数指定][.小数点以下文字数指定]<変換指定子>"
(注) C.Basic for FX での書式指定子はCasio SDK準拠、C.Basic for CG は以下のようになる。
 " " の中に記述する
%に続いて以下の[フラグ文字]を指定する。指定しなくても良い。
 0 ゼロ詰めを指定するフラグ。左側に余った空白は全て0になる。
 空白 符号付き正の数の場合左側に1文字空白を空ける。
 - 左詰めを指定する。[F5](CHAR) のキャラクタ "-" 使用 [2018/02/05 追記]
続いて[変換文字数指定]で全文字数を指定する。指定しなくても良い。
さらに "." に続いて小数点以下文字数を指定する。指定しなくても良い。
最後に以下の<変換指定子>を指定する。これは必ず指定する。
 d 10進数整数に変換する。
 o 符号なし8進数に変換する。
 u 符号なし10進数に変換する。
 x 符号無し16進数に変換する。10~16までは小文字 a, b, c, d, f で表示
 X 符号なし16進数に変換する。10~16までは大文字 A, B, C, D, F で表示
 b / B 符号なし2進数に変換する。
 f 実数に変換する。
 e / E 指数に変換する。変換文字数指定は無視され、小数点以下文字数は有効
 g / G 実数か指数に最適化して変換する。
 s 文字列に変換する。




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


 

keywords: プログラム関数電卓、Casio Basic、C.Basic、プログラミング





関連記事

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

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

やす (Krtyski)

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


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

プログラム電卓を実際に使って気づいたこと、自作プログラム、電卓での Casio Basic, C.Basic そして Casio Python プログラミングについて書いています。

なお管理人はカシオ計算機の関係者ではありません。いつでもどこでもプログラミングができるプログラム電卓が好きな1ユーザーです。


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

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

ブロとも申請フォーム

この人とブロともになる

QRコード
QR