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

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

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

更新:2020/03/26


[2020/03/25] C.Basic for CG Ver 1.45 beta build 15 が差替えアップデート
- さらに使いやすく色々と変更していってみる版

※ お試し版なので正式版より実行速度が遅くなる部分があります。

(build15)
  • Colon様のサポートにより関数メモリの実装を開始しました。
  • デフォルトのインデックス開始値が0の場合にListの自動確保が出来なかった不具合を修正しました。
  • ファンクションメモリー(Fn)のStore/Recall/SEEのSEEをEditに変更しました。
(build14)
  • ファンクションメモリー(Fn)のStore/Recall/SEEのSEEで[F5](Edit)を追加し編集可能になりました。
  • ファンクションメモリー(Fn)のStore/Recall/SEEの不具合を修正しました。
(build13)
  • ファンクションメモリー(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を独立変数に変更しました。
  • ?コマンドで文字列が表示される場合にアスキーコードにデコードしないように修正しました。
(build12)
  • GraphYとfnの確保数と文字列の長さをStr変数と同等に変更しました。
  • GraphYの格納仕様を6バイトのプレフィックス付きに変更しました。
    (行列への直アクセス以外は以前と変更ありません。)
  • エディタでファイルモードの切替でファイルリストが更新されない不具合を修正しました。
  • セットアップで機能しない場合はアイコンをマスク化しました。
  • System()コマンドでメインメモリに保存されるC.Basicのシステムファイルを取得できるようになりました。
    (インデックス開始値は0で固定です。)
    (例)System(10000,1)
     @CBASIC/Cbasicの内容をListAnsに取得します。
    (例)System(10000,2)
     @CBASIC/Cbasic2の内容をListAnsに取得します。
(build11)
  • CGモードでScreen#で座標変換した場合に2ドットずれる不具合を修正しました。
  • Screen#、Screen%を連続実行するとエラーになる不具合を修正しました。
  • ファイルモードの検索機能を改善しました。
     アルファベットキーを押すと検索窓が開き検索モードになります。
     検索窓では左右移動等、通常の入力が可能です。
     検索窓を解除するには[EXIT]を押してください。
     カーソル上下、[EXE] [F1](EXE) [F2](EDIT) [F3](NEW)キーは検索窓を閉じること無く実行できます。
(build10)
  • ファイルモードでアルファベットキーによるダイレクト選択時に[SHIFT]、[ALPHA]、小文字や数字が指定が出来るようになりました。
     [F4](A<>a): 大文字小文字切り替えです。
     [F5](CHAR)
     [F5](→Folder): フォルダサーチに切り替わります。
     [DEL]: 一文字戻ります。
     [AC]: 全部消します。
     [EXIT]: 元に戻ります。
     [X^2]: ~
     [^]: '
     [(-)]: @
     [・]: スペース
     [x10x]: "
(build09)
  • ファイルモードでアルファベットキーによるダイレクト選択時に2文字以上の指定が出来るようになりました。
     [DEL]:一文字戻ります。
     [AC]:全部消します。
  • ファンクションメモリー(Fn)およびグラフメモリー(Y)に引数が無い場合は文字列として評価するようにしました。
  • インデントの必要なコマンド(If,Else..)の直前で改行した場合にインデントが余分に付加される不具合を修正しました。
(build08)
  • OS側のステータス表示フラグがONの場合はステータスエリアの書き換えをしないように変更しました。
(build07)
  • エミュレータで隠しメモリが使えるようになりました。
(build06)
  • 以下のコマンドでステータス表示が更新されるようにしました。
    '#CBASIC
    '#CBDBL
    '#CBINT
    '#CBCPLX
  • 一行入力時のステータスエリアの表示を改善しました。
  • エミュレータの判定方法をハードウェアID判定に変更しました。(0x8001FFD)
(build05)
  • CHAR選択画面から戻る時にステータスエリアの表示が戻らない不具合を修正しました。
  • CG10/20でエディタのサーチ画面で[SHIFT]+[4](CATALOG)が使えなかった不具合を修正しました。(1.44build14でのエンバグです。)
(build04)
  • GetHSV()/GetHSL()コマンドで変換できない色をエラーにするようにしました。
    (書式) GetHSV(16ビットカラー値[,N])
    (書式) GetHSL(16ビットカラー値[,N])
     Nオプションでエラーを無視します。
  • HSV() / HSL() での色飽和での反転を修正しました。
(build03)
  • RGB→HSV/HSLのカラーコード変換の誤差を修正しました。
  • ラベルの検索時にコメントでの'#に続くオプションの設定が変更されてしまう不具合を修正しました。
(build02)
  • VarPtr()コマンドで行列/List/Vctを指定した場合、その添字が常に実数評価されていた不具合を修正しました。
  • RGB()、HSV()、HSL()コマンドの引数がListの場合、インデックス開始値が0の場合の不具合を修正しました。
(build01)
  • 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.45β build 15 (最新お試し版)
  
C.Basic for CG Ver 1.44β build 16 (公式最新版)
  • 解凍して得られる 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

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回使用

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

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



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

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



お勧めの電池ケース

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

 



お勧めの充電器

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

PSPOWER製 NT 1000

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

 
Panasonic製 BQ-CC55

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

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



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


 



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

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


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

C.Basic Command Reference

 C.Basic - Table of Contents
< English | 日本語

Content is checked by fx-9860GII (OS 2.04).
This is on-going project, any changes may be made.


- C.Basic - Introduction & Download

C.Basic is an on-calc language running on fx-9860G Series, picking the best of both Casio Basic and usability of fx-5800P. It's not only almost compatible with Casio Basic but also providing extended commands for more powerful programming. It runs much faster than the Casio Basic.


- Inside Casio Basic

For compatible commands, go to Inside Casio Basic.


- C.Basic Command Reference

* "Compatible" = compatible with Casio Basic
* "Extended"    = extended function or new command

- Basic SpecificationCompatible  Extended
Display Area
Graphics Coordinate Systems
Control of Internal Cursor Row
 
- Basic Operation CommandsCompatible  Extended
 (Substitution)
" " (Display)
(Dispplay & Pause)
? (input) [fx-5800P]
?→ (input) [fx-9860GII, fx-CG20/10]
 
- I/O CommandsCompatible  Extended
Getkey
Getkey1, Getkey2, Getkey3
Locate X,Y,<value>[,R]
LocateYX Y,X,<value>[,R]
 
- Program CommandsCompatible  Extended
If... Then... [Else]... IfEnd
If... Then... ElseIf... [Else]... IfEnd
For... To... [Step...] Next
While... WhileEnd
Do... LpWhile
Switch... Case... Default... SwitchEnd
 
- Program Control CommandsCompatible  Extended
Break
Return
Stop
Prog "<file name>"
Prog "<fle name>",x,y,z... (Pass & Return values) 
 
- Jump CommandsCompatible  Extended
Goto... Lbl
Isz
Dsz
Gosub... Lbl... Return
  
- Relational OperatorsCompatible  Extended
=, ≠, <, >, ≤, 
 
- Logical OperatorsCompatible  Extended
And, Or, Not, Nor
 
- Descriptio CodesCompatible  Extended
: (Multi-statement Command & Display suppression)
' (Comment Text Delimiter)
'/<Command available only on C.Basic>
  
- NumbersCompatibleExtended
Type of Number
0x/0X, 0b/0B
 
- VariablesCompatible  Extended
A - Z (Capital Letter)
~
a - z (Small Letter)
#, % (double and integer variables)
Local
 
- ArrayCompatible  Extended
Dim Z / Z[ ] [fx-5800P], Dim A / A[ ]
 
- MatrixCompatible  Extended
{m,n}→Dim Mat A (Allocates Memoryx)
[[...][...]...]→Mat A (Allocates & Initializes Memory)
<number>->Mat A (Initializes & Substitute to Matrix)
<string>->Mat A (Initializes & Substitute to  Matrix)
Fill( ) (Initialize & Substitute to Matrix)
Mat A.x (x = p, b, w, l, f) (Type of Matrix)
Mat A[ ], Mat a [ ], A[ ], a[ ] (Expression of Matrix)
Mat A.v (VRAM access by 1bit Matrix)
'#Str (Handling String by Matrix)
#Mat 0, #Mat 1, Device Coordinate System
ElmSize( ), ColSize( ), RowSize( )
Save, Load( ), IsExist( ) 
Trn
 
- Bitmap CommandsCompatible  Extended
dotGet( ), dotPut( ), dotTrim( )
ReadGraph( ), WriteGraph( )
dotLife (dedicated to game of life)
 
- Display Setup (text)Compatible  Extended
Cls (Text)
ClrText (Text)
Eng
EngOn, EngOff
Norm
Sci
Fix
Deg, Rad, Gra✔
°, r (rad), g (gra), DMS✔
Rnd, RndFix( )
f, p, n, μ, m✔
k, M, G, T, P, E✔
 
- Mathematical FunctionsCompatible  Extended
Many of key-in functions✔
Abs, Int, Frac, !, MOD( )✔
sinh, cosh, tanh, sinh-1, cosh-1, tanh-1 ✔
 
- Randum NumberCompatible  Extended
Ran#, RanInt#( )
 
- StringsCompatible  Extended
Str, StrJoin( ), StrLen( ), StrCmp( ), StrSrc( )✔
StrLeft( ), StrRight( ), StrMid( )✔
Exp▶Str( ), Exp( ), StrUpr( ), StrLwr( )✔
StrInv( ), StrShift( ), StrRotate( ), \, +
Sprintf( )✔
Str( )
  
- Graphics SetupCompatible  Extended
ClrGraph
ViewWindow
Xmin, Xmax, Xdot, Xscl, Xfct
Ymin, Ymax, Yscl, Yfct
 AxesOn, AxesOff
 GridOn, GridOff
 LabelOn, LabelOff
CoordOn, CoordOff
S-L-Normal, S-L-Thick, S-L-Dot, S-L-Broken
  
- Graphics Sketch CommandsCompatible  Extended
Cls (Graphics)
ClrGraph
Text Y,X,<value>
Text Y,X,<value>[,N/R/O/V]
PxlOn Y,X
PxlOff Y,X
PxlChg Y,X
PxlTest(Y,X)
Plot
Line
PlotOn X,Y
PlotOff X,Y
F-Line X2,Y2,X1,T1
F-Line X2,Y2,X1,Y1,C/X
Vertical X
Vertical X,C/X
Horizontal Y
Horizontal Y,C/X
Circle X,Y,R
Circle X,Y,R,C/X
SketchNormal, SketchThick, SketchDot, SketchBroken
StoPict, RclPict
Rect, FillRect
FKeyMenu(<n>,<string>[,R])
PutDispDD
Screen
 
- Graph
Y
Graph Y=
DrawGraph
 
- Timer CommandCompatible  Extended
%, Ticks✔
 
- Debug CommandCompatible  Extended
ACBreak
 
- VRAM
RefreshCtrl, RefreshTime
Screen, PutDispDD
 
- Function Key Menu
FkeyMenu( )
 
- Excute ModeCompatible  Extended
'#CBINT, "#CBint
'#CBASIC, '#CBasic, '#CBDBL, '#CBdbl
 
- Hardware ControlCompatible  Extended
 Backlight
 
- Machine Language Commands
SysCall( ), Call( )
Peek( ), Poke()
ValPr( ), ProgPr( )
 
  






Copyright (C) 2013 - 2016 Krtyski / egadget.blog.fc2.com  All Rights Reserved.



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

VRAM Access by 1bit Matrix

 VRAM Access by 1bit Matrix
<C.Basic>

This content is checked by fx-9860GII (OS 2.04).
This is on-going project, any changes may be made.


Model

fx-9860G Series


Description

i. C.Basic provides a unique matrix to directly access VRAM. The unique marix is a 1 bit matrix and an element Exy directly corresponds to
an(x, y) pixel data of VRAM. The (x, y)  is a coorinate in Device Coorinates System of VRAM. Left-TOP pixel is in coorinate (1, 1) and right-bottom pixel is in coordinate (127, 63)

ii. When the VRAM access matrix is allocated, the matrix data corresponds to VRAM bitmap data. 


Syntax

1. Allocation: {127,63}→Dim Mat A.v or {127,63}→Dim Mat A.V
2. Matrix expression: Mat A[] ~ Mat Z[], Mat a[] ~ Mat z[]A[] ~ Z[], a[] ~ z[]
3. Value of the matrix is 0 (zero) or 1 (one).
4. A value A[x,y] = Exy corresponds to a pixel data (0 or 1) in coordinate (column x, row y) of VRAM.


Note

Example 1

    ClrGraph
    For -1→Y To 1 Step 0.1
        PlotOn 0,Y
    Next
    {127,63}→Dim Mat A.v
    0→P
    For 1→Y To 63
        For 1→X To 127
            P+A[X,Y]→P
        Next
    Next
    Locate 1,1,P


This code display as follows;

    21

{127,63}→Dim Mat A.v sets bitmap data of VRAM in Mat A. When a graphics command is processed automatically the VRAM bitmap reflected to the Mat A.

This code draws 21 dots at first then define Mat A.v. At this time the Mat A is directly reflected to bitmap data of VRAM. An element of the Mat A is 0 or 1, 

After allocating the Mat A, interestingly this matrix has already bitmap data of VRAM. Then calculating summary of all the elements should be a number of drawn dots. The dysplayed result shows the number of total drawn dots is 21.


Example 2

Exampl 1 is a sample to read out VRAM bitmap data. This Example 2 is to reflect VRAM bitmap data to LCD screen.

    ClrGraph
    Screen.G
    {127,63}→Dim Mat A.v
    For 53→X To 73
        1→A[X,31]
    Next
    PutDispDD

Before running a graphics drawing command, automatically text screen is selected, then swap to graphics screen by Screen.G. Mat A is allocated after ClirGraph then every element of the matrix is 0. Following code sets 21 pixels to 1. PutDispDD command transfers the VRAM data to LCD screen.
 



See also: Type of Matrix, PutDispDD, Screen

Copyright (C) 2013 - 2016 Krtyski / egadget.blog.fc2.com  All Rights Reserved.


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

Expression of Matrix (C.Basic)

 Expression of Matrix
<C.Basic>

This content is checked by fx-9860GII (OS 2.04).
This is on-going project, any changes may be made.


Model

fx-9860G Series


Description

i. A standard expression of matrix is Mat A[ ] which also can be used in Casio Basic.

ii. C.Basic provides an extended expresison using a small letter for matrix, like Mat a[ ]

iii. C.Basic provides a shorter expression for matrix, like A[ ], a[ ], &A[ ] or $a[ ].

iv. Be carefle about using tis
 abbreviated expression.  
     Instead of following standard expression;
    {<row>,<column>}→Dim Mat A 
    [[<E11>,<E12>,...][<E21,E22>,...]...]→Mat a.
    Mat A→Dim Mat A.x (x = p, v, b, l, f)

   those below cannot be used;
     {<row>,<column>}→Dim A
    [[<E11>,<E12>,...][<E21>,<E22>,...]...]→a.
    A→Dim A.x (x = p, v, b, l, f)


Note

Example 1

    [[1,2,3,4][5,6,7,8]]→Mat A.b
    Locate 1,1,ElmSize(A)
    Mat A→Dim Mat A.w
    Locate 1,2,ElmSize(A) 

This code display as follows;

    8
    16

The first and third line cannot be converted to abbreviated expression. But the second and fourth line use shorter expresison of Mat A.




See also: 

Copyright (C) 2013 - 2016 Krtyski / egadget.blog.fc2.com  All Rights Reserved.


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

Type of Matrix (C.Basic)

 Type of Matrix
<C.Basic>

This content is checked by fx-9860GII (OS 2.04).
This is on-going project, any changes may be made.


Model

fx-9860G Series


Description

i. C.Basic provides deferent type of matrix; a bit integer type, a byte integer (8bit) type, a word integer (16bit) type, a long integer (32bit) type and a double real number (64bit) type. 


ii. Those smaller bit type of matrix helps to save allocated memory size. This feature gives faster matrix access, handling bitmap data and direct access to VRAM.


Syntax

1. Mat A.p / Mat A.P defines as a bit type (1 bit)
2. Mat A.v / Mat A.V defines as a bit type for direct access to VRAM (1 bit)
3. Mat A.b / Mat A.B defines as a byte type (8 bit, byte integer)
4. Mat A.w / Mat A.W defines as a word type (16 bit, word integer)
5. Mat A.l / Mat A.L defines as a long type (32 bit, long integer)
6. Mat A.f / Mat A.F defines as a double-precision real number type (64 bit, double real) 

* Elements of each matrix is defined as the above type.


Function
  1. Definition of matrix type is available at matric allocation.
  2. Definition of matrix type is also available at initialization. User can change the matrix type which is once allocated or initialized in deferent type of matrix (see Example 1).
  3. Excepting a bit type, all other type of matrix Mat A[m,n] is Mat A[<row>,<column>]
  4. A bit type matrix is designed to handle bitmap, then the matrix is Mat A[X,Y] = Mat A[<coloum>,<row>] (see Example 2).
  5. Mat A.v / Mat A.V is a special matrix that directly reflect VRAM bitmap (see Example 2).

Note

Example 1

    [[1,2,3,4][5,6,7,8]]→Mat A.b
    Locate 1,1,ElmSize(A)
    Mat A→Dim Mat A.w
    Locate 1,2,ElmSize(A) 

This code display as follows;

    8
    16

The third line it to change matrix type.

ElmSize( )
returns bit size of elements. Defined by Mat A.b, a bit size of the elements is 8 bit. Transferring the matrix type from byte type to word type, the bit size of the elements is 16 bit. 


Example 2

    ClrGraph
    For -1→Y To 1 Step 0.1
        PlotOn 0,Y
    Next
    {127,63}→Dim Mat A.v
    0→P
    For 1→Y To 63
        For 1→X To 127
            P+A[X,Y]→P
        Next
    Next
    Locate 1,1,P


This code display as follows;

    21

{127,63}→Dim Mat A.v sets bitmap data of VRAM in Mat A. When a graphics command is processed automatically the VRAM bitmap reflected to the Mat A.

This code draws 21 dots at first then define Mat A.v. At this time the Mat A is directly reflected to bitmap data of VRAM. An element of the Mat A is 0 or 1, 

After allocating the Mat A, interestingly this matrix has already bitmap data of VRAM. Then calculating summary of all the elements should be a number of drawn dots. The dysplayed result shows the number of total drawn dots is 21.


Example 3

Exampl 2 is a sample to read out VRAM bitmap data. This Example 3 is to reflect VRAM bitmap data to LCD screen.

    ClrGraph
    Screen.G
    {127,63}→Dim Mat A.v
    For 53→X To 73
        1→A[X,31]
    Next
    PutDispDD

Before running a graphics drawing command, automatically text screen is selected, then swap to graphics screen by Screen.G. Mat A is allocated after ClirGraph then every element of the matrix is 0. Following code sets 21 pixels to 1. PutDispDD command transfers the VRAM data to LCD screen.
 



See also: ElmSize( ), PutDispDD, Screen

Copyright (C) 2013 - 2016 Krtyski / egadget.blog.fc2.com  All Rights Reserved.


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

Type of Number (C.Basic)

 Type of Number
<C.Basic>

This content is checked by fx-9860GII (OS 2.04).
This is on-going project, any changes may be made.


Model

fx-9860G Series


Description

i. An Available types of number are doulbe-precision real number (64bit) and integer (32bit) which depends on Casio SDK.
    - A range of the available double-recision real number is
        ±9.88131291682493x10-323 to ±1.7976931348623151x10
308
    - A range of the available integert is
        -2,147,483,648 to 2,147,438,647

ii. C.Basic may result in deferent calculation error.
    - Casio Basic uses BCD (Binary Coded Decimal) with internal 15 digit and 10 digit + 2 digit exponent for display. 


iii. The type of number is controlled by an executing mode, a feature of C.Basic.
      - C.Basic has two (2) deferent executing modes; a doulbe-precision real number mode and an integer mode.
      - User can select the executing mode


Syntax

1. <number> with no prefix (decimal)
2. 0x<number> or 0X<number> (hexadecimal>
3. 0b<number> or 0B<number> (binary)


Function
  1. A default <number> with no prefix is decimal number.
  2. With prefix 0x or 0X, the number is hexadecimal.
  3. With prefix 0b or 0B, the number is binary. 
  4. Initializes a matrix by filling all elements with <number>, it's same as Fill comamnd.

Note

Example 1

    0xFF→A
    Locate 1,1,A
    0b1010011→B
    Locate 1,2,B 

This code display as follows;

    255
    83

where 0xFF=255 and 0b1010011=83.


Example 2

    '#CBdbl
    1.23→N
    Locate 1,1,N
    '#CBint
    Locate 1,2,N


This code display as follows;

    0.23
    0

'#CBdbl sets Executing Mode in double-precision real (64bit) mode, then all the processes are carried out with 64bit numbers. C.Basic provides two (2) types of variable set; a double-precision real (64bit) and an integer (32bit) variable set. In the 'doulbe (64bit)' mode the variable N is 'double (64bit)' variable. That's why Locate 1,1,N dislays 0.23

'#CBint sets in integer (32bit) mode and C.Basic proceses with 32bit numbers. In the 'integer (32bit)' mode the variable N is 'integer (32bit)' variable. That's why Locate 1,2,N displays 0.

Opening Variable Review screen by key press [SHIFT][F1](Var) to press [F3](D<>I) to swap lost of 'double (64bit)' variables and 'integer (32bit)" variables. it shows 'double N' is 0.23 and 'integer N' is 0




See also: Executing Mode, Variable Review Screen

Copyright (C) 2013 - 2016 Krtyski / egadget.blog.fc2.com  All Rights Reserved.


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

Initialize & Substitute to Matrix (C.Basic)

 Initialize & Substitute to Array
<C.Basic>

This content is checked by fx-9860GII (OS 2.04).
This is on-going project, any changes may be made.


Model

fx-9860G Series


Syntax

Compatible
1. Fill(<number>)

Compatible + Extended (see Note below)
2. [[<E11>,<E12>, ...][<E21>,<E22>, ...] ... ]→Mat A  (Allocates & Initializes Matrix)

Extended
3. [["<string 1>"]["<sring 2>"] ... ]→Mat A    (Allocates & Initializes Matrix)
4. <nunber>→Mat A



Key Press

Mat        [SHIFT][2] 


Function
  1. Initializes a matrix by filling all elements with Fill(<number>).
  2. Initializes a matrix by setting every elements <Eij>.
  3. Initializes a matrix by setting strings <string n>
  4. Initializes a matrix by filling all elements with <number>, it's same as Fill comamnd.

Description
  1. User must allocate memory for a matrix before initialize and use it.
  2. It's recommended that user release the allocated memory for matrix before end of program. Otherwise the allocated memory reamains until the same matrix is allocated or initiaized again.
  3. <Eij> means an element at row i and column j (see Example 1).
  4. User can use strings <string n> to allocate and initialize a matrix (see Example 2 & 3).

Note

Example 1

C.Basic allows user to use carriage return and space within [ ]. Allocating and initializing a matrix in the following way is good for easy-to-read sorece code;

    [
      [0x1234,0x2345,0x3456]
      [0x4567,0x5678,0x6789]
      [0x789A,0x89AB,0x9ABC]
    ]Mat A


User can explicitly write a constant in hexadecimal or binary expression by adding prefix "0x"/"0X" or "0b"/"0B" subsequently. 


Example 2

Extended usage of matrix helps strings operation, see following sample;

    [
      "1:ABC",
      "2:DEF",
      "3:GHI"
    ]→>Mat S
    Locate 1,2,&Mat S[1]
    Locate 1,3,&Mat S[2]
    Locate 1,4,&S[3]
    Locate 1,5,&S[1,3]
    Clrmat

This code dislays as follows;

    1:ABC
    2:DEF
    3:GHI
    ABC


This way is similar to string handing of C language. Instead of & user can use $.
User can write S[ ] instead of Mat S[ ]


Example 3

    [
      "ABCD",
      "EFGH"
    ]→Mat B
    Locate 1,1,B[1,1]:Locate 4,1,B[1,2]
    Locate 7,1,B[1,3]:Locate 10,1,B[1,4]:Locate 13,1,B[1,5]
    Locate 1,2,B[2,1]:Locate 4,2,B[2,2]
    Locate 7,2,B[2,3]:Locate 10,2,B[2,4]:Locate 13,2,B[2,5]
    
This code displays as follows;

    65 66 67 68 0
    69 70 71 72 0

Each element is a charactor code of each alphabet. When allocate the matrix in this way using strings, the matrix is 2 rows x 5 columns, not 2 rows x 4 column. each row corresponds to each string and 0 (zero) is automatically added in the last column. 




See also: Initialize Matrix, <number>->Mat A, <string>->Mat A, '#Str

Copyright (C) 2013 - 2016 Krtyski / egadget.blog.fc2.com  All Rights Reserved.



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

Allocates Matrix (C.Basic)

 Allocate Matrix
<C.Basic>

This content is checked by fx-9860GII (OS 2.04).
This is on-going project, any changes may be made.


Model

fx-9860G Series


Syntax

Compatible with Casio Basic
1. {<row>,<column>}→Dim A     (Allocates matrix)

Compatible + Extended (see Note below)
2. [[<E11>,<E12>, ...][<E21>,<E22>, ...] ... ]→Mat A  (Allocates & Initializes Matrix)

Extended (see Note below)
3. [["<string 1>"]["<sring 2>"] ... ]→Mat A    (Allocates & Initializes Matrix)

Compatible with Casio Basic
4. ClrMat Mat A    (Releases matrix)


Key Press

Dim       [F3](CMD) --> [down]/[up] --> [9](9:Dim)
Mat        [SHIFT][2] 

ClrMat   [F3](CMD) --> [down]/[up] --> [9](9:ClrMat)


Function
  1. Allocates memory for Matrix by setting of row and column number (m, n).
  2. Allocates and initializes Matrix by setting every elements (<Eij>).
  3. Allocates and initializes Matrinx by setting strings ("<string n>")
  4. Releases Matrix memory region.

Description
  1. User must allocate memory for a matrix before initialize and use it.
  2. It's recommended that user release the allocated memory for matrix before end of program. Otherwise the allocated memory reamains until the same matrix is allocated or initiaized again.
  3. <Eij> means an element at row i and column j (see Example 1).
  4. User can use strings <string n> to allocate and initialize a matrix (see Example 2 & 3).

Note

Example 1

C.Basic allows user to use carriage return and space within [ ]. Allocating and initializing a matrix in the following way is good for easy-to-read sorece code;

    [
      [0x1234,0x2345,0x3456]
      [0x4567,0x5678,0x6789]
      [0x789A,0x89AB,0x9ABC]
    ]→Mat A


User can explicitly write a constant in hexadecimal or binary expression by adding prefix "0x"/"0X" or "0b"/"0B" subsequently. 


Example 2

Extended usage of matrix helps strings operation, see following sample;

    [
      "1:ABC",
      "2:DEF",
      "3:GHI"
    ]→Mat S
    Locate 1,2,&Mat S[1]
    Locate 1,3,&Mat S[2]
    Locate 1,4,&S[3]
    Locate 1,5,&S[1,3]
    Clrmat

This code dislays as follows;

    1:ABC
    2:DEF
    3:GHI
    ABC


This way is similar to string handing of C language. Instead of & user can use $.
User can write S[ ] instead of Mat S[ ]


Example 3

    [
      "ABCD",
      "EFGH"
    ]→Mat B
    Locate 1,1,B[1,1]:Locate 4,1,B[1,2]
    Locate 7,1,B[1,3]:Locate 10,1,B[1,4]:Locate 13,1,B[1,5]
    Locate 1,2,B[2,1]:Locate 4,2,B[2,2]
    Locate 7,2,B[2,3]:Locate 10,2,B[2,4]:Locate 13,2,B[2,5]

    
This code displays as follows;

    65 66 67 68 0
    69 70 71 72 0

Each element is a charactor code of each alphabet. When allocate the matrix in this way using strings, the matrix is 2 rows x 5 columns, not 2 rows x 4 column. each row corresponds to each string and 0 (zero) is automatically added in the last column. 




See also: Initialize Matrix, <number>->Mat A, <string>->Mat A, '#Str

Copyright (C) 2013 - 2016 Krtyski / egadget.blog.fc2.com  All Rights Reserved.


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

Array

 Array
<C.Basic>

This content is checked by fx-9860GII (OS 2.04).
This is on-going project, any changes may be made.


Model

fx-9860G Series


Syntax

<natural number>→Dim A     (Allocate array)
A[<index>]                            (an Array)
0→Dim A                               (Release array) 


Key Press

Dim   [F3](CMD) --> [down]/[up] --> [9](9:Dim)


Function
  1. When allocated n elements for the array, user can use A[1], A[2], ... A[n].

Description
  1. A - Z (capital letters) can be used for the array variables.
  2. An array provided by fx-5800P Casio Basic is more convenient than matrix, that's why C.Basic provides array.
  3. The array must be initialzed (allocated in memory), and cleared (reased from memory) in a program.
  4. <index> should be natural number, 0 (zero) cannot be used.
  5. 100->Dim Z is same as [100,1]->Mat Z, Z[100] is same as Mat Z[100,1] and 0->Dim Z is same as ClrMat Z.

Note

Sample program, display of Fibonacci sequence;

    50→Dim A
    1→A[1]:1→A[2]
    For 3→I To 50
        A[I-2]+A{I-1]→A[I]
        Locate 1,1,"I="
        Locate 3,1,I
        Locate 1,2,"A[I]="
        Locate 6,2,A[I]
        Getkey1
    Next
    0→Dim A





See also: Getkey1

Copyright (C) 2013 - 2016 Krtyski / egadget.blog.fc2.com  All Rights Reserved.


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

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

やす (Krtyski)

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


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

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

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


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

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

ブロとも申請フォーム

この人とブロともになる

QRコード
QR