e-Gadget - プログラム関数電卓 アドイン版 Caso Basic

アドイン Casio Basic - トップページ

C.Basic - アドイン Casio Basic
<Top Page>

内容の更新や修正を随時行います.

初版 2015/12/18
更新 2020/05/31
更新 2021/06/13
最終更新 2023/12/11


C.Basic for FX 最新版: Ver 2.47 beta build 02 [2023/12/11]
C.Basic for CG 最新版: Ver 1.47 beta build 02 [2023/12/11]


目 次
  C.Basicとは?
  最新バージョンのダウンロード
  C.Basic のインストール
  C.Basic の使い方とコマンドリファレンスなど
  チューンアップツール・アドイン
  C.BasicC:Basic の潜在能力 - サンプルプログラム
  C.Basic 英語版Webマニュアル 
[作成中]
  最近のアップデート履歴
  サポートページ
  
 C.Basic for FX はこのページでサポートします
  
 C.Basic for CG は以下のページでサポートします
   ・C.Basic for CG ベータ版公開 - Part 1

    ・
C.Basic for CG アルファ版公開 - Part 3 (旧版)
   ・
C.Basic for CG アルファ版公開 - Part 2 (旧版)
   ・
C.Basic for CG アルファ版公開 (旧版)



最近のアップデート履歴

  C.Basic for CG
  [2023/12/11] C.Basic for CG Ver 1.47 beta build 02 にアップデート 
    ⇒ 詳しくは C.Basic for CG サポートページへ

  C.Basic for FX 
  [2020/12/11] C.Basic for FX が Ver 2.47 beta build 02 にアップデート


C.Basic for FX Ver 2.47 の更新履歴

(build 02)
  • C.Basicコマンド専用カタログ機能からヒストリーを起動して]EXIT]でカタログに戻らない不具合を修正しました。
  • メインメモリ上のプログラムでLoad(コマンドを使った場合、フォルダ内のファイルにアクセスできない不具合を修正しました。
  • ファイル表示の反転位置がずれていたのを修正しました。(FX版のみ)

(build 01)
  • C.Basicコマンド専用カタログ機能を追加しました。(FX版は[SHIFT]+[5]で起動します)
  • ファイルモードと変数表示のミニフォント表示に対応しました。(FX版、エディタのフォントサイズ変更と共通です)
  • ?コマンドのミニフォント表示に対応しました。(FX版)
    (書式)?([@][x][,y][,width][,"空白キャラクタ"][,入力桁数][,R])
    (例)?(@30,40,5,">",5)A
    現在のVRAMのピクセル座標(X=30,Y=40)の位置でAの値をミニフォントで表示して入力待ちになります。空白は">"で埋められます。
  • 非対応のコマンド(内部コード0x7Fxx)でフリーズする不具合を修正しました。
  • エラー表示を変更しました。"Missing WhileEnd" と "Missing Switch"等(ErrorCode_List.txtを参照してください)
  • GIIモデル以外の隠しRAMの初期化機能を無効にしました。
  • BeepコマンドがACキーで中断できるようにしました。
  • 行列とリストの初期化でRGB()HSV()HSL()コマンドが最初にある場合にエラーになっていた不具合を修正しました。(1.45CGエンバグ)
    (例){RGB(255,0,255),123,456}
  • LocateコマンドやText等の描画指定を括弧で記述することで数式指定できるようになりました。
    (書式1)Locate x,y,Value/Strings[,N/O/R/V]
    (書式2)Locate x,y,Value/Strings[,(描画指定)]
    N:0 'normal
    O:1 'or
    R:2 'reverse
    V:3 'reverse or
    (例)Locate 2,3,"ABC",(2)
       Locate 2,3,"ABC",(R) ' R=2
    どちらも
       Locate 2,3,"ABC",R
    と同じです。
  • FkeyMenuの描画指定を括弧で記述することで数式指定できるようになりました。
    (書式1)FKeyMenu( n[~m], "文字列"/アイコン番号 [,C/M/N/R/I/S/U/L [,アイコン色 [,アイコン背景色]]] )
    (書式2)FKeyMenu( n[~m], "文字列"/アイコン番号 [,(描画指定) [,アイコン色 [,アイコン背景色]]] )
    基本描画指定における数値(0~4)
    C:( 0)消去します。
    N:( 1)ノーマル白アイコン。(省略可)
    R:( 2)右下が欠けた黒アイコン
    I:( 3)四角い黒アイコン
    S:( 4)縁取りのある黒アイコン
    以下の修飾は基本描画指定値に足して指定します。
    U:( 16)文字列を1ドット上側に表示。
    L:( 32)表示範囲を左右2ドット広げます。
    M:( 64)マスク処理します。
    m:(128)枠だけマスク処理します。(FX版のみ)
    (例)FKeyMenu (1, "string",NULM)
       FKeyMenu (1, "string",(1+16+32+64))
    上記の2つは同じ結果になります。

C.Basic for FX Ver 2.46 の更新履歴

(build 03)
  • メインメモリのお気に入り機能において大文字と小文字しか違わない同名ファイルの不具合を修正しました。
  • TicksWaitのカウントが1多かったのを修正しました。
    (修正前)TicksWait 4 が TicksWait 5 と同じでした。
  • 同梱ソースファイルの不備でビルドできない不具合を修正しました。
  • フォルダ位置に復帰できなくなっていた不具合を修正しました。(build01 エンバグ)

(build 02)
  • ファイルリストにおいてフォルダ上にカーソルがあるときに新規ファイルを作成する場合にカレントフォルダに作成されるようにしました。
  • ファイルを上書き保存する場合、以前のファイルよりもサイズが大きい場合は上書き保存するように書き込み方法を変更しました。(GIIIモデルのみ。)
    ※ ファイルサイズが小さくなる場合は以前のファイルを消去してから新規保存します。

(build 01)
  • 初回起動時に[CBasic]フォルダを作成しそこをデフォルトの保存フォルダとするようにしました。(CG版とFXIII版のみ。)
  • 整数モード時のFor~Nextの制御変数の終値が互換でなかったのを修正しました。
  • 文字列の長さを制限した場合にそれ以上の長さの文字列の代入に失敗する不具合を修正しました。
    (長さ -1 が最大格納文字数になります。)
  • Pol()Rect()関数において、MatBaseが0の場合にListAns[0]ListAns[1]に答えが返らない不具合を修正しました。
  • ENG表示の丸め処理を修正しました。
  • RefとRref関数を使用すると固まる不具合を修正しました。
  • C.Basicコマンド入力で入力できなかったコマンドを追加修正しました。



C.Basic for FX Ver 2.45 の更新履歴 

(build 20)
  • If [Flase] ~ ElseIf 間の飛越キャッシュの不具合を修正しました。
  • Syetem()コマンドでOSのマイナーバージョンが取得できるようになりました。
    (書式)System(-22)
  • やす(Krtyski)様作成のSystem()コマンドサンプルプログラム(Graph90+E対応版)をアップデートしました。(System_sampleフォルダ)
(build 19)
  • System(-1)での機種判定にfx-9750GIIIを追加しました。
    0:fx-9860G
    1:fx-9860G Slim
    2:fx-9860GII(SH3)
    3:fx-9860GII(SH4A)
    4:Graph35+EII(SH4A)
    5:fx-9860GIII(SH4A)
    6:fx-9750GIII(SH4A)
  • やす(Krtyski)様作成のSystem()コマンドサンプルプログラム(fx-9750GIII対応版)をアップデートしました。(System_sampleフォルダ)
  • Try~TryEndコマンドからBreakで脱出した場合、それ以後、[AC]中断もAcBreakも効かなくなる不具合を修正しました。
  • ReadGraph/WriteGraph/DotGet/DotPutコマンドを現在のVRAMに作用するように仕様変更しました。
  • 描画対象VRAMを退避されているテキストVRAM領域とグラフィックスVRAM領域に変更するScreen.Vコマンドを追加しました。
    (書式)Screen.V
     デフォルトのVRAMに戻します。
    (書式)Screen.VT
     テキストVRAMの退避領域を描画対象にします。
    (書式)Screen.VG
     グラフィックスVRAMの退避領域を描画対象にします。
(build 18)
  • エディタのカーソル位置記憶がプログラム実行終了後にリセットされていいた不具合を修正しました。(build12でのエンバグです。)
  • 行列表示を修正しました。
  • セット・アップで隠しメモリのOn/Offは確認ポップアップを出すようにしました。
(build 17)
  • プログラム開始時に?入力でアルファモードになっていた不具合を修正しました。(build16エンバグ)
  • CPLXの行列表示が異常に遅かったのを修正し、3列から4列表示に変更しました。
  • 隠しメモリの初期化を修正しました。
(build 16)
  • System(-1)での機種判定にfx-9860GIIIを追加しました。
    0:fx-9860G
    1:fx-9860G Slim
    2:fx-9860GII(SH3)
    3:fx-9860GII(SH4A)
    4:Graph35+EII(SH4A)
    5:fx-9860GIII(SH4A)
  • やす(Krtyski)様作成のSystem()コマンドサンプルプログラム(fx-9860GIII対応版)をアップデートしました。(System_sampleフォルダ)
  • 自動インデント機能でのSwitch~Case~SwitchEndの自動整形を改善しました。
  • ElseIfコマンドの直後にコメントがある場合、次のコマンドがIfの場合に終了していた不具合を修正しました。
  • 行列の初期化後に文字列から文字列への代入で代入されない不具合を再修正しました。
    (コピーされない例)
         ClrMat
      "ABC"->Str 1
      Str 1->Str 3
  • Seqコマンドで刻み値が少数の場合に終値に到達しないことがある不具合を修正しました。
    (例)Seq(X, X, 0.1, 1, 0.05 )
  • CPLXモード以外で虚数を使うと無限ループになる不具合を修正しました。(build15でのエンバグです。)
  • 省略乗算の不具合を修正しました。(build15でのエンバグです。)
(build 15)
  • Colon様のサポートにより関数メモリの実装を開始しました。
  • デフォルトのインデックス開始値が0の場合にListの自動確保が出来なかった不具合を修正しました。
  • ファンクションメモリー(Fn)のStore/Recall/SEEのSEEをEditに変更しました。
(build 14)
  • ファンクションメモリー(Fn)のStore/Recall/SEEのSEEで[F5](Edit)を追加し編集可能になりました。
  • ファンクションメモリー(Fn)のStore/Recall/SEEの不具合を修正しました。
(build 13)
  • ファンクションメモリー(Fn)およびグラフメモリー(Y)をデフォルトで数式評価とし、
     文字列関数内および文字列に続く場合は文字列として評価するように変更しました。
     (数式評価)
      fn1->A
      fn1(123)->A
      Locate 1,1,fn1
      Text 1,1,fn1(123)
     (文字列評価)
      "123"+fn1->Str 1
      fn2->Str 2
      StrJoin(fn1,Str 1)
  • 文字列から文字列への代入で代入されない不具合を修正しました。
    (fn3にコピーされない例)
      ClrMat
      "123"->fn1
      "ABC"->Str 1
      Str 1->fn3
  • ファンクションメモリー(Fn)のStore/Recall/SEEを追加しました。
     (※エディタではクリップボードの内容がストア対象です。1行入力では1行全体がストア対象になります。)
  • F_Start/F_End/F_pitchを独立変数に変更しました。
  • ?コマンドで文字列が表示される場合にアスキーコードにデコードしないように修正しました。
(build 11)
  • Screen#、Screen%を連続実行するとエラーになる不具合を修正しました。
  • Screen#、Screen%からListAnsに転送した場合の不具合を修正しました。
    (例)Screen#0,0→List Ans
  • ファイルモードの検索機能を改善しました。
     アルファベットキーを押すと検索窓が開き検索モードになります。
     検索窓では左右移動等、通常の入力が可能です。
     検索窓を解除するには[EXIT]を押してください。
     カーソル上下、[EXE] [F1](EXE) [F2](EDIT) [F3](NEW)キーは検索窓を閉じること無く実行できます。
(build 10)
  • ファイルモードでアルファベットキーによるダイレクト選択時に[SHIFT]、[ALPHA]、小文字や数字が指定が出来るようになりました。
     [F4](A<>a): 大文字小文字切り替えです。
     [F5](CHAR)
     [F5](→Folder): フォルダサーチに切り替わります。
     [DEL]: 一文字戻ります。
     [AC]: 全部消します。
     [EXIT]: 元に戻ります。
     [X^2]: ~
     [^]: '
     [(-)]: @
     [・]: スペース
     [EXP]: "
(build 09)
  • ””コマンドの実行速度が遅かった不具合を修正しました。
  • ファイルモードでアルファベットキーによるダイレクト選択時に2文字以上の指定が出来るようになりました。
     [DEL]:一文字戻ります。
     [AC]:全部消します。
  • ファンクションメモリー(Fn)およびグラフメモリー(Y)に引数が無い場合は文字列として評価するようにしました。
  • インデントの必要なコマンド(If,Else..)の直前で改行した場合にインデントが余分に付加される不具合を修正しました。
(build 06)
  • エミュレータの判定方法をハードウェアID判定に変更しました。(0x8000FFD)
(build 03)
  • ラベルの検索時にコメントでの'#に続くオプションの設定が変更されてしまう不具合を修正しました。
(build 02)
  • VarPtr()コマンドで行列/List/Vctを指定した場合、その添字が常に実数評価されていた不具合を修正しました。
  • FKeyMenuコマンドにカラー引数があってもエラーにならないように修正しました。
(build 01)
  • SortA()/SortD()コマンドに文字配列のソートを追加しました。
    (例)SortA($Mat A)
     Mat Aの文字列が昇順にソートされます。
  • ReadMe、マニュアル更新しました。
  • 行列画面で53以降の拡張領域の一覧表示をサポートしました。
    [←]:26戻ります。
    [→]:26進みます。
  • FkeyMenu(コマンドを拡張しました。
    (書式)FKeyMenu( n[~m], "文字列"/アイコン番号 [,C/M/N/R/I/S/U/L [,アイコン色 [,アイコン背景色]]] )
     ※ "アイコン色" はデフォルトで黒い部分の色指定です。
     ※ "アイコン背景色" はデフォルトで白い部分の色指定です。
     ※ 3 番目以降の引数は省略可能です。引数を省略した場合でも”,"は必要です。
    (書式)FKeyMenu( n[~m], "文字列"/アイコン番号 [,C/M/N/R/I/S/U/L] )
     ※ 3番目以降の引数は省略可能です。引数を省略した場合でも”,"は必要です。
     3番目のオプションは順不同です。
     C:消去します。
     M:マスク処理します。
     m:枠だけマスク処理します。
     N:ノーマル白アイコン。(省略可)
     R:右下が欠けた黒アイコン
     I:四角い黒アイコン
     S:縁取りのある黒アイコン
     U:文字列を1ドット上側に表示。
     L:表示範囲を左右2ドット広げます。
    (例)FKeyMenu (1, "string")
    (例)FKeyMenu (2~3, "longstring",R)
    (例)FKeyMenu (4~5, "longstring",I)
  • やす(Krtyski)様 & CalcLoverHK様 & Colon様作成のFKeyMenu(コマンドのサンプルプログラムを同梱しました。(C.Basic_sample\FKeyMenu_sample)
  • エディタで[SHIFT]を押したときに編集可能空きエリアのサイズをステータスエリアに表示するようにしました。
  • System()コマンドにエミュレータ判定を追加しました。
    (書式)System(-7)
     実機では0、エミュレータでは1が返ります。
  • DBL#モードにおいて、一時停止と変数表示での虚数表示がされていたのを修正しました。
  • 変数表示をINT%,DBL#,CPLXで独立させました。




C.Basic とは?


C.Basic は Casio Basic で楽にコーデイングしたものを高速動作させようというコンセプトでスタートした Casio Basic 上位互換を目指したプログラミング環境で、アドインプログラムとして提供するものです。

fx-9860G 以降で Add-in 機能のある Casio グラフ関数電卓で動作し、純正 Casio Basic プログラムとの上位互換動作を目指し、さらに純正コマンドの機能を拡張したり、新規コマンドを追加しています。

[2020/05/31 追記]
以前は fx-9860Gfx-9860GII の Add-in プログラムを作成するための Casio純正 SDK が提供されていましたが、これらのモデルは国内では販売終了となっており、C言語で作成して高速動作する Add-in プログラムは過去のものになっています。2015年に開発が始まった C.Basic は 現在では Add-in プログラム並の処理能力を提供できるレベルにまで進化しています。海外の Planet Casio ではプログラミングコンテストの開発環境の1つに C.Basic が選ばれ、国際的に認知されています (CPC #26 - At the limit of pysics! 参照)。


C.Basic から C:Basic
現在はインタープリタ動作する C.Basic (ドット1つ) の開発が続いています。将来的に、コンパイラ機能によりさらに高速化を狙ったものを C:Basic (ドット2つ) と呼んでおり、いずれ C:Basic の提供を構想していますが、詳細は未定です。
C.Basic は当初モノクロ液晶搭載モデルの fx-9860G および fx-9860GII で動作するものから開発が始まり、その後 fx-9860GIII や fx-9750GIII への対応を進めており、さらに高精細カラー液晶を搭載した fx-CG10 / CG20 および fx-CG50 で動作するものも開発・提供しています。fx-9860G などのモノクロ液晶モデル対応版を C.Basic for FX、fx-CG50 などの高精細カラー液晶搭載モデル対応版を C.Basic for CG と呼んでいます。

C.Basic for FX は国内外でユーザーに鍛えられてきて、Ver 2.00 以降からようやく正式版としてリリースされました。
一方、C.Basic for CG はアルファ版でスタートし、Ver 1.00 以降からベータ版としてリリースされています。
 
純正Casio Basic と C.Basic / C:Basic について
純正Casio Basic は、言語機能がシンプルで電卓に直接入力して気楽に使えるのが最大の特徴です。限られたハードウェアリソースしか持たない電卓でのプログラミング環境として、最低必要限の機能を有しています。PC上の開発言語と同じことを Casio Basic に要求するのはそもそも考え違いでしょう。

とは言っても Casio Basic は、ブロック構造の直線的組立てでプログラミング可能で、さらに実用的なプログラムを効率的に作成可能ですが、ローカル変数や関数作成をサポートしておらず、構造化プログラミング言語ではありません。しかし、ブロック構造を直線的に組み立てたコーディングが可能で、実際に実用的なプログラムを効率的に作成可能な、枯れた実用プログラミング言語と言えます。

Casio Basic
 は計算量の大きな処理を行ったり、グラフィックスでビットマップ描かせると、それらの処理が非常に遅いことに気づきます。C.Basic (現行インタープリタ版)は、Casio Basic とほぼソースレベル互換でありながら10~20倍の処理速度が得られます。C:Basic (将来のコンパイラ版) は、予備実験の結果、さらに C.Basic (インタープリタ) の10倍程度の処理速度になりそうな見通しが得られています。

C.Basic / C:Basic プロジェクトは、sentaro様 (本アドインの作者、海外では sentaro21)、Colon様 (システムコールなどOSの深いところまで探索し本質的なところで開発に寄与頂いている), Krtyski (開発のコミュニケーションの場を提供する当ブログの管理人、海外でも Krtyski)、さらに国内外の有志のユーザーの皆様により推進しています。

  ⇒ C:Basic プロジェクト


▋ C.Basic 最新バージョンのダウンロード

 ▶ C.Basic for FX (fx-9860G / fx-9860GII / fx-9860GIII / fx-9750GIII 用)
  ⇒ C.Basic for FX Ver 2.47 beta build 02 (公式最新版)
  ⇒ C.Basic for FX Ver 2.46 beta build 03
 (1つ前の公式最新版)
   ・ C.Basic for FX の入手 (少し前のバージョンも入手できます)

 ▶
C.Basic for CG (fx-CG10 / fx-CG20 / fx-CG50 用)
  ⇒ C.Basic for CG Ver 1.47 beta build 02 (公式最新版)
  ⇒ C.Basic for CG Ver 1.46 beta build 03
 (1つ前の公式最新版)
   ・C.Basic for CG の入手 (少し前のバージョンも入手できます)

注意: 万一に備えて、電卓内のプログラムやデータをバックアップしておくことを勧めます。



C.Basicのインストール

  C.Basic for FX
ダウンロードしたZIPファイルに含まれている CBASIC.g1a を fx-9860G シリーズ、fx-9750GIII、Graph35+EII のストレージメモリに転送します。転送には PCリンクソフト FA-124を用い、電卓とPCをUSBケーブルで接続します。併せてFontフォルダと FontEditフォルダをストレージメモリに転送し、HELPフォルダにある ~~HELP1.g1m をストレージメモリに転送します。
  C.Basic for CG
ダウンロードしたZIPファイルに含まれている CBCGxxx.g3a (xxxはバージョンを示す) を fx-CGシリーズ、Graph90+E のストレージメモリに転送します。転送には、USBケーブルで接続し Windows標準のエクスプローラでファイルやフォルダを操作します。併せて@FontフォルダとFontEditフォルダをストレージメモリに転送し、HELPフォルダにある ~~HELP1.h1m と ~~HELP3.g3m をストレージメモリに転送します。

 詳しくは、C.Basicのインストール を参照。



C.Basicの使い方とコマンドリファレンスなど [最新バージョンに対応しています]

C.Basic for FX

C.Basic for CG
これらのドキュメントは、ダウンロードしたZIPファイルに含まれているものです。



 チューンアップツール - アドイン

電卓内部のクロックを調整して高速動作させるチューンアップツールを C.Basic と一緒に使うと、さらに高速化が可能です。
このプログラムの評判については、下記参照ください;
- @ Unversal Casio Forum
- @ CEMETECH
- @ TI-Planet

管理人は2年以上使っていますが、今のところ問題は起きていません。安全対策がよく考えられていて、おそらく電卓を壊すことは無いでしょう。但し、念のため電卓のデータバックアップは行って下さい。

機種毎に用意されています。

- fx-9860G、fx-9860GII USB POWER GRAPHIC(前期バージョン SH3採用品): Ftune
- fx-9860GII USB POWER GRAPHIC 2(後期初期 SH4採用品): Ftune2
- fx-9860GIII、fx-9750GIII、Graph35+EIIFtune3
- fx-CG10 / CG20: Ptune2
- fx-CG50、Graph90+E: Ptune3


※    違う機種のものを利用しないよう注意してください。

充電池 / 充電器 の紹介
チューンアップすると消費電力が大幅に増えて、1日で電池が空になることもあります。そこで充電池が経済的です。カシオのグラフ関数電卓は、単4アルカリ電池(1.5V) と 単4ニッケル水素充電池(1.2V) が使える。そこでニッケル水素充電池と充電器のお勧めをまとめました。⇒ こちら



C.Basic と C:Basic の潜在能力 - サンプルプログラム

サンプルプログラムを使って、C.BasicC:Basic の潜在能力を見てみましょう。.

ライフゲーム (Conway's Game of Life) - 高速グラフィック描画

C.Basic は純正 Casio Basic の上位互換であり、拡張コマンドや言語機能があります。

ビットマップを素早く更新するようなプログラムを純正Casio Basic で作ろうと考えるのは無謀なことです。しかし C.Basic を使えば、高速ビットマップ更新が可能で、例えばライフゲームを楽しめます。


fx-9750GIII での実行例 - 517世代までの実行時間: 59.4秒
  ダウンロード: ライフゲーム Ver 2.45
  Ftune3 で 235.9MHz にチューンアップ
  C.Basic for FX Ver 2.45 build 20 以降のバージョンを推奨

=====

コンパイラ版の C:Basic をシミュレートするため、ライフゲーム のパターンを1世代更新する処理部分を、ネイティブコードの関数 "DotLife()" に置き換えて実行したのが以下の動画です。 


fx-9750GIII での実行例 - 517世代までの実行時間: 7.8秒
  ダウンロード: ライフゲーム Ver 2.45F
  Ftune3 で 235.9MHz にチューンアップ
  C.Basic for FX Ver 2.45 build 20 以降のバージョンを推奨

517世代までの時間を見る限り 7.6倍高速化しています。将来のコンパイラ版 C:Basic では、これよりも速くなるはずです。

ライフゲームの詳しい説明


2D迷路

以下のような画面全体のグラフィックス描画は、純正Casio Basicではとても時間がかかります。これを C.Basic で走らせると極めて短時間で描画が完了します。

Maze1 

2D迷路プログラムの詳しい説明とダウンロード


3D迷路ゲーム

3D_Maze 

左側の迷路マップの描画は、C.Basic を使うことで極めて高速化できます。右側の3D表示はポリライン処理により純正Casio Basic でも3D描画が軽くなるよう工夫されています。このプログラムでは、C.Basic の独自拡張機能を使いながら 純正 Casio Basicでも動作可能なようになっているのが特徴です。

3D迷路ゲームの詳しい説明とダウンロード


アクションゲーム - DRAGON



これは、C.Basic 独自拡張機能を活用したサンプルプログラムで、高速で多彩なビットマップ処理機能をうまく活用しています。
ゲームとしても飽きないチューニングがされています。このプログラムのソースは、C.Basic 独自拡張機能の理解に役立ちます。

アクションゲーム - DRAGON の詳しい説明とダウンロード


シューティングゲーム - AlienCG

AlianCG1.png AlianCG3.png 

C.Basic の独自コマンドを使い、高精細カラー液晶を活かして、全画面表示、独自フォント、高速グラフィック描画が可能になる例です。
シューティングゲーム - AlienCG のダウンロード


疑似3Dゲーム - Triangle Fieled Ver 0.91 [2020/03/26 アップデート]

TriangleField-FirstScreen 
Planet Casio でのプログラムコンテスト CPC #26 において、アドイン作成用の C / C++ に加えて C.Basic も使用言語として認められた。そこで sentaro様が応募作品として発表したのが Triangle Field。fx-CGシリーズ用が本命だが、参考までに fx-9860Gシリーズ用にも作成された(液晶の応答性が低いのでゲームとしては難易度が高い)。
なお、類似のアドインゲーム CubeFiled があるが、アドインレベルのプログラムが C.Basic で提供できることを示している。
疑似3Dゲーム - Triangle Field のダウンロード


カラー表示確認ツール - RGB

RGB5a_CC2.png RGB5a_QH.png 

C.Basic の独自コマンドを使い、高精細カラー液晶を活かして、全画面表示、バッテリーモニタアイコン表示、16bit RGBカラー表示 (テキストとグラフィックス)、テキストのスクロール表示、QRコード表示が可能になる例です。但し、fx-CG50搭載のカラー液晶は見る角度で色合いが異なって見える廉価版液晶であり、さらに24bit(フル)カラーではなくて16bitカラー表示なので、設定したRGB値に対して実際の液晶上のカラー表示を確認するためのツールです。 
カラー表示確認ツール - RGB の詳しい説明とダウンロード


日本語表示プログラム - YearConv

YC_cb4f YC_cb9f 

fx-CGシリーズ内蔵の GBフォントを用いて日本語風表示を可能にする例です。エディタ画面ではミニフォントが使えてソースコードの視認性が向上し、ソースコードで漢字フォントを表示してプログラミングできる例でもあります。
日本語表示プログラム - Year Conv の説明とダウンロード







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



 


keywords: fx-9860GIICasioBasic、プログラミング入門グラフィックスプログラム関数電卓

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



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

C.Basic for CG ベータ版がリリース Part 1 (Ver 1.00α以降)

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

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

更新:2020/05/23
最終更新:2023/12/11


[2023/12/11] C.Basic for CG Ver 1.47 beta build 02 アップデート

※ お試し版なので実行速度が遅くなる可能性があります。

目次へ


C.Basic for CG Ver 1.47 beta の更新履歴

(build 02)
  • C.Basicコマンド専用カタログ機能からヒストリーを起動して]EXIT]でカタログに戻らない不具合を修正しました。
  • メインメモリ上のプログラムでLoad(コマンドを使った場合、フォルダ内のファイルにアクセスできない不具合を修正しました。
(build 01)
  • C.Basicコマンド専用カタログ機能を追加しました。
  • ファイルモードと変数表示のミニフォント表示に対応しました。(FX版、エディタのフォントサイズ変更と共通です)
  • 非対応のコマンド(内部コード0x7Fxx)でフリーズする不具合を修正しました。
  • エラー表示を変更しました。"Missing WhileEnd" と "Missing Switch"等(ErrorCode_List.txtを参照してください)
  • GIIモデル以外の隠しRAMの初期化機能を無効にしました。
  • BeepコマンドがACキーで中断できるようにしました。
  • 行列とリストの初期化でRGB()HSV()HSL()コマンドが最初にある場合にエラーになっていた不具合を修正しました。(1.45CGエンバグ)
    (例){RGB(255,0,255),123,456}
  • Load(コマンドで4096バイトを超えるファイルが4096バイトしか読み込めなかった不具合を修正しました。(CG版のみ)
  • LocateコマンドやText等の描画指定を括弧で記述することで数式指定できるようになりました。
    (書式1)Locate x,y,Value/Strings[,N/O/R/V]
    (書式2)Locate x,y,Value/Strings[,(描画指定)]
    N:0 'normal
    O:1 'or
    R:2 'reverse
    V:3 'reverse or
    (例)Locate 2,3,"ABC",(2)
       Locate 2,3,"ABC",(R) ' R=2
    どちらも
       Locate 2,3,"ABC",R
    と同じです。
  • FkeyMenuの描画指定を括弧で記述することで数式指定できるようになりました。
    (書式1)FKeyMenu( n[~m], "文字列"/アイコン番号 [,C/M/N/R/I/S/U/L [,アイコン色 [,アイコン背景色]]] )
    (書式2)FKeyMenu( n[~m], "文字列"/アイコン番号 [,(描画指定) [,アイコン色 [,アイコン背景色]]] )
    基本描画指定における数値(0~4)
    C:( 0)消去します。
    N:( 1)ノーマル白アイコン。(省略可)
    R:( 2)右下が欠けた黒アイコン
    I:( 3)四角い黒アイコン
    S:( 4)縁取りのある黒アイコン
    以下の修飾は基本描画指定値に足して指定します。
    U:( 16)文字列を1ドット上側に表示。
    L:( 32)表示範囲を左右2ドット広げます。
    M:( 64)マスク処理します。
    m:(128)枠だけマスク処理します。(FX版のみ)
    (例)FKeyMenu (1, "string",NULM)
       FKeyMenu (1, "string",(1+16+32+64))
      上記の2つは同じ結果になります。

C.Basic for CG Ver 1.46 beta の更新履歴

(build 03)
  • メインメモリのお気に入り機能において大文字と小文字しか違わない同名ファイルの不具合を修正しました。
  • TicksWaitのカウントが1多かったのを修正しました。
    (修正前)TicksWait 4 が TicksWait 5 と同じでした。
  • 同梱ソースファイルの不備でビルドできない不具合を修正しました。
  • フォルダ位置に復帰できなくなっていた不具合を修正しました。(build01 エンバグ)

(build 02)
  • ファイルリストにおいてフォルダ上にカーソルがあるときに新規ファイルを作成する場合にカレントフォルダに作成されるようにしました。
  • ファイルを上書き保存する場合、以前のファイルよりもサイズが大きい場合は上書き保存するように書き込み方法を変更しました。(GIIIモデルのみ。)
    ※ ファイルサイズが小さくなる場合は以前のファイルを消去してから新規保存します。

(build 01)
  • 初回起動時に[CBasic]フォルダを作成しそこをデフォルトの保存フォルダとするようにしました。(CG版とFXIII版のみ。)
  • 整数モード時のFor~Nextの制御変数の終値が互換でなかったのを修正しました。
  • 文字列の長さを制限した場合にそれ以上の長さの文字列の代入に失敗する不具合を修正しました。
    (長さ-1が最大格納文字数になります。)
  • Pol()Rect()関数において、MatBaseが0の場合にListAns[0]ListAns[1]に答えが返らない不具合を修正しました。
  • ENG表示の丸め処理を修正しました。
  • RefとRref関数を使用すると固まる不具合を修正しました。
  • C.Basicコマンド入力で入力できなかったコマンドを追加修正しました。

     Graph90+Eは3.80でも速度低下は発生しません。


C.Basic for CG Ver 1.45 beta の更新履歴

(build 20)
  • System(コマンドの引数(-1)での機種判定にGraph90+Eを追加しました。
    (書式)System(-1)
     返り値:10 CG10
     返り値:20 CG20
     返り値:50 CG50
     返り値:90 Graph90+E
  • If [False] ~ ElseIf 間の飛越キャッシュの不具合を修正しました。
  • Syetem()コマンドでOSのマイナーバージョンが取得できるようになりました。
    (書式)System(-22)
  • やす(Krtyski)様作成のSystem()コマンドサンプルプログラム(Graph90+E対応版)をアップデートしました。(System_sampleフォルダ)
(build 19)
  • スタックエラーになる前にシステムエラーになっていた不具合を修正しました。
  • Try~TryEndコマンドからBreakで脱出した場合、それ以後、[AC]中断もAcBreakも効かなくなる不具合を修正しました。
  • ReadGraph/WriteGraph/DotGet/DotPutコマンドを現在のVRAMに作用するように仕様変更しました。
  • 描画対象VRAMを退避されているテキストVRAM領域とグラフィックスVRAM領域に変更するScreen.Vコマンドを追加しました。
    (書式)Screen.V
     デフォルトのVRAMに戻します。
    (書式)Screen.VT
     テキストVRAMの退避領域を描画対象にします。
    (書式)Screen.VG
     グラフィックスVRAMの退避領域を描画対象にします。
(build 18)
  • 行列表示を修正しました。
  • セット・アップで隠しメモリのOn/Offは確認ポップアップを出すようにしました。
(build 17)
  • RGB565形式の16ビットBMPのセーブ/ロードに対応しました。デフォルト形式は16ビットBMPになります。
  • CPLXの行列表示が異常に遅かったのを修正し、3列から4列表示に変更しました。
  • 隠しメモリの初期化を修正しました。
(build 16)
  • 自動インデント機能でのSwitch~Case~SwitchEndの自動整形を改善しました。
  • ElseIfコマンドの直後にコメントがある場合、次のコマンドがIfの場合に終了していた不具合を修正しました。
  • 行列の初期化後に文字列から文字列への代入で代入されない不具合を再修正しました。
    (コピーされない例)
        ClrMat
        "ABC"->Str 1
        Str 1->Str 3
  • Seqコマンドで刻み値が少数の場合に終値に到達しないことがある不具合を修正しました。
    (例)Seq(X, X, 0.1, 1, 0.05 )
  • CPLXモード以外で虚数を使うと無限ループになる不具合を修正しました。(build15でのエンバグです。)
  • 省略乗算の不具合を修正しました。(build15でのエンバグです。)
(build 15)
  • Colon様のサポートにより関数メモリの実装を開始しました。
  • デフォルトのインデックス開始値が0の場合にListの自動確保が出来なかった不具合を修正しました。
  • ファンクションメモリー(Fn)のStore/Recall/SEEのSEEをEditに変更しました。
(build 14)
  • ファンクションメモリー(Fn)のStore/Recall/SEEのSEEで[F5](Edit)を追加し編集可能になりました。
  • ファンクションメモリー(Fn)のStore/Recall/SEEの不具合を修正しました。
(build 13)
  • ファンクションメモリー(Fn)およびグラフメモリー(Y)をデフォルトで数式評価とし、
     文字列関数内および文字列に続く場合は文字列として評価するように変更しました。
     (数式評価)
      fn1->A
      fn1(123)->A
      Locate 1,1,fn1
      Text 1,1,fn1(123)
     (文字列評価)
      "123"+fn1->Str 1
      fn2->Str 2
      StrJoin(fn1,Str 1)
  • 文字列から文字列への代入で代入されない不具合を修正しました。
  • (fn3にコピーされない例)
      ClrMat
      "123"->fn1
      "ABC"->Str 1
      Str 1->fn3
  • ファンクションメモリー(Fn)のStore/Recall/SEEを追加しました。
     (※エディタではクリップボードの内容がストア対象です。1行入力では1行全体がストア対象になります。)
  • F_Start/F_End/F_pitchを独立変数に変更しました。
  • ?コマンドで文字列が表示される場合にアスキーコードにデコードしないように修正しました。
(build 12)
  • GraphYとfnの確保数と文字列の長さをStr変数と同等に変更しました。
  • GraphYの格納仕様を6バイトのプレフィックス付きに変更しました。
    (行列への直アクセス以外は以前と変更ありません。)
  • エディタでファイルモードの切替でファイルリストが更新されない不具合を修正しました。
  • セットアップで機能しない場合はアイコンをマスク化しました。
  • System()コマンドでメインメモリに保存されるC.Basicのシステムファイルを取得できるようになりました。
    (インデックス開始値は0で固定です。)
    (例)System(10000,1)
     @CBASIC/Cbasicの内容をListAnsに取得します。
    (例)System(10000,2)
     @CBASIC/Cbasic2の内容をListAnsに取得します。
(build 11)
  • CGモードでScreen#で座標変換した場合に2ドットずれる不具合を修正しました。
  • Screen#、Screen%を連続実行するとエラーになる不具合を修正しました。
  • ファイルモードの検索機能を改善しました。
     アルファベットキーを押すと検索窓が開き検索モードになります。
     検索窓では左右移動等、通常の入力が可能です。
     検索窓を解除するには[EXIT]を押してください。
     カーソル上下、[EXE] [F1](EXE) [F2](EDIT) [F3](NEW)キーは検索窓を閉じること無く実行できます。
(build 10)
  • ファイルモードでアルファベットキーによるダイレクト選択時に[SHIFT]、[ALPHA]、小文字や数字が指定が出来るようになりました。
     [F4](A<>a): 大文字小文字切り替えです。
     [F5](CHAR)
     [F5](→Folder): フォルダサーチに切り替わります。
     [DEL]: 一文字戻ります。
     [AC]: 全部消します。
     [EXIT]: 元に戻ります。
     [X^2]: ~
     [^]: '
     [(-)]: @
     [・]: スペース
     [x10x]: "
(build 09)
  • ファイルモードでアルファベットキーによるダイレクト選択時に2文字以上の指定が出来るようになりました。
     [DEL]:一文字戻ります。
     [AC]:全部消します。
  • ファンクションメモリー(Fn)およびグラフメモリー(Y)に引数が無い場合は文字列として評価するようにしました。
  • インデントの必要なコマンド(If,Else..)の直前で改行した場合にインデントが余分に付加される不具合を修正しました。
(build 08)
  • OS側のステータス表示フラグがONの場合はステータスエリアの書き換えをしないように変更しました。
(build 07)
  • エミュレータで隠しメモリが使えるようになりました。
(build 06)
  • 以下のコマンドでステータス表示が更新されるようにしました。
    '#CBASIC
    '#CBDBL
    '#CBINT
    '#CBCPLX
  • 一行入力時のステータスエリアの表示を改善しました。
  • エミュレータの判定方法をハードウェアID判定に変更しました。(0x8001FFD)
(build 05)
  • CHAR選択画面から戻る時にステータスエリアの表示が戻らない不具合を修正しました。
  • CG10/20でエディタのサーチ画面で[SHIFT]+[4](CATALOG)が使えなかった不具合を修正しました。(1.44build14でのエンバグです。)
(build 04)
  • GetHSV()/GetHSL()コマンドで変換できない色をエラーにするようにしました。
    (書式) GetHSV(16ビットカラー値[,N])
    (書式) GetHSL(16ビットカラー値[,N])
     Nオプションでエラーを無視します。
  • HSV() / HSL() での色飽和での反転を修正しました。
(build 03)
  • RGB→HSV/HSLのカラーコード変換の誤差を修正しました。
  • ラベルの検索時にコメントでの'#に続くオプションの設定が変更されてしまう不具合を修正しました。
(build 02)
  • VarPtr()コマンドで行列/List/Vctを指定した場合、その添字が常に実数評価されていた不具合を修正しました。
  • RGB()、HSV()、HSL()コマンドの引数がListの場合、インデックス開始値が0の場合の不具合を修正しました。
(build 01)
  • SortA()/SortD()コマンドに文字配列のソートを追加しました。
    (例)SortA($Mat A)
     Mat Aの文字列が昇順にソートされます。
  • ReadMe、マニュアル更新しました。
  • 行列表示の←→表示を修正しました。
  • g3mモードにおいてストレージメモリへのでのStoPictを無効にしました。


ついにアルファ版からベータ版になりました!

C.Basic for CG 開発が始動 - Part 3 (Ver 0.86アルファ版まで)
 
 の続きです



はじめに - Part 1 - C.Basic for CG ベータ版 (Ver 1.00β以降)

完成度の高い fx-CG50 が登場し、この機種で走る アドイン版 Casio Basic - C.Basic for CG がアルファ版がリリースされ国内外のユーザーの皆様のご協力でアップデートが繰り返され、ようやく安定してきたのでベータ版になりました。

作者の sentaro様を皆で応援し、作者とユーザーの情報交換を継続するために、ベータ版の Part 1 を作りました。



目 次

現行ベータ版について

最新版のダウンロードとインストール


操作法・コマンドの説明・更新履歴など

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

C.Basic for CG を活かしたプログラム 

 お勧めの充電池と充電器   

チューンアップツール - Ptune3



現行ベータ版について
C.Basic for CG は、ベータ版 (お試し版) です。現行バージョンは安定してきましたが、まだ未完成と考えて下さい。バグの可能性があります。作者 (sentaro様) に連絡して応援する...というのが当ブログのスタンスです。

<目次に戻る>


最新版のダウンロードとインストール

   C.Basic for CG Ver 1.47β build 02 (公式最終版)
   C.Basic for CG Ver 1.46β build 03 (1つ前の公式最終版)
  • 解凍して得られる CBCGxxx.g3a ファイルを fx-CG20 / CG50 のストレージメモリに転送してアップデート完了!
  • 詳しいインストール方法はこちら 
  • 取扱説明書:同梱テキストファイルを参照。但し以下でも同じものが確認できます。マニュアルのデバッグも進行中です
  • 過去のバージョンこちら
   C.Basicのインストール
<目次に戻る>


操作法・コマンドの説明・更新履歴など [最新バージョンに対応しています]
以上のドキュメントは、ダウンロードしたZIPファイルに含まれています。
<目次に戻る>



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

  複数のフォントを使い分けるためのツール - Font File Manager
fx-CG20 / CG50 用 C.Basic for CG には、複数のフォントが同梱されており、これらを切り替えて使うことができる。これらのフォントを切り替えるツール - FFM (Font File Manager) が Colon様から提供されている。フォントの詳細情報を見ることもできる。標準的なシステムツールのような外観になっているが、C.Basicで書いたプログラムだ。詳しくは同梱のReadmeファイルを参照のこと。Ver 1.24 は C.Basic for CG Ver 1.44β build 2 以降で正常動作する。
C.Basic for CG Ver 1.44β build 5 以降に同梱されるようになった。

FFM_1  FFM_2 
  ⇒ ダウンロード (Ver 1.24)


  RGB指定による色確認プログラム - RGB
fx-CG20 / CG50 搭載のカラー液晶は見る角度が少し変わるだけで色合いが大きく変化する。そこで実際に RGB値を入力したときの実際の色合いを確認するためのツールを作成した。C.Basic for CG の様々独自コマンドや拡張コマンドを使っていて、バッテリーアイコン表示、アドインプログラムのように見える全画面表示(上部のステータスバーがない)、OS内蔵のファンクションメニュー利用、ポップアップウィンドウの表示、入力ボックス機能、長大な文字列を扱う文字列処理 (ヘルプ機能)、実用的な速度スクロールバーを動かせる高速グラフィックコマンド (ヘルプ機能)、QRコードのビットマップ表示、などを実現できる C.Basic for CG の機能デモンストレーションにもなっている。
   RGB4b_Graphics_Mode 
  ⇒ 説明とダウンロード


  カラー設定変換プログラム - ColConv Ver 1.1
C.Basic では、複数のカラー設定コマンドがあり、1つの同じ色を設定するためのパラメータも異なる。これらのパラメータを一覧で確認するプログラム - ColConv11 (Colon様作成)は、プログラミンツールとして有用で、さらにカラー設定コマンドの使い方を示す良いサンプルプログラムにもなっている。
ColConv_1 ColConv_2 
  ⇒ ダウンロード 


  OS内蔵ファンクションキー探索プログラム - SysFunc3
fx-CGシリーズやfx-9860Gシリーズには、ファンクションメニューの画像データがOSに内蔵されている。この内蔵データをプログラムで利用するにC.Basicには独自コマンド FKeyMenu( があり、各画像に対応した番号を渡すとその画像が表示できる。そこでOS内蔵のこの番号を調べるツールを作成した。アドインプログラムのような全画面表示(fx-CGシリーズのみ、fx-9860Gシリーズは元々全画面表示)、ファンクションメニュー表示、入力ボックス機能、ミニフォント表示など、C.Basic の独自コマンドや拡張コマンドの機能を使う簡単なサンプルプログラムにもなっている。なお、C.Basic for FX 版も作成した。
   SysFunc3_2_1_f  SysFunc3FX_1 
   ※ fx-CGシリーズで全画面表示をすると、より広いエリアを使えることが分かる。
  ⇒ 説明とダウンロード


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

<目次に戻る>


C.Basic for CG を活かしたプログラム

 ▶昔懐かしいインベーダーゲーム - Alien 
C.Basic for CG の独自コマンドや拡張コマンドを使えば、高速グラフィックス、独自フォントの利用、アドインプログラムのような全画面表示が可能になり、昔のアーケードゲームと同等レベルのゲームが実現できる。
   AlianCG3.png  
  ⇒ ダウンロード


  疑似3Dゲーム - Triangle Filed Ver 0.91 [2020/03/26 アップデート]
Planet Casio でのプログラムコンテスト CPC #26 において、アドイン作成用の C / C++ に加えて C.Basic も使用言語として認められた。そこで sentaro様が応募作品として発表したのが Triangle Field。fx-CGシリーズ用が本命だが、参考までに fx-9860Gシリーズ用にも作成された(液晶の応答性が低いのでゲームとしては難易度が高い)。
TriangleField-FirstScreen 
ダウンロード
なお、類似のアドインゲーム CubeFiled があるが、アドインレベルのプログラムが C.Basic で提供できることを示している。


 ▶ 日本語版 "あの人の歳はいくつ?" - 西暦・和暦換算 YearConve
C.Basic for CG では、fx-CGシリーズに内蔵されている GBフォントを呼び出して漢字、ひらがな、カタカナを表示できる。令和の御代替わりを言祝ぎ、漢字やかなを表示した実用プログラムを作成した。
   YC_cb4f 
  ⇒ 説明とダウンロード


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

<目次に戻る>



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




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

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


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

fx-CG20 / CG50 用お勧めの充電池と充電器

アドイン版 Casio Basic - お勧めの充電池と充電器
<トップページ>


追記 2018/08/14
更新 2019/06/17
更新 2022/12/22


本情報は古くなったので、情報更新した fx-CG20 / CG50 要お勧め充電池と充電器 を作成

fx-CG20 や fx-CG50 用アドイン版Casio Basic, C.Basic for CG は、 高速動作が特徴の1つ。最近のバージョンでは、自動的に適度なオーバークロックをする機能がある。また、fx-CG20 用の Ptune2 や fx-CG50 用の Ptune3 というオーバークロックによりチューンアップするアドインもあり、カリカリにチューンできる。
ところが、オーバークロックで大幅にチューンアップすると、電力消費が激しくなる。fx-CG50 は fx-CG20 の半分程度に電力消費が抑えられているが、それでも一日使えば電池が空になる。オーバークロックはそれだけ激しく電力を消費する。

fx-CG20 / CG50 は、アルカリ乾電池 (1.5V) か ニッケル水素充電池 (1.2V) の使用を標準としているが、ニッケル水素充電池が間違い無く経済的だ。




お勧めの単四形充電池

 アマループ (Amazon Basic OEMエネループ) 最小容量750mAh 約1000回使用

一番のお勧めがコレだ。
Amazon Basic ブランドの OEMエネループ (アマループ) のなかで、最小容量750mAh、約1000回使用を愛用している。8本入りで¥1,500弱.

fx-CG20 / CG50 に添付されている Panasonic アルカリ単4電池の Amazon平均価格の約2倍の単価だが、再充電して何回か使えばしっかり元がとれる。

もともとエネループは三洋電機の製品で、開発製造は三洋エナジートワイセルで行っていた。三洋電機がPanasonicに買収された時、富士通の子会社FDKに売却され、その子会社としてFDKトワイセルに社名が変わり今もエネループを開発製造していて、ここでアマループが製造されている。つまりアマループは国産のエネループと同じ製造ラインで作られているのが大きな安心感に繋がる。仕様上、アマループとエネループの容量は同じだが、アマループの使用回数はエネループより少ない。

なお、1年程度使ったアマループで容量を測ると 800mAh 程度、3年程度使ったもので容量を測ると 750mAh 程度なので、仕様である最小容量750 mAh は、余裕のある控えめな仕様と言え、3年程度は仕様通り使えることが分かる。 


アマループ (Amazon Basic OEMエネループ) 高容量800mAh 約1000回使用

[2019/06/17 更新]
アマループには、最小容量800mAh、約500回使用という高容量タイプもあり、こちらのほうが安い今はこの方が高価になっている。

充放電を繰り返すと容量が劣化し、劣化が大きいほど使用回数が少なくなる。

この製品は仕様上の容量が 50 mAh 大きくその分1回の充電での使用時間が長くなる。その代わり充電可能な回数が犠牲になって約半分になっている。

上のお勧めよりもこの製品は安い高い。オーバークロック動作も含めて fx-CG20 / CG50 で使う場合は、この製品の方が実際に長時間使えるかも知れない。でも十分かもしれない。

この製品を実際に使ったことがないので、実用性を確保しつつより経済的なオプションとして、 カタログ上の50mAhだけ多い容量が電流喰らいのオーバークロック利用で使用時間がどの程度長くなるのか分からない。いずれ検証してみたいと思う。

[2019/06/17 追記] お勧めできるかどうかは保留する。実使用時間の検証と併せて、いずれ評価を決めたい。今のところは上の標準タイプをお勧めとしておく。


充電式エボルタ ハイエンドモデル 最小950mAh 約300回使用 [2022/12/23 更新]

オーバードライブで最大級にチューンアップして fx-CG20 / CG50 を長時間使う場合は、1回の充電での使用時間を経済性よりも優先させたい。

その場合は、Panasonic の充電式エボルタ、ハイエンドモデル 最小容量 930mAh、約500回使用 が最強だ。



なお、色々なニッケル水素充電池を比較評価した記事で参考になりそうなものを紹介する。
 充電池はどれを買うのがお得かガチ検証した ~ 単三形2000mAh級ニッケル水素充電池編

この記事をより深く理解するためには、以下の記事が役立つ。
ニッケル水素電池 (Ni-MH) の充放電特性



お勧めの電池ケース

8個買って4個は持ち歩くのが基本で、長期出張時は上で紹介した充電式エボルタを追加して持ち歩くか、充電器を持って行く。横に繋げられるのがポイント。

 



お勧めの充電器

エネループ / アマループと充電式エボルタともに使えて、電池1本でも充電できて、電池1個ごとに充電状態を確認できるものがお勧め。

PSPOWER製 NT 1000

一番のお勧めがコレ!ACアダプタは100~240V対応なので、海外でも使える。
PSPOWER NT 1000電池ごとに、急速充電、放電後充電、リフレッシュ、充電電流を設定でき、容量、電圧、容量の測定値の表示ができる。

 
Panasonic製 BQ-CC83 [2022/12/22 更新]

上の NT 1000 が高価だと感じる場合は、急速充電、スマート充電(最適充電) ができるコレがお勧め。

エネループと充電式エボルタの両方に対応。
急速充電機能は無いが、乾電池充電防止、つぎ足し充電、クイック診断、スマートチャージ機能がある。

スタンダードタイプの単4形充電式エボルタ4本も付属してこの価格は、結構安いと思う。



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





keywords: fx-CG20 fx-CG50C.Basic充電池充電器

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


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

ライフゲーム

アドイン版 Casio Basic 用サンプルプログラム
<トップページ>

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

動画・説明追加 2015/11/15
更新 2016/05/02
プログラムアップデート 2021/06/13
記事の大幅な追記修正 2021/06/20
超お勧めライフゲームの動画を追加 2021/06/24
ライフゲーム マイナーアップデート 2021/06/26
全プリセットパターンの動画を収録 2021/06/26
プログラムダウンロードリンク修正 2021/07/12
追記 2022/03/06

[2015/11/16] プリセットした初期パターンを選べるようにバージョンアップ
[2015/11/17] 記事を大幅に追加して更新
[2015/11/20] C.Basic Ver 0.73 へのバージョンアップを反映した更新
[2016/02/11] C.Basic 最新版は アドイン Casio Basic - トップページ の最新バージョンから
[2016/05/02] ライフゲーム Ver 0.74 へアップテート(C.Basic Ver0.99m に対応) 
[2021/06/13] ライフゲーム Ver 2.45 / Ver 2.45F へアップデート
        (C.Basic for FX Ver2.45 build20、C.Basic for CG Ver 1.45 build20 に対応) 

[2021/06/26] ライフゲーム Ver 2.45 / Ver 2.45F をマイナーアップデート



カシオのグラフ関数電卓で、そこそこ遊べるライフゲームができました...
とは言っても、純正 Casio Basic では無理なので、アドイン版 Casio Basic : C.Basic で作りました。

まず最初に、ライフゲームを知らなかった方や知っていた方にも楽しんで頂けると思う最高の動画を紹介します;
 ライフゲームの世界1~9 複雑系コミュニティ動画 by はむくん

電卓で走らせるライフゲームを初めて作り、このページで紹介したのは 2015年のことで、2017年にアップデートしています。プログラムは C.Basic で作成。その後 C.Basic 自体がアップデートを繰り返し、機能を充実させつつ完成度が上がってきました。それに合わせてライフゲームもアップデートします。今回のアップデートでは、基本的なロジックは変えておらず、幾つかのバグ取りとチョットした新機能追加を行っています。

カシオのグラフ関数電卓でしっかりと動作するライフゲームは他では見ないと思います (TIやhpのモデルで走るライフゲームはネットで検索すると出てきますが...)。実際の動作の動画を多く掲載したので、C.Basic の能力やライフゲームの面白さを実感できると思います。

お持ちのグラフ関数電卓で、是非とも実際にライフゲームを楽しんで頂きたいと思います。

カラー液晶搭載モデルなら fx-CG50 がお勧め、モノクロ液晶搭載モデルなら fx-9860GII がお勧めです。この記事では、fx-CG50fx-9750GIII (最新のモノクロ液晶モデル) での動作画面を掲載しています。


目 次

 ライフゲームのルール 
 プログラム電卓でライフゲーム
  ライフゲーム作成の経緯
  ライフゲームで遊ぶための準備
    アドイン版 Casio Basic: C.Basic for FX
    アドイン版 Casio Basic: C.Basic for CG
    チューンアップツール (アドインプログラム)
    ライフゲームのプログラムファイル
  ライフゲームの遊び方 (プリセットパターンの実行動画あり)
 プログラムのロジックについて 
 各モデルでの処理速度 (実行動画あり)
 ライフゲームに関するサイト



ライフゲームのルール

ライフゲームは 1970年に数学者 Conway が発表したのが始まりで、英語では Conway's Game of Life と呼ばれます。

画面の1ピクセルを1個の細胞 (セル - Cell)と見立て、誕生、生存、死滅を繰り返す細胞集団の変化(世代変化)を画面上で再現して、眺めて楽しみます。
ピクセル1個 = 細胞1個は、 (On:生きている) (Off:死んでいる) のどちらかの状態になります。そして以下の単純な3つの条件だけで次の世代の細胞の生死、つまりピクセルの On / Off  が決定されます。

<誕生>
周りに生きている細胞が3個あれば、次の世代でその場所に新たな細胞が生まれます。
つまり、 あるピクセルが Off で、周りの8 個のピクセルのうち3個が On の場合、
Birth 
そのピクセルは次の世代で On になります。

<生存>
生きている細胞の周りに生きている細胞が2個か3個あれは、その細胞は次の世代でも生き残ります。
つまり、あるピクセルが On で、周りの8個のピクセルのうち2個か3個が On の場合、
Live1 LIVE_2 
そのピクセルは次の世代では On のままになります。

<死滅>
上以外の場合、細胞は次の世代で死にます。
つまり、あるピクセルが On で、周りの8 個のピクセルが1個以下(過疎)、
Death6  Death7 
あるいは4個以上(過密)の場合、
Death1  Death2  Death3  Death4  Death5 
そのピクセルは次の世代で Off になります。

このルールに従って、画面全てのピクセルについて計算すると全体が1世代進みます。

世代が進むと、複雑なパターンに進化したり、死滅したり、一定パターンに落ち着くこともあります。ピクセル一個の生死が3つの単純なルールに従うだけなのに、実際に動かしてみると予想もしないパターンに進化するのが、ライフゲームの面白いところです。

<目次に戻る>



プログラム電卓でライフゲーム
ライフゲーム・プログラムは、アドイン版 Casio Basic - C.Basic で作成し、純正Casio Basic にない拡張機能を使っているので、C.Basic のインストールが必要です。さらに、チューンアップツールで実行速度を上げると良いかもしれません。

 ▶ 必須 - アドイン版Casio Basic - C.Basic
 ▶ 必須 - ライフゲーム プログラム - LIFE245高速化バージョンLIFE245F
 ▶ 有ると良いかも - チューンアップツール (アドイン) 

LIFE245FC.Basic だけでも楽しめると思います。


ライフゲーム作成の経緯
ライフゲームを作るとしたら、画面全体のビットマップパターンを2次元配列 (行列) に対応させて計算するのが単純で分かりやすい方法でしょう。カシオのグラフ関数電卓の画面全体のピクセルを扱うには 63×127行列が必要ですが、 純正Casio Basic の行列は最大 99行99列なので、画面全体のビットマップパターンを処理できそうにありません。さらにグラフィックス画面を頻繁に更新する処理は 純正Casio Basic では非常に長い時間を要します。従って、グラフ関数電卓の 純正Casio Basic でライフゲームを作るのは極めて不向きで、現実的ではありません。

ところが アドイン版 Casio Basic -  C.Basic の開発が始まり、実際に色々なプログラムを作ってみると、計算は速く、グラフィックス画面への描画動作も速く、画面全体のピットマップを2次元配列で比較的高速に処理できるようになったので、C.Basic のベンチマークの目的も兼ねて、ライフゲームを作ってみました。

PCで動作する多くのライフゲームは広い画面を使うものがあり、メモリが許す限りの十分に広い世界を用意しているものがあります。一方、今回は 127 ピクセル × 63 ピクセル に限定された狭い世界でのライフゲームを作ってみます。電卓でのグラフィックス画面の更新は比較的時間がかかるので、本プログラムでは更新するビットマップ領域(行列のサイズ)を必要最小限にして高速化する工夫をしているため、画面全体の2ピクセルの内側にある 123×59画面 ピクセルの領域をパターンが超えようとするときは、本来のルール通りに動作しません。

本ライフゲームは、アドイン版 Casio Basic - C.Basic の能力確認 (ベンチマーク) も目的です。最初はモノクロ液晶搭載のグラフ関数電卓 fx-9860GII にインストールした C.Basic for FX  Ver 0.66 で作り始め、C.Basic for FX Ver 0.73 で仕上げて、それ以降のアップデートの際に動作確認しています。C.Basic for FX Ver 0.99m 以降に合わせて ライフゲームを Ver 0.74 にアップデート。その後 DotP() 関数が DotPut() に変更されたこともあり、さらに C.Basic for FX が Ver 2.45 までアップデートされたのに合わせて、ライフゲームをアップデートしました。 

一方で、高精細カラー液晶画面を搭載した CG モデル (fx-CG20fx-CG50) に対応した C.Basic for CG  の開発も始まり、これら CGモデルでも C.Basic が使えるようになりました。C.Basic for CG で扱うプログラムファイルは g3m ファイルですが、g1m ファイルも FX モデルと同じように動作するようになっています。従って、FXモデル用に作ったライフゲーム (g1mファイル) は、CGモデル (fx-CG20fx-CG50) でも動作します。


ライフゲームで遊ぶための準備
ここで紹介するライフゲーム・プログラムは、C.Basic for FX や C.Basic for CG をインストールして、C.Basic で実行してください。さらに下記で紹介するチューンアップツールを導入すると電卓自体の演算速度を高速化できるので、ライフゲームをさらに高速化できます。

C.Basic for FXC.Basic for CG は以下に紹介するモデルで動作します。 チューンアップツールはモデルごとに適用されている正しいバージョンを使ってください。詳しくは以下に紹介します。

FXモデル:モノクロ液晶を搭載した下記グラフ関数電卓
 ・fx-9860G / SD / Slim
 ・fx-9860GII / SD
 ・fx-9860GIII
 ・fx-9750GIII


CGモデル:高精細カラー液晶を搭載した下記グラフ関数電卓
 fx-CG10 / fx-CG20
 fx-CG50


 アドイン版 Casio Basic: C.Basic for FX
※ 最新バージョン Ver 2.45 build 20 以降のダウンロード: アドイン Casio Basic - トップページ
 ZIPファイルで提供
 ソースファイル(C言語)を公開
 ZIPファイル内にある CBASIC.G1A がアドインプログラム本体


アドイン版 Casio Basic: C.Basic for CG 
fx-CG20 / fx-CG50 (CGモデル) 用 C.Basic for CG でも g1m ファイルを実行すると、FXモデルで実行するのと同様な出力になるので、 g1m ファイルのライフゲームで遊べます。但し、以下の2つの設定を行ってください。

※ 最新バージョン Ver 1.45 build 20 以降のダウンロード: アドイン Casio Basic - トップページ
 ZIPファイルで提供
 ソースファイル(C言語)を公開
 ZIPファイル内にある CBCG145.G3A がアドインプログラム本体

※ ライフゲームプログラムの g1m ファイルを編集する場合、下記設定をしないと g3m ファイル
  として保存されてしまいます。
 g1mファイルとして保存するための設定
  C.Basic for CG を起動
  [SHIFT][MENU] で設定画面表示
  設定画面にある項目 Force g1m save on にする
   Set_SavingAsG1M

 CGモデルで g1m ファイルを保存する時の操作
  プログラム編集画面で [EXIT]キーを押して ファイルリスト画面に戻る前に
   SaveAsG1M
   と表示され、一番下のシフトキーメニューの [F2] に g1m、[F3] に g3m と表示されている。
  ここで [F2] (g1m) を押してから [EXE] キーを押すと g1m ファイル として 保存される。


 チューンアップツール(アドインプログラム)
より高速でスムーズな動きを楽しむには、オーバークロックによるチューンアップツールの使用を勧めます。

fx-9860G / fx-9860GII USB GRAPHIC モデル (SH3搭載) シリーズ向け Ftune の導入
fx-9860GII USB GRAPHIC 2 モデル (SH4搭載) シリーズ向け Ftune2 の導入
fx-9860GIII / fx-9750GIII / GRAPH35++EII 向け Ftune3 の導入
fx-CG10 / fx-CG20 向け Ptune2 の導入
fx-CG50 向け Ptune3 の導入

チューンアップツールを起動したら、プリセットされている [F5] を押して設定すると、安全なチューンアップで高速化できます。[F1] を押すと電卓本来の設定に戻ります。これ以上のチューンアップもできる可能性がありますが、自己責任でお願いします。


 ライフゲームのプログラムファイル
   ライフゲーム Ver 2.45 
   ※ 手動パターン入力時、[EXE]を1回押してもドットが表示されないバグを修正 [2021/06/16]
   
※ パターン作成画面で[EXIT]キーで最初のメニューに戻るよう修正 [2021/06/24]
   
※ パターン作成画面での操作説明表示を 125 dot x 61 dot の範囲内に収める [2021/06/26] 
   ・チューンアップツール
で [F5] を押して得られる設定を推奨
   初期パターンは、手入力だけでなくプリセットした16個の初期設定から選択可能

電卓表示のの狭い世界でも、パターンが変化する様子は面白くて飽きません。純正Casio Basic ではライフゲームは無理ですが、C.Basic で実現しました。


   ライフゲーム Ver 2.45F (高速化バージョン)
   ※ 手動パターン入力時、[EXE]を1回押してもドットが表示されないバグを修正 [2021/06/16]
   
※ パターン作成画面で[EXIT]キーで最初のメニューに戻るよう修正 [2021/06/26]
   
※ パターン作成画面での操作説明表示を 125 dot x 61 dot の範囲内に収める [2021/06/26]
   ・チューンアップツール
 が無くても高速に動作
   ・チューンアップツール で [F5] を押して得られる設定で使うとさらに高速化
   Ver. 2.45 のパターン更新処理をまとめて1つの関数にすることで、高速化したものです。



ライフゲームの遊び方
  ・C.Basic で LIFE245 か LIFE245F を起動

  ・メニューで [F1] (手入力) か [F6] (16個のプリセットから選択) かのどちらかを選ぶ
   Manual_1_1st_Menu

  [F1] 手入力の場合 - FXモデルでの画面例
  ・操作方法の説明を表示 
   Manual_2_OpGuide
   - [F1] で次に進む

  ・パターン作成画面になる
   ManuL_3_Input_Screen_new

  ・[EXE]キーを押すと十字カーソルが現れる
   ManuL_4_Input_1st_Cursor_Pos_new
   矢印キーでカーソルを上下左右に移動させ、[EXE]キーを押せばその位置のピクセルがONになる
   カーソルの座標 X, Y の座標値が表示される

  ・[EXE] ⇒ カーソル移動 ⇒ [EXE] を繰り返してパターンを作成
   Manual_6_Gen0_Pattern_new Manual_Pattern
   - [EXIT] キーを押せば、パターン作成を中断して最初の画面に戻る

  ・[DEL] キーを押すと、パターンが1世代進む
   Manual_7_Gen1_Pattern_ne
   右上に世代が表示される
   - [(-)] キーを押せば1世代進む
   - [EXE] キーを押せば世代が連続して進む
   - [EXIT] キーを押せば世代更新を中止して、世代数と所要時間を表示

  ・上の初期パターンが1316世代目になった画面 (例)
   Manual_8_gen1316_Pattern_new

  ・
[EXIT] キーを押すと、世代更新を中断して結果表示
   
Manual_9_Result
   
[SHIFT] [F6] を押すと、1316世代のパターン画面に切り替えられる

  [F6] プリセットパターン選択の場合 - CGモデルでの画面例
  ・
メニューで [F6] (16個のプリセットから選択) を押す
   
1_Cont_Menu

  ・
プリセットパターン1を表示
   
2_Cont_Pattern1_new

  ・
[↑] / [↓] キーでパターンを選ぶ
   
3_Cont_Pattern13_new
   
(例) 13個目のパターン (グライダー銃) を選ぶ

  ・
[F1] キーでプリセットパターンを確定
   4_Confirm_Pattern_new

  ・
プリセットから確定したのち [EXE] を押して手入力でチョイ足しできる
   5_Add_Dots_new
   
[EXE] で十字カーソルを表示 ⇒ 矢印キーでカーソル移動 ⇒ [EXE] でピクセルON

  ・[DEL]
で1世代目のパターンに進む
   6_Gen1_new
   
- [(-)] で1世代進む
   -
[EXE] で連続して世代が進む
   - 世代が連続して進んでいる時 [(-)] を押せば一旦停止

  ・
世代が連続して進んでいる時 [(-)] を押せば一旦停止
   
7_Gen231

  ・[EXIT]
キーでゲーム終了し、その時の世代数と最初からの実行時間を表示する
   8_Result_new
   - [SHIFT] [F6] を押すと 終了時のパターンの画面に切り替えられる


  プリセット初期パターン

   <パターン1>
   pt1 
   174世代目で安定状態になる。
   

   <パターン2>
   pt2 
   こんなに小さい5ピクセルから、大きく広がりながらグライダーを5機発射する。
   6機目のグライダーは途中で消滅。一般にはかなり長寿命だが、 電卓の狭い世界では
   652世代目で安定状態になる。
   

   <パターン3>
   pt3 
   たまたま見つけた面白いパターン。
   大きく広がらないのに、安定状態になるまで517世代と長寿命なのが特徴。
   

   <パターン4>
   pt4 
   たまたま見つけたパターン。横に広がり218世代目で安定状態になる。
   

   <パターン5>
   pt5 
   たまたま見つけた面白いパターン。
   途中から、画面全体のピクセルで計算と描画を行い負荷が最大になるので、
   プログラムのスピード評価に使える。
   グライダーを6機発射し、そのうち2機は途中で消滅。
   飛び去るグライダーを別にすれば、495世代目で安定状態になる。
   

   <パターン6>
   pt6 
   たまたま見つけた寿命の長いパターン(658世代)。
   但し、狭い画面よりも広がろうとするので、境界での特異現象あり。
   

   <パターン7>
   pt7 
   固定パターン(ブリンカー)の1つ。床屋さんのサインのようだ。
   

   <パターン8>
   pt8
   グライダーが反射を続けて往復移動する様子が面白い。
   

   <パターン9>
   pt9 
   グライダー: 回転しながら斜めに移動してゆく。
   

   <パターン10>
   pt10 
   小さい宇宙船と大きい宇宙船: 横に直進する。
   小さい宇宙船は壁に当たるとグライダーに変身する(画面端での特異ケース)。
   

   <パターン11>
   pt11 
   左右に往復運動するパターン(シャトル)。
   

   <パターン12>
   pt12 
   往復移動するパターン(シャトル)の1つ。
   壊れて消えそうで、消えずに往復運動するのが面白い。
   

   <パターン13>
   pt13 
   グライダー銃: MITのゴスペラーが最初に見つけた無限増殖するパターン。
   次々にグライダーが発射される。
   
   
   <パターン14>
   pt14 
   シュッシュポッポ列車 (Puffer Train): 煙(スパイク)を残しながら移動する。
   

   <パターン15>
   pt15 
   移動するパターン。ゴミ(スパイク)を残さないのが面白い。
   

   <パターン16>
   画面全体にランダムに生成させる初期パターン
   



<目次に戻る>



プログラムのロジックについて

単純な規則に従って LIFE245.g1m を書いていますが、1つだけ工夫しています。結構な量の行列計算を出来るだけ少なくするために、パターンの周りの最低限必要なビットマップ領域だけの配列計算をするようにしています。ビットマップ領域の拡大に伴ってフレキシブルに行列の要素数を拡大しているので、パターンの領域が広がるにつれて行列計算処理に時間がかかるようになります。

LIFE245F.g1m は、ライフゲームの規則に従ってパターンを進化させるブロック (下記) を、丸ごと専用関数 DotLife() に置き換えた高速化バージョンです。具体的には、LIFE245.g1m の以下の部分を DotLife() に置き換えています。

LIFE245.g1m : パターンを進化させるブロック
 '== Calc Next Map ==
 For T→Y To B
 For L→X To R
 0→C
 CellSum(Mat B[X,Y])→C
 If Mat B[X,Y]:Then
 If C≦1 Or C≧4:Then
 0→Mat C[X,Y]
 IfEnd
 Else
 If C=3:Then
 1→Mat C[X,Y]
 IfEnd
 IfEnd
 'Expand Map Area
 If C:Then
 If l≦2:Then 2→l
 Else X≦l⇒Dsz l:IfEnd
 If r≧126:Then 126→r
 Else X≧r⇒Isz r:IfEnd
 If t≦2:Then 2→t
 Else Y≦t⇒Dsz t:IfEnd
 If b≧62:Then 62→b
 Else Y≧b⇒Isz b:IfEnd
 IfEnd
 Next:Next
 l→L:r→R:t→T:b→B


LIFE245F.g1m : 関数に置き換えたブロック
 '== Calc Next Map ==
 DotLife(Mat B,L,T,R,B)→Mat C


見て判るように、'== Calc Next Map == ブロックは、ライフゲームの規則通りに所定の領域内のパターンを1世代更新しています。この処理をごっそり DotLife() 関数で処理させています。

さて、C.Basic はインタープリタで、プログラムを読み込みながら動作します。将来的にコンパイラ版も構想しており、 DotLife() 関数は、バイナリレベルで処理しており、コンパイラ版の動作速度をシミュレートしたものです。その結果 7.7倍高速化しています。コンパイラ版はそれ以上の高速化が期待されます。

なお、実際のコードは、ダウンロードしたzipファイルを解凍して得られる textフォルダ内にあるテキストファイルをご覧下さい。

さて、サブルーチン LMAP2P.g1m では、配列データとしてプリセットパターンを記述していて、それをビットマップとして画面に表示するようにしています。プリセットパターンは、矢印キーで切り替えます。16パターン目は、画面全体にランダムにドットを書いています。
<目次に戻る>



各モデルでの処理速度
fx-9750GIII を使い、LIFE245LIFE245F について、ノーマル 58.9MHz (Ftune3[F1]の設定) と 235.9 MHz (Ftune3{F5]の設定) で処理時間を調べます。プリセットパターン3 は、電卓の画面の外に広がらず、517世代まで変化が続く面白いパターンなので、このパターンが517世代になるまでの時間を比較します。

この測定のため、プログラムソースの '== Key Operation == のすぐ上の行に以下を追加します。
 G=517⇒Break
  '== Key Operation ==

すると、517世代のパターンを描画した直後に世代進化を止めて、最後の表示にジャンプし、以下のような表示をしてプログラムが終了します。本プログラムでは、操作による時間を含まず、パターンの世代更新の実時間を計測しているので、精度の良い処理時間が表示されます(ノーマルクロックで LIFE245F.g1m 実行の例)。
 Display_Result
※ USBケーブルでPCと接続し、カシオ提供の Screen Receiver でPCに画面を表示、pngファイルとしてダウンロードしたのが上のイメージです。Screen Receiver に接続するとパターンの変化がリアルタイムでPCに表示され、その結果517世代までの時間が41.64 秒になっており、USB接続していない時 (34.47 秒) よりも処理時間が長くなっています。PCにリアルタイム表示させると表示のためのオーバーヘッドがあるようです。


LIFE245, ノーマル 58.9MHz - 258.2秒 (4分18.2秒) [2021/06/14 修正]
 

  描画領域が広がるにつれ、目に見えて描画が遅くなることが確認できます。


LIFE245, チューンアップ 235.9MHz - 59.4秒
 

  Ftune3[F5] の設定 235.9MHz でようやく実用的な速度になります。


LIFE245F, ノーマル 58.9MHz - 34.4秒
 

  DotLife() 関数を用いた LIFE245F では、ノーマル設定 58.9MHz でも十分に速くなります。


LIFE245F, チューンアップ 235.9MHz - 7.8秒
 

  DotLife() 関数を使った LIFE245F は、Ftune3[F5] 設定にすると、非常に高速になります。 


複数のモデルでFLIE245Fを走らせ、 パターン3の517世代までの処理時間をまとめます。
モデルOSノーマルクロック
チューニングツール
[F1]設定
処理時間
チューンアップ
チューンアップツール
[F5]設定
処理時間
fx-CG503.50115.16 MHz24.0 秒196.01 MHz12.8 秒
fx-CG202.0058.90 MHz24.1 秒250.05 MHz14.7 秒
fx-9750GIII3.4058.90 MHz34.5 秒235.90 MHz7.8 秒
fx-9860GII (SH4)2.0929.49 MHz36.1 秒235.93 MHz5.5 秒
fx-9860GII (SH4)2.0429.49 MHz36.2 秒235.93 MHz5.6 秒
fx-9860G AU1.0329.49 MHz49.6 秒117.96 MHz19.0 秒
fx-9860GII SD (SH3)2.0029.49 MHz49.7 秒117.98 MHz19.0 秒
fx-9860G2.0029.49 MHz49.8 秒117.96 MHz19.1 秒
fx-9860G Slim1.1029.49 MHz49.9 秒117.96 MHz19.1 秒
fx-9860G Slim2.0029.49 MHz49.9 秒117.96 MHz19.1 秒

ノーマルクロックでは、fx-CG50 が最速です。一方、チューンアップの場合は、モデルによりオーバークロック可能レベルが異なり、最速は fx-9860GII / SD (SH4) / OS2.09 となっています。

このようにライフゲームと新旧様々なモデルで動作します。お持ちのモデルに適切にインストールして遊んでみてください。

<目次に戻る>



ライフゲームに関するサイト
ライフゲームについての情報をまとめました。

ライフゲームの解説
ライフゲームの世界 - 複雑系コミュニティ動画 by はむくん - 超お勧め
 ライフゲームの世界1【複雑系】
 ライフゲームの世界2【複雑系】
 ライフゲームの世界3【複雑系】
 ライフゲームの世界4【複雑系】
 ライフゲームの世界5【複雑系】
 ライフゲームの世界6【複雑系】
 ライフゲームの世界7【複雑系】
 ライフゲームの世界8【複雑系】
 ライフゲームの世界9 最終回【複雑系】
▶ 人口知能に関する断創録 - ライフゲームの世界
▶ 人口知能に関する断創録 - ライフゲーム 
▶ ライフゲームから生命誕生(前編)
▶ ライフゲームから生命誕生(後編)
▶ 数字の難民 - ライフゲームを知っていますか?《機械仕掛けの生物》
▶ ウィキペディア - ライフゲーム

▶ ライフゲーム入門 (Introduction The Game of Life)
▶ 続・ライフゲーム入門 (Game of Life Demo)


fx-5800P でライフゲームを作った人が居た!
▶ nimu.akhの日記: 関数電卓でライフゲーム


ライフゲームの数学的側面
▶ ウィキペディア - ライフゲームの物体一覧
▶ ウィキペディア - セル・オートマトン
▶ ウィキペディア - チューリングマシン

<目次に戻る>





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






keywords: fx-9860GIICasioBasic、プログラミング入門グラフィックスプログラム関数電卓

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

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

お勧めの充電池と充電器 (2)

アドイン版 Casio Basic - お勧めの充電池と充電器 (2)
<トップページ>


2021/06/20
追記修正 2021/07/18


2018/08/14 と 2019/06/17 にお勧めの充電池と充電器を紹介している。その後、商品が激しく入れ替わり、以前の記事が古くなってしまったので、現状に併せて新たに紹介しようと思う。

アドイン版Casio Basic - C.Basic for FX や C.Basic for CG は 高速動作が特徴の1つ。プログラムによれば C.Basic で作ったものをさらに高速動作させたくなるものもある。例えば ライフゲーム のように グラフィックス画面の広い領域を高速に描画するようなプログラムだ。

そこで、オーバークロックによりチューンアップするチューンアップツール (アドインプログラム) の出番だ。
ただしオーバークロックで大幅にチューンアップすると電力消費が激しく、一日使えば電池が空になる。

カシオのグラフ関数電卓は、アルカリ乾電池 (1.5V) か ニッケル水素充電池 (1.2V) の使用を標準としているが、電力消費の激しい使い方には ニッケル水素充電池が間違い無く経済的だ。




お勧めの単四形充電池

 アマループ(Amazon Basic OEMエネループ)最小容量800mAh 約1000回使用
一番のお勧めがコレだ。
Amazon Basic ブランドの OEMエネループ (アマループ) のなかで、最小容量800mAh / 1000回使用 を愛用している。8本入りでPanasoicのスタンダードエネループの半額近い.

Panasonic アルカリ単4電池の Amazon平均価格の約2倍の単価だが、再充電して何回か使えばしっかり元がとれる。

もともとエネループは三洋電機の製品で、開発製造は三洋エナジートワイセルで行っていた。三洋電機がPanasonicに買収された時、富士通の子会社FDKに売却され、その子会社としてFDKトワイセルに社名が変わり今も同等の製品を開発製造していて、ここでアマループが製造されている。つまりアマループは以前の国産のエネループと同じ製造ラインで作られているのが大きな安心感に繋がる。なお、エネループという商標はパナソニックが使い、FDKトワイセルは使っていない。

ところで、1年程度使ったアマループで容量を測ると劣化しても 750mAh 以上あり、まだ余裕がある。 


 Panasonic エネループ 大容量モデル 最小930mAh 約500回使用

オーバードライブで最大級にチューンアップしてを長時間使いたい場合は、1回の充電での使用時間を経済性よりも優先させたい。

その場合は、Panasonic のエネループの大容量モデル、最小容量 930mAh、約500回使用 が最強だ。キャリング用の電池ケースも付属している。

このクラスの寿命は、以前は300回使用が多かったが、最近は500回使用と性能が向上している。


以前販売されていた Panasonic 大容量充電式エボルタ 950mAh クラスの製品は製造中止になっている。上記の大容量エネループの性能が充電式エボルタに追いついてきたのがその理由だと思われる。


なお、色々なニッケル水素充電池を比較評価した記事で参考になりそうなものを紹介する。
 充電池はどれを買うのがお得かガチ検証した ~ 単三形2000mAh級ニッケル水素充電池編

この記事をより深く理解するためには、以下の記事が役立つ。
ニッケル水素電池 (Ni-MH) の充放電特性



お勧めの電池ケース

8個買って4個は持ち歩くのが基本で、長期出張時は上で紹介した大容量エネループを追加して持ち歩くか、充電器を持って行く。横に繋げられるのがポイント。

 



お勧めの充電器

エネループ / アマループと充電式エボルタともに使えて、電池1本でも充電できて、電池1個ごとに充電状態を確認できるものがお勧め。

PSPOWER製 NT 1000

一番のお勧めがコレ!ACアダプタは100~240V対応なので、海外でも使える。
PSPOWER NT 1000電池ごとに、急速充電、放電後充電、リフレッシュ、充電電流を設定でき、容量、電圧、容量の測定値の表示ができる。

劣化した充電池をリフレッシュしてしっかりと容量回復ができるのが、この充電器の最大の利点だ。


 
Panasonic製 BQ-CC71AM-K

上の NT 1000 が高価だと感じる場合は、最低限の機能として電池ごとに診断・充電制御・最適充電ができるもののを勧める。

そこで価格優先ならば、Amazon専用モデルの BQ-CC71AM-K を勧める。但しAmazonでの価格は不安定なので、安い時に購入するのが良い。

ネットで検索するとPanasonic製の BQ-CC85 を勧める口コミやブログが散見されるが、リフレッシュ可能な場合でも買換えを促すLED表示が点灯するなど問題があり、そのくせ決して安くない。機能をもとめるなら、上で紹介しているように劣化を回復可能なリフレッシュ機能のあるNT-1000を断然勧める。



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





keywords: fx-CG20 fx-CG50C.Basic充電池充電器

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

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

C:Basic - Top Page

C:Basic - Add-In Casio Basic

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

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

C.Basic, a part of C:Basic Project

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

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

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

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

Why C.Basic / C:Basic?

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

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




▋ Latest Version of C.Basic

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

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

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

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



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

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

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

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

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

FA124A_Moved

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

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

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


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

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

fx-CG_Explorer

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

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

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



How to Use & Command Reference

   C.Basic for FX

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



Overclock Add-In: Ftune2

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

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

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



Potential of C.Basic & C:Basic

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

Conway's Game of Life

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

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



- Download:
Game of Life Ver 0.74

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

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

=====

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



Download: Game of Life Ver 0.84

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


3D Maze

3D_Maze 

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

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

Download: 3D Maze



Action Game - DRAGON



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

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

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

Download: Dragon.zip



Shooting Game - AlienCG

AlianCG1.png AlianCG3.png 

Download: AlienCG



▲Back to Top



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

C.Basicのインストール

C:Basic - アドイン Casio Basic
<トップページ>

内容の更新や修正を随時行います.

2016/03/27
更新 2019/09/01


C.Basic の使い方



C.Basicのインストール

C.Basic の初めてのインストールや最新バージョンへのアップデートを行う時、ダウンロードした C.Basic のプログラムファイルを グラフ関数電卓に転送する。

fx-9860Gシリーズに転送する場合は、電卓に同梱されている PCリンクソフト FA-124A とUSBケーブルを使う。そして、アドインプログラムである C.Basic for FX のプログラムファイル (CBASIC.g1a) を、一旦 FA-124A に登録した後(読み込んだ後)、FA-124A上の操作で 電卓のストレージメモリ へ転送すれば良い。

fx-CG20 や fx-CG50 に転送する場合は、同梱されているUSBケーブルでPCと電卓を接続すると、電卓はPCの外部ドライブとして認識される。そして、アドインプログラムである C.Basic for CG のプログラムファイル (CBCGxxx.g3a、xxxはバージョンを示す3桁の数字) を エクスプローラを使って外部ドライブである電卓にコピーすれば良い。但しコピー先は外部ドライブのルート (ストレージ領域)である。

- C.Basic をダウンロードする

fx-9860Gシリーズ用 - C.Basic for FX のインストール

- fx-CG20 / fx-CG50用 - C.Basic for CG のインストール
    ・ fx-CG20 / fx-CG50をPCとリンクして CbasicCG.g3a をコピーする

- メモリを最適化する




C.Basicをダウンロードする

最初に、最新バージョンをダウンロードし、適当なフォルダに解凍して保存する。C.Basic for FX は、拡張子が G1A の CBASIC.G1A ファイルが プログラムファイルだ。C.Basic for CG は、拡張子が G3A の CBCGxxx.g3a (xxx はバージョンを示す3桁の数字) がプログラムファイルだ。

▲Top に戻る


fx-9860Gシリーズ用 - C.Basic for FX のインストール

FA-124A をインストールする

FA-124Aの日本語マニュアルを併せてインストールするには、fx-9860GII に添付されているCDから言語に「日本語」を選んでインストールする。

▲Top に戻る


C.Basic を FA-124A に登録する

FA-124A を起動する

FA-124A を起動する。右ペインのツールバーに電卓のボタンが選択された状態になっている。
電卓のボタンにマウスを持ってくると、Main とポップアップされる。これは、メインメモリが選択されたことを示す。

fa124_01

左ペインが電卓内のファイルの状況を示し、右ペインがPCにあるファイルの状況を示す。今は右ペインに注目する。

fx-9860GII には、メインメモリとストレージメモリの2種類が内蔵されている。それに会わせて、FA-124A ではメインメモリとストレージメモリを切り替えて管理するようになっていて、起動した直後はメインメモリが選択されている。

アドインプログラムである C.Basic はストレージメモリに転送して使うので、ダウンロードした C.Basic はストレージメモリへ転送する必要がある。従って、起動時に メインメモリの状況を表示している FA-124A を、ストレージメモリの状況を示すように切り替える必要があるわけだ。 


 FA-124A でストレージメモリに切り替える

右ペインで、メインメモリの電卓ボタンの右にあるストレージメモリのボタンをクリックすると、ストレージメモリの状況を示す画面に切り替わる。

fa124_02


 C.Basic を FA-124A へインポート(Import)する

右ペインに表示されている "Default" でマウスを右クリックして、メニューから "Import"をクリックする。

fa124_03

ここで現れる Insert CASIO File ダイアログで、

・ ファイルの場所(I): で CBASIC.G1A ファイルを保存したフォルダを選び、
・ ファイルの種類(T): で G1A File(*.g1a) を選び、
CBASIC.G1A を選んで、[開く(O)] ボタンをクリック。

FA124A_Select 

右ペインに、CBASIC.g1a が追加されていることを確認する。

fa124_04

次に、ヘルプファイルを転送する。ヘルプファイル ~~HELP1.G1M は、CBASIC.G1M ファイルを保存したフォルダにあるHELPフォルダの中にある。そこで、上と同様の手順で、~~HELP1.G1M ファイルをFA124にインポートする。

fa124_05

残るは、FONTフォルダとFONTEDITフォルダのインポートだ。

フォルダは上と同じようにインポートできない。FA-124の右ペインで一旦フォルダを作る必要がある。
Default にカーソルを移動 (マウスでクリック) し、右から4つめの New Folder ボタンをクリックする。

fa124_06

するとフォルダ名を入力するダイアログが表示されるので、そこで FONT と入力し [OK] クリックする。

fa124_07

これで、FONTフォルダが作成される。

fa124_08

同じようにして、FONTEDITフォルダを作成する。

fa124_09

最後に、フォルダの中にあるファイルをインポートする。手順は CBASIC.G1M や ~~HELP1.G1M をインポートした時と同様で、インポート先フォルダが Default ではなくて FONT フォルダや FONTEDITフォルダになるところが異なる。

FONTフォルダで右クリックして Import を選ぶ。

fa124_10

ファイル選択画面 (Insert CASIO File) で、ファイルの種類を All Files (*.*) とする。

fa124_11

多くのビットマップファイルがあるが、これらを全てインポートする。そこで、どれか1つのビットマップファイルをクリックしてから、[Ctrl] + [A] を押して、全てのビットマップファイルが選択されるようにする。

fa124_12

この状態で、[開く(O)] をクリックすると、

fa124_13

FONTフォルダに複数のビットマップファイルが無事インポートされた。

FONTフォルダへのインポートと同様に、FONTEDIT フォルダにファイルをインポートする。
全てのファイルを選び、

fa124_14

[開く(O)] クリックで、FONTEDITフォルダに全てのファイルがインポートされる。

fa124_15

これで、C.Basic for FX で転送が必要なファイルとフォルダの準備ができた。

fa124_16

▲Top に戻る


C.Basic を fx-9860GII に転送する

fx-9860GII を FA-124A に接続する

fx-9860GII と PC をUSBケーブルで接続すると、fx-9860GII の画面に コネクションモードの選択画面 (Select Connection Mode) が現れる。

SelectConnectionMode 

ここで、[F1] (DataTrans) を押し、次にFA-124A のペイン (今度はペイン) に並んでいるボタンの左端にある "Connect" ボタンをクリックすると、

fa124_17

接続プロセスの進行状況が表示された後、fx-9860GII が FA-124A に接続される。

接続が完了すると、ペインに "User1" の表示が現れる。

fa124_18


C.Basic を転送する

既に Import して 右ペインにある CBASIC.g1a にマウスカーソルを合わせてドラッグして、ペインの User1 へドロップする (ドラッグ&ドロップ)。

fa124_19

すると、転送が始まる...

fa124_transfer

初めてインストールした場合は、ペインの User1 をクリックして展開して、CBASIC.g1a が有れば、転送が成功している。

fa124_20

同じようにして、右ペインにある FONT フォルダを左ペインの User1 にドラッグ&ドロップして転送する。

fa124_20

最後に、FONTEDITフォルダも転送する。

fa124_21

これで、C.Basic for FX の転送が完了。


なお、転送作業の間に、FA-124と電卓のリンクが突然切れ、電卓の画面で

Memory Full
  Press:[EXIT]

と表示されることがある。これは電卓側のストレージメモリの残りが少なくなった時に現れるエラーだ。
ストレージの残りがまだ十分にあるのに、このエラーが発生する時は、電卓メモリの最適化を行えば良い。

[MENU] - "MEMORY" - [F5] (Optimization)

最適化を行ったのち、再度電卓とPCを FA-124で接続し、転送作業をやり直せば良い。


C.Basic for FX をアップデートする際、もしストレージメモリの残りが CBASIC.G1M のファイルサイズよりも少ない時は、一旦電卓上で [MENU] - "memory" - [F2] (Storage Memory) と操作し、CBASIC.g1a を削除し、さらに最適化を行う。その後 CBASIC.g1a を転送するとうまくゆく。

▲Topに戻る


転送を確認する

fx-9860GII で [MENU] キーを押して、MAIN MENU を表示してC.Basic アイコンが有ることを確認し、

MAIN_MENU_CBasic 

C.Basic アイコンを選んで [EXE] キーを押して、C.Basic を起動する。

起動すると、File List 画面になるので、そこで [SHIFT][MENU](SET UP) とキー操作すると、C.Basic のセットアップメニューが表示される。

CBasic_Setup 

一番下の行にあるファンクションメニューで、[F6](Ver.) を押して C.Basic のバージョンを表示し、正しいバージョンがインストールされていることを確認する。

Version_FX  

▲Top に戻る


fx-CG20 / fx-CG50 用 - C.Basic for CG のインストール

fx-CG20 / fx-CG50 をPCとリンクして CBCGxxx.g3a をコピーする

製品に同梱されているPCリンク用 USBケーブルを使って、電卓とPCを接続すると、電卓が外部ドライブとして認識されるので、エクスプローラでそのドライブを開くと、電卓内部のファイル構造が表示される。 

PCLink_PCDisp 
拡張子 g3a のファイルが幾つかあるが、これがアドインプログラムのファイルだ。ここに以下をコピーすれば良い。
 - CBCGxxx.g3a (xxx はバージョンを示す)
 - ~~HELP1.g1m (ヘルプファイル、ダウンロードファイル内の Helpフォルダにある)
 - ~~HELP3.g3m (ヘルプファイル、ダウンロードファイル内の Helpフォルダにある)
 - @Font フォルダ
 - FontEdit フォルダ


電卓を起動し [MENU] キーを押し、メニューに C.Basic for CG のアイコンがあることを確認。
MENU_CG  

CBasicCG アイコンにカーソルを移動し起動すると、
CBasicCG_FileList 

ファイルリストが表示されたら [SHIFT] [MENU] (SET UP) とキー入力すると セットアップ画面になる。
CBasicCG_SetUp 

[F6] (VERSION)  を押すと、バージョン情報が現れる。
VersionDisplay  

導入したバージョンが正しいことを確認できれば、インストール成功。

▲Top に戻る


メモリを最適化する

C.Basic 本体や、C.Basic で使う Casio Basic プログラムファイルは、いずれもストレージメモリに格納して使う。メモリへの書き込みを繰り返すと、ファイルの断片化が進んで実際に使えるメモリ容量が減ってしまうので、定期的にメモリの最適化作業を行う必要がある。そこで、C.Basic 本体を転送するタイミングでのメモリの最適化を勧める。

[MENU] キーを押して、MAIN MENU から Memory アイコンを選び、

MENU_Memory CG50_MENU_MemoryManager 

[EXE] キーで、Memory Manager を起動する。

MemoryManager CG50_MemoryManager 

ここで、[F5] (F5: Optimization) を押して、メモリの最適化を実行する。

Top に戻る





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




keywords: fx-9860GIICasioBasic、プログラミング入門グラフィックスプログラム関数電卓

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





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

C.Basic for CG 開発が始動 - Part 3 (Ver 0.56α以降)

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

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

更新:2019/06/08


[2019/06/15] C.Basic for CG が Ver 1.00 beta にアップデート 
      

C.Basic for CG 開発が始動 - Part 2 (Ver 0.55αまで)
 
 の続きです


Ver 1.00 Beta 以降は Part 4 に移行しました








はじめに - Part 3 - C.Basic for CG (Ver 0.56α から Ver 0.65α まで)
  Ver 1.00 beta 以降はこちらへ移動

完成度の高い fx-CG50 が登場し、この機種で走る アドイン版 Casio Basic - C.Basic for CG が公開され、次々と新機能が追加され、かなり使いやすくなっています。C.Basic for CG で追加された機能のうち fx-9860Gシリーズに適用可能なものは、C.Basic for FX にも追加されています。

現在はアルファ版です。作者の sentaro様を皆で応援し、作者とユーザーの情報交換を継続するために、Part 3 を作りました。



目 次

現行アルファバージョンについて

最新版のダウンロード - Part 3


操作法・コマンドの説明・更新履歴など

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

C.Basic for CG で楽しめるプログラム 

 お勧めの充電池と充電器   





現行アルファバージョンについて
C.Basic for CG は、現在アルファ版 (初期お試し版) です。現行バージョンは、まだ未完成と考えて下さい。バグの可能性もあるので、作者 (sentaro様) に連絡して応援する...というのが当ブログのスタンスです。

<目次に戻る>


最新版のダウンロード - Part 3

   C.Basic for CG Ver 0.86 (アルファ版)
  • 解凍して得られる CBASICCG.g3a ファイルを fx-CG20 / CG50 のストレージメモリに転送してアップデート完了!
  • 詳しいインストール方法はこちら 
  • 取扱説明書:同梱テキストファイルを参照。但し以下でも同じものが確認できます。マニュアルのデバッグも進行中です
  • 過去のバージョンは こちら
<目次に戻る>


操作法・コマンドの説明・更新履歴など
<目次に戻る>



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

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


<目次に戻る>


C.Basic for CG で楽しめるプログラム

昔懐かしいインベーダーゲーム 


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

<目次に戻る>



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





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

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



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

C:Basic プロジェクト

アドイン版 Casio Basic
<トップページ>

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

動画追加 2015/11/15
改訂 2015/12/06
追記修正 2017/12/17
更新 2019/05/29


※ 最新バージョンは <トップページ>からダウンロードできます. 


C:Basic とは?

コーディングが楽な Casio Basic を使って、高速なプログラムを作りたい...
そんな望みに応えるために、Casio Basic が高速で動作する環境をアドインで提供する試みが C:Basic プロジェクトです。

C:Basic = アドインCasio Basic インタープリタ & コンパイラ

現在のところ、インタープリタ C.Basic (ドット1個) の開発段階です。C.BasicC:Basic の一部です。


1. 高速動作
グラフ関数電卓 fx-9860GII の 純正 Casio Basic のグラフィックス描画はとても遅く、127×63 ドットの画面を点で埋めるには、かなり待たされます。また、計算量の多いプログラムも、かなり遅くなります。純正 Casio Basic のプログラムソースをそのまま高速動作できるのが C.Basic / C:Basic です。

2. Casio Basic の上位互換の言語仕様
純正 Casio Basic のソースがそのまま使えることを基本に、より便利になるような機能や高速化を実現するような独自機能を追加しています。特にグラフィックスは、純正 Casio Basic コマンドの高速化に加えて、独自コマンドによる高速化も図っています。

3. 電卓で完結する開発環境
プログラムの作成・編集の全てを電卓上で行えて、パソコン不要の開発環境です。C.Basic / C:Basic はアドインとして提供されます。純正 Casio Basic のエディタよりも使いやすく、純正にはないデバッグ機能 (Ver 0.99以降) もあり、かなり高機能なエディタを備えています。さらに、プログラムファイルリストのお気に入り機能があり、fx-5800P に備わっている利便性を fx-9860G シリーズや fx-CGシリーズで実現しています。

4. 対応機種も拡張
fx-9860Gシリーズ用の C.Basic for FX だけでなく、fx-CGシリーズ用の C.Basic for CG もあります。



▋ プロジェクトメンバー
  • 設計&作成: sentaro様
  • サンプルプログラム作成&テスト: 管理人(私)、他有志
  • 開発支援メンバー: Colon様、ガノー様、ツル様、iron2様、他国内外のC.Basicユーザー




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




keywords: fx-9860GIICasioBasic、プログラミング入門グラフィックスプログラム関数電卓

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



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

C.Basic for CG 開発が始動 - Part 2 (Ver 0.38α以降)

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

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

2018/02/18
更新 2018/07/31

[2018/07/31] C.Basic for CG Ver 0.55α がマイナーアップデート

C.Basic for CG 開発が始動 - Part 1 (Ver 0.37αまで)
 
 の続きです

 
Ver 0.56α 以降は、Part 3 に移行しました





はじめに - Part 2 - C.Basic for CG (Ver 0.38α以降)

完成度の高い fx-CG50 が登場し、この機種で走る アドイン版 Casio Basic - C.Basic for CG が公開され、次々と新機能が追加され、かなり使いやすくなっています。C.Basic for CG で追加された機能のうち fx-9860Gシリーズに適用可能なものは、C.Basic for FX にも追加されています。

現在はアルファ版です。作者の sentaro様を皆で応援し、作者とユーザーの情報交換を継続するために、Part 2 を作りました。



目 次

現行アルファバージョンについて

最新版のダウンロード - Part 2


操作法・コマンドの説明・更新履歴など

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




現行アルファバージョンについて
C.Basic for CG は、現在アルファ版 (初期お試し版) です。現行バージョンは、まだ未完成と考えて下さい。バグの可能性もあるので、作者 (sentaro様) に連絡して応援する...というのが当ブログのスタンスです。

<目次に戻る>


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

   C.Basic for CG Ver 0.55α(アルファ)版
  • 解凍して得られる CBASICCG.g3a ファイルを fx-CG20 / CG50 のストレージメモリに転送してアップデート完了!
  • 詳しいインストール方法はこちら 
  • 取扱説明書:同梱テキストファイルを参照。但し以下でも同じものを参照できます。マニュアルのデバッグも進行中です。
<目次に戻る>


操作法・コマンドの説明・更新履歴など
<目次に戻る>


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

RGB指定による色確認プログラム - Check RBG Color (Ver 1.4c / 1.5a)
 [2018/03/25] マイナーアップデート  (C.Basic for CG Ver 0.44α 以降が理想的です)
  ・ 有る条件下で、[▲] / [▼] を押してもRGB値が変わらない不具合を修正
  ・[▲] / [▼] 長押しでのRGB値連続変化を高速化しました。

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

  ※ 24bit Color バージョンの Ver 1.4c の画面
  RGB4c_Txt_Mode.png  RGB4c_Grph.png

  16 bit Color バージョンの Ver 1.5a の画面
  RGB5a_Txt_Mode.png  RGB5a_Grph.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

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


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

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

やす (Krtyski)

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


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

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

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


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

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

ブロとも申請フォーム

この人とブロともになる

QRコード
QR