C.Basic for CG 開発が始動

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

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

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

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

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


はじめに

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

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

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

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


目 次

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

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

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




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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

 Ver 0.20α版
 ・SDK変更初版
  

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

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

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

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

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

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

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

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


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

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

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



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

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

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

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

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

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

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

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

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

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

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



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

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

  RGB4b_2.png 

  RGB4b_3.png 


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

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

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

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





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


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





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


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



関連記事

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

コメントの投稿

非公開コメント

Part 2 に移動しました

sentro様、ツル様、iron2様、CG&FXユーザーの皆様

管理人のやすです。

当エントリーのコメントが一杯になって受け付けなくなったので、Part 2 へ移動しました。

http://egadget.blog.fc2.com/blog-entry-658.html

Re:Txtで実行しない

管理人様、ツル様、iron2様、CGユーザーの皆様

iron2です。

sentaro様、
>Cross
>というコマンドが純正コマンドに存在しています。
ありがとうございました。

複数文字変数を使うんだと決めた時から
ある程度は覚悟はしていたんですが
やっぱり引っかかってしまいましたね。

でもここまできたら最後までがんばります。

これからもよろしくお願いします。

Re:Txtで実行しない

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、GTEST5.zip拝見いたしました。(^^)

テキストでエラーになるところが、
Alias Lbl A=_CrossPt
この部分ですが、
Cross
というコマンドが純正コマンドに存在しています。
[F3](MENU)-[F1](STAT)-[F4]](TYPE)-[F2](Cross)

ということで、その純正コマンドとして判定されたということで、
エラーになったというわけです。

で、
これを解消するには
_CrossPt

_crosspt
とか
_CrosPt
とかに変更する必要があります。

g3mでは変換が行われないのでエラーにならないのですが、
これはテキスト変換での仕様上の問題といえますね。
純正コマンドは必ず大文字で始まるので
最初を小文字で始めるとかであれば防げると思います。(^^)

Txtで実行しない

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

sentaro様、
なるべく自己解決できそうな投稿は控えようとがんばってはいるのですが
十字カーソル(CroosPointer)のテストコードを作成していて
⇦⇨⇧⇩ですばやく移動しShitでGetkey1を挟んで遅く動き微調整の動きをし
Alphaで元のすばやく動くにてテキストでX,Yを表示しています。
遅くのGetkey1がベターなのかよくわからなかったのでTxtに落として
実行しようとしたときに実行できませんでした。g3mは普通に何度
実行しても問題ありません。私のコードではtxtで問題があるのでしょうか?
Zipファイルをアップローダーに投稿しました。g3mとtxtが入っています。
ロックはかけてません。
お手数かけますが、よろしくお願いします。

Re:Re: Re:Re: C.Basic for CG v0.37α (微妙に使い勝手を改良?版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>それぞれの記事で、ドキュメント(テキストファイル)へのリンクを貼っているので、今回はテキストファイルについてマイナーアップデート対応しました。

早速にありがとうございます!
英語のドキュメントは毎度英訳が怪しさ満点なので、
日本語ドキュメントをブラウザの翻訳にかけたほうがましという可能性も大ですが、(^^;
なんとかドキュメントも一通りバージョンアップできました。


>fx-5800P同士のデータリンクになれていると、マニュアル無しでも使えそうですが、慣れていない人を思い浮かべて書きました。

メーカーのマニュアルよりも痒いところに手が届く完璧なマニュアルですね!(^^)


>CcEditor は fx-5800Pの隠し機能を引き出す意味で、有用なツールなので、これの記事も書こうと思っています。

fx-5800Pに隠し機能があったことは誰も分からなかったわけなので、takumako様の功績は世界初ということになるわけですが、
それをさらに活かす管理人様の記事は隠し機能の実践的実用編の世界初という感じになりそうですね。(^^)

Re: Re:Re: C.Basic for CG v0.37α (微妙に使い勝手を改良?版)差し替えです。

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。


> C.Basic for CG v0.37α ("めっちゃ" 使い勝手を改良?版)差し替えです。
> http://pm.matrix.jp/CB/CBASICCG037.zip
> ・[AC]キーによるBreakの有効無効をプログラム内で出来るようにしました。
> (例)'#Break0 // [AC]キー無効
> (例)'#Break1 // [AC]キー有効(デフォルト)


"めちゃ"で吹き出しました...

> C.Basic for FX v1.70beta も差し替えです。
> http://pm.matrix.jp/CB/CBASIC170beta.zip


それぞれの記事で、ドキュメント(テキストファイル)へのリンクを貼っているので、今回はテキストファイルについてマイナーアップデート対応しました。


ところで、CcLinker の記事をアップしました。
http://egadget.blog.fc2.com/blog-entry-654.html

fx-5800P同士のデータリンクになれていると、マニュアル無しでも使えそうですが、慣れていない人を思い浮かべて書きました。


CcEditor は fx-5800Pの隠し機能を引き出す意味で、有用なツールなので、これの記事も書こうと思っています。


Re:Re: C.Basic for CG v0.37α (微妙に使い勝手を改良?版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>今回の改善は、なかなか良いですね!
>"微妙に"でなくて、"めっちゃ" と言うべきですね。
>ありがとうございます。

”めっちゃ”ありがとうございます。(笑)


>RGB5 (16 bit Colorバージョン) をそのまま取り込んだのは、とてもユーザーフレンドリーです。

はい!
操作方向の縦横が違ってますが、そっくりいただきました!(^^)


>あと、Getkeyのキーからキーコードを入力できるのも、とても便利です。おまけに [AC] のキーコードまで使えるのは、C.Basicならではですね! この機能のおかげで、先ず C.Basicでコーディングして、純正で使うという手法が現実的になる良い一例だと思います(但し純正では[AC]のキーコードは使えませんけど...)。

キーコードは毎度キーコード表示プログラムで確認ということになってしまうので、
ずっと前から装備しようと思っていたのですがやっと実装出来た感じです。

セットアップでBreak Off設定にすることで、[AC]コードも有効になるので、Cで作成したアドインと同等の動作が期待できますね。
と思ったら、プログラム内でBreak Off設定するコマンドが実装されておりませんでした。(^^;
ってことで、差し替えアップデートです。

C.Basic for CG v0.37α ("めっちゃ" 使い勝手を改良?版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG037.zip
・[AC]キーによるBreakの有効無効をプログラム内で出来るようにしました。
(例)'#Break0 // [AC]キー無効
(例)'#Break1 // [AC]キー有効(デフォルト)


C.Basic for FX v1.70beta も差し替えです。
http://pm.matrix.jp/CB/CBASIC170beta.zip

Re: C.Basic for CG v0.37α (微妙に使い勝手を改良?版)差し替えです。

sentaro様、ツル様、iron2様、CGユーザーの皆様


管理人のやすです。

> C.Basic for CG v0.37α (微妙に使い勝手を改良?版)差し替えです。
> http://pm.matrix.jp/CB/CBASICCG037.zip
> ・エディタで[SHIFT]+[6]を押すとRGB(コマンドのカラーコードを入力する機能を追加しました。
> ・エディタで[SHIFT]+[3]を押すとGetKeyコマンドのキーコードを入力する機能を追加しました。

今回の改善は、なかなか良いですね!
"微妙に"でなくて、"めっちゃ" と言うべきですね。
ありがとうございます。


RGB5 (16 bit Colorバージョン) をそのまま取り込んだのは、とてもユーザーフレンドリーです。

あと、Getkeyのキーからキーコードを入力できるのも、とても便利です。おまけに [AC] のキーコードまで使えるのは、C.Basicならではですね! この機能のおかげで、先ず C.Basicでコーディングして、純正で使うという手法が現実的になる良い一例だと思います(但し純正では[AC]のキーコードは使えませんけど...)。


C.Basic for CG v0.37α (微妙に使い勝手を改良?版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

セットアップでのエディタでのカラー設定が8色だけだったので、6万色に拡張してみました。
それと同時に、エディタ上でRGB(コマンドのカラーコードやキーコードを簡単入力出来るようにしてみました。

C.Basic for CG v0.37α (微妙に使い勝手を改良?版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG037.zip
・エディタで[SHIFT]+[6]を押すとRGB(コマンドのカラーコードを入力する機能を追加しました。
・エディタで[SHIFT]+[3]を押すとGetKeyコマンドのキーコードを入力する機能を追加しました。

あと、
g1mモードでのFEINT25Fのセーブ後に画面が元に戻っていたのを修正です。(^^;
http://pm.matrix.jp/CB/FEINT25S.zip



管理人様、
>ところで、takumako様の CcLinker Dongle が届きましたので、この三連休で時間を見つけて触ってみて、記事にしようと思っています。オリジナルの CcLinkerと非互換とのことなので、その違いについては Takumako様の記事を参考にしますが、場合によってはsentaro様にヘルプを出すかも知れませんので、その時はよろしくお願いできればと思っています。

了解しました!(^^)
私の方も無事届いてまして、ちゃんと繋がることが確認できています。
非互換に関しては、オリジナル版にDongle版のファームウエアを書き込むとDongle版と同じ動作になったので、このあたりは特に問題は無さそうです。

Re: Re:C.Basic for CG v0.37αDLしました

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。


ここのところ徹夜気味の猛烈仕事人モードが続いていて、完全について行けない状況です。
年度末が3月のところが多いので、毎年こんな感じなのですが、会計年度がもっとバラバラだと良いのになぁ、と毎年思ってしまいます(我が社は5月が締めなので、今年度の数字を決定づけるには2月~4月が激戦モードで、6月になってホット一息だったりします)。

でも、ツル様やiron2様が実際にご意見提供やバグ出しなさっているので、チョット気が楽になっています。
私一人だと、チョット強迫観念に襲われそうなので、ありがたいと感じています。


ところで、takumako様の CcLinker Dongle が届きましたので、この三連休で時間を見つけて触ってみて、記事にしようと思っています。オリジナルの CcLinkerと非互換とのことなので、その違いについては Takumako様の記事を参考にしますが、場合によってはsentaro様にヘルプを出すかも知れませんので、その時はよろしくお願いできればと思っています。

Re:C.Basic for CG v0.37αDLしました

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
早速のv0.37ダウンロードありがとうございます!

>p1~p9は任意のタイミングで使うから再自動化がいる仕様
>だったということですね。

はい、単純変数の代わりとしての使用を考えると出来るだけ簡単にという感じです。
で、足りない場合には再初期化ということなんですが、実際には初期化ではなく、行列サイズの自動拡張というところですね。
ですから、再初期化で変数としてのアクセス位置が変わってしまってたところはやはりバグです。(^^;

一番単純で簡単な言語であるところのCasioBasic精神からすると、
こういうところは何も気にせずに期待i通りに使えないといけないので、
というところですね。(^^)

C.Basic for CG v0.37αDLしました

管理人様、sentaro様、ツル様、皆様

iron2です。

sentaro様、
最新版DLしました。

>行の要素数が9以上でいればそのまま使われますが、
>9に満たない場合はMat pが新たに確保し直されます。
この事を理解していなかっただけの、やっぱり自分バグな気がします。
自分はDim Mat pの時だけ自動初期化と思っていました。
p1~p9は任意のタイミングで使うから再自動化がいる仕様
だったということですね。
であるのに自分でサイズ指定しているのにメモリが書き換わるのは
ようわからんと思っていたのは浅はかでした。
今回も、仕組みを教えていただきありがとうございました。
しかも今回の修正は私の様な思い込みコードを書く人間
(冒険したがり)のためのsentaro様の優しさだと思いました。
ありがとうございました。

これからもよろしくお願いします

C.Basic for CG v0.37α (1/32768タイマー追加+短縮行列初期化バグ修正版)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
チェックが遅れてすみません。
すでに解決されたようですので、一安心というところですが、
iron2様が悩まれたところはバグかも?ってことで、調査してみたところ、やっぱりバグでした。(^^;
ということで、全然無駄でなかったということでとってもありがたい投稿です!

今回のバグに関して、
行列の短縮形式のp1形式での行列確保仕様についてですが、
p1~p9を初めて使った時点で
{9,1}->Dim Mat p
自動的に初期化がされます。
これが基本的仕様ですが、
すでにMat pが確保されている場合はちょっとややこしくなります。
行の要素数が9以上でいればそのまま使われますが、
9に満たない場合はMat pが新たに確保し直されます。

ここで、
iron2様のソースで不具合の出た箇所は、
p1-6.0->p2
のところでp2は100になっているものの、
p1+6.0->p3
この時点でp3を確保した時にMat pが{9,1}で再初期化された時点で、
{2,4}だったMat pが{9,1}に変化したことで、
p1はMat p[1,1]なのでそのまま残りますが、p2がMat p[2]からMat p[5]の位置に移動してしまってました。
列成分を1に初期化したのが問題で、行成分だけの増加なら何も問題ないので、ここがバグっていたわけです。

ちなみに、行列の確保時にメモリ上ではどうなっているかというと、
最初の{2,4}->Dim Mat p

[1,2,3,4]
[5,6,7,8]
の行列ですが、
メモリ上では、
1,2,3,4,5,6,7,8
の順番に並んでいます。
p1のメモリ上での位置は1番目ですが、
p2の位置は並びでは5番目です。

これが
{9,1}の行列に最初期化された場合は、
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
と一列になるので、
p1はそのままですが、p2はp5になってしまって不具合となっていました。

そこで、再初期化で{9,4}として列の要素数を変更しなければ、
[1,2,3,4]
[5,6,7,8]
[9,10,11,12]
[13,14,15,16]
[17,18,19,20]
[21,22,23,24]
[25,26,27,28]
[29,30,31,32]
[33,34,35,36]
となって、
p2でも問題なくなります。

ということで、そこのところのバグ修正と
1/32768sのタイマーを追加してバージョンアップです。(^^)


C.Basic for CG v0.37α (1/32768タイマー追加+短縮行列再初期化バグ修正版)
http://pm.matrix.jp/CB/CBASICCG037.zip
・A1,B2形式の短縮形行列アクセスでの行列再確保の不具合を修正しました。

・タイマー変数のTicksと%に高分解能1/32768sタイマーを追加しました。コマンド後に%を付けると分解能が1/32768sになります。
(例)Ticks%
(例)Ticks%Wait
(例)%%
(例)%%Wait

・プログラム実行の時間計測機能で高分解能1/32768sタイマーを選択できるようになりました。(セットアップで設定します。)
 小数点以下4桁まで計測できます。

(※追記 2018/02/07 18:05)
・[F5](CHAR)-[F6] 外部フォント表示の選択で外字とカナに加えてASCII文字を加えました。
差し替えです。(^^;

No title

管理人様、sentaro様、ツル様、皆様

iron2です。

{2,4}->Dim Mat pを{1,8}->Dim Mat pで解決しました。
ここを無駄な投稿で汚し申し訳ありません。

ごめんなさい。

申し訳ないですが投稿です。

管理人様、sentaro様、ツル様、皆様

iron2です。

ちょとどうしてか不明な点が
あり申し訳ないございませんが投稿です。
以下のコードで
'ProgramMode:RUN
Screen.t:_ClrVram
Screen.g:_ClrVram
10.0->_Xm
30.0->_Ym
192.0->_Wo
108.0->_Ho
{2,4}->Dim Mat p

Sprintf("_Xm=%Char-5.2f",_Xm)->Str 1
Sprintf("_Ym=%Char-5.2f",_Ym)->Str 2
Sprintf("_Wo=%Char-5.2f",_Wo)->Str 3
Sprintf("_Ho=%Char-5.2f",_Ho)->Str 4
_Xm+_Wo/2.0->p1
p1-6.0->p2
p1+6.0->p3
_Ym+_Ho/4->p5
Sprintf("p1=%Char-5.2f",p1)->Str 5
Sprintf("p2=%Char-5.2f",p2)->Str 6
Sprintf("p3=%Char-5.2f",p3)->Str 7
Sprintf("p5=%Char-5.2f",p5)->Str 8

Text 0,215,Str 1
Text 20,215,Str 2
Text 40,215,Str 3
Text 60,215,Str 4
Text 80,215,Str 5
Text 100,215,Str 6
Text 120,215,Str 7
Text 140,215,Str 8
Stop

このコードはプリントデバッグ用です。
p2は100になって欲しいのですけど
0になってしまいます。
p1-6 とかを_Lineとかの引数に入れるとうまくいきます。
p2 をいれると0になり意図した長さになりません。

いろいろ試してみたのですけど、どうしても理解できませんでした。
どこを修正すれば良いでしょうか?

よろしくお願いします。

Re:FEINT25S 差し替え(喜)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>お待ちいたしておりました! お疲れ様です。
>そろそろ、ツルのターンかな?(笑)

はい!そろそろ、フォント作成しても大丈夫な感じになってきてます。(^^)

と思ったら、g1mモードのフォント読み出しがバグってましたので、ちょこっと差し替えです。(^^;

C.Basic for CG v0.36α
http://pm.matrix.jp/CB/CBASICCG036.zip

ちなみに(笑)
fx-9860GII用のFEINT25FはCG50のg1mモードで動くので、FX用外部フォントの作成がCG50上でも可能です。(^^)

FEINT25S 差し替え(喜)

sentaro様、管理人様、iron2様、皆様

>FEINT25Sの外字フォントとカナフォントのセーブが逆になっておりました!(^^;  これも差し替えです。

お待ちいたしておりました! お疲れ様です。
そろそろ、ツルのターンかな?(笑)

Re:Re: C.Basic for CG v0.36α へのアップデート、Sprintf( の左寄せ

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>この土日は休養に専念していました(^^;

今年は例年よりも寒い日が続きますので、休養はとっても大事です。(^^)


>記事で、C.Basic for CG Ver 0.36 へのアップデート対応しました。

早速にありがとうございます!

>フォントの切れ換えが出来るようになって、かなり使い易くなったと思います。ありがとうございます。

任意のフォントファイル名が付けられるので管理がしやすくなりますね。
フォント関連は動作チェックが結構大変なので、まだまだバグが残っている可能性があります。(^^;


>あと、SprintF( のコマンドリファレンスに追記しまして、プレフィックス "ー" の入力方法を追加しました。これは完全に説明不足でした。スミマセン。

これは、私の動作チェックが行き届いてなくて、iron2様のご報告で初めて気がついたというところなので、(^^; こちらこそ申し訳なかったです。


ってことで、ちょこっと修正&マニュアル改訂のアップデートです。

C.Basic for CG v0.36α (自由な名前でフォントSave/Load + fx版フォント追加版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG036.zip
・g1mモードの外部フォント表示が出来てなかった不具合を修正しました。

C.Basic for FX v1.70beta も差し替えです。
http://pm.matrix.jp/CB/CBASIC170beta.zip


FEINT25Sの外字フォントとカナフォントのセーブが逆になっておりました!(^^;
これも差し替えです。
http://pm.matrix.jp/CB/FEINT25S.zip

Re: C.Basic for CG v0.36α へのアップデート、Sprintf( の左寄せ

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。

この土日は休養に専念していました(^^;


記事で、C.Basic for CG Ver 0.36 へのアップデート対応しました。



フォントの切れ換えが出来るようになって、かなり使い易くなったと思います。ありがとうございます。

http://egadget.blog.fc2.com/blog-entry-495.html
http://egadget.blog.fc2.com/blog-entry-630.html


あと、SprintF( のコマンドリファレンスに追記しまして、プレフィックス "ー" の入力方法を追加しました。これは完全に説明不足でした。スミマセン。

http://egadget.blog.fc2.com/blog-entry-640.html


Re:MNDELVW顕微鏡モードの入り口に再び立つ

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>MNDLVWのメニュー再構築一応収束し、ORIJINメニューのフリップフロップ
>切り替えまで出来ました。
>やっと顕微鏡モードの入り口に戻ってきた所です。

遠回りしてるようで、じつはそこは近道だったという感じでしょうか。(^^)


>私のわがままで皆様に迷惑かけ、且つアプリの開発も大幅に遅れています。
>まことにもって申し訳ありませんでした。

いえいえ、こちらこそ、C.Basicの言語仕様の貧弱さで色々とご苦労おかけしてるところなので、
iron2様のおかげで少し進化できたかなと感謝しております。(^^)


>また、これから先も困難が予想されますが、ご指導よろしくお願いします。

はい!可能な限りサポートさせていただきます!
また、バグや変な挙動が見つかりましたらよろしくお願いいたします。


>今のバージョンは顕微鏡モードが実現したらVer3としたいです。
>したがって今のメニュー回りを改装したコードは自己満足でしかなく
>アップに値しないので、アップ出来るよう頑張っていきたいです。

Ver3、了解です。
一周して戻ってきたらあっと驚く進化になってるという感じがしますね。(^^)

MNDELVW顕微鏡モードの入り口に再び立つ

管理人様、sentaro様、ツル様、皆様

iron2です。(今日はちゃんとパソコンからです。)

MNDLVWのメニュー再構築一応収束し、ORIJINメニューのフリップフロップ
切り替えまで出来ました。
やっと顕微鏡モードの入り口に戻ってきた所です。

私のわがままで皆様に迷惑かけ、且つアプリの開発も大幅に遅れています。
まことにもって申し訳ありませんでした。

また、これから先も困難が予想されますが、ご指導よろしくお願いします。

今のバージョンは顕微鏡モードが実現したらVer3としたいです。
したがって今のメニュー回りを改装したコードは自己満足でしかなく
アップに値しないので、アップ出来るよう頑張っていきたいです。

これからもよろしくお願いします。

re:左寄せが出来ない

管理人様、sentaro様、ツル様、皆様
iron2です。

sentaro様、
了解です。ありがとうございます。

これからもよろしくお願いします。

Re: sprintf'("%-7.2f",#r)→str 1 左寄せ出きない

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>-プレフィクスが上手くいかないです。
>5.2fとかに文字列変換されます。

Sprintfの書式指定子でのマイナスは[F5](CHAR)からマイナスキャラクタを選択して下さいませ。
CasioBasicのマイナスはASCIIコードで0x2Dではなく0x99になっているためです。
これはSprintfコマンドのfaqですね。(^^; >管理人様

sprintf'("%-7.2f",#r)→str 1 左寄せ出きない

管理人様、sentaro様、ツル様、皆様
iron2です
スマホからで上手く打てません。
fixをやめて、sprintfで左寄せと桁制御する
つもりでした。
%07.3fは管理人様のpage通り動作します。
-プレフィクスが上手くいかないです。
5.2fとかに文字列変換されます。
たすけてください。

C.Basic for CG v0.36α (自由な名前でフォントSave/Load + fx版フォント追加 + メモリリーク修正版)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

従来よりg1mモードではミニフォントがfx-9860GIIと同じフォントでしたが、
今回より標準フォントもfx-9860GIIと同じ表示が出来るようになりました。


C.Basic for CG v0.36α (自由な名前でフォントSave/Load + fx版フォント追加 + メモリリーク修正版)
http://pm.matrix.jp/CB/CBASICCG036.zip
・外部フォントの読み込みでバッファの開放が出来てなかった不具合を修正しました。

・g1mモードでは標準フォントも従来のfxシリーズの標準フォント(6x8)で表示するように変更しました。
(セットアップでEdit extFontをオンにするとg1mモードではエディタの表示も従来フォントに変わります。)

・フォントファイルのセーブ/ロードにおいて任意のファイル名が使えるようになりました。
(書式)BmpLoad @GL"ファイル名"
(書式)BmpLoad @GM"ファイル名"
(書式)BmpLoad @KL"ファイル名"
(書式)BmpLoad @KM"ファイル名"
(書式)BmpLoad @AL"ファイル名"
(書式)BmpLoad @AM"ファイル名"
(例)BmpLoad @GL"MYFONTL"
 MYFONTL.bmpが外字標準フォントとして読み込まれます。
(例)BmpLoad @GM"MYFONTM"
 MYFONTM.bmpが外字ミニフォントとして読み込まれます。

(書式)BmpSave @GL"ファイル名"
(書式)BmpSave @GM"ファイル名"
(書式)BmpSave @KL"ファイル名"
(書式)BmpSave @KM"ファイル名"
(書式)BmpSave @AL"ファイル名"
(書式)BmpSave @AM"ファイル名"
(例)BmpSave @GL"MYFONTL"
 現在の外字標準フォントを"MYFONTL.bmp"としてセーブします。
(例)BmpSave @GM"MYFONTM"
 現在の外字ミニフォントを"MYFONTM.bmp"としてセーブします。


並行して、fx版も同様の機能が使えるようにアップデートしてます。
C.Basic for FX v1.70beta (外字フォント対応+いろいろVerUp版)
http://pm.matrix.jp/CB/CBASIC170beta.zip
FontフォルダのFEINT25のFX版も修正してあります。




iron2様、バグ直ったようで良かったです。(^^)

>(計算コード、代入)コストのほうが大きく、変数アクセスタイム
>の差がびびたるものだったのでしょうかね~

変数のアクセスに比較すると加減乗除はそれよりは時間かかりますね。
ちなみに、変数のアクセス時間を速い順に並べると、
1文字変数>A1変数≧A[1]>Mat A[1]≒List 2[1]>Mat A[1,1]>>>Alias or 複数名変数
という感じなので、
一番内側のループで酷使しない限りはあまり差は出ないかもしれません。

バグ直りました

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

成長剤(整腸剤)を処方されました。(笑)
これ以上成長すると下品ですがヤバイ。

バグ直りました。あとcg20 250Mhzのサーチイメージ
でMAT bの要素b1~b6を直接コードに埋め込み
影響があると思われるFor文のStep k(b2)
外ループの式((h*(y-r(b5))*v)+(0.935-0.0)->d
内ループの式((w*(x-o(b4))*u)+(2.1-0.0)->c
プロットの切り替え
t(b3)=1=>_Rectangle
t(b3)=1=>_Pixel

ですが、変数ままとMAT 要素直接のタイム差は
あまりなかったようです。(改造中でストップウォチ)
(計算コード、代入)コストのほうが大きく、変数アクセスタイム
の差がびびたるものだったのでしょうかね~
読みやすいほうでOKな気がしてきた。
フル画像では差が大きくなるかもですね。

これからもよろしくお願いします。

Re:Re:Re: retuen の使い方とlistの使い方の相談 + 5秒ルール

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>LIST,MATは使い倒したいのですが、よく理解できていない所が
>多くて、うにゃーとなり手を出さなかったのですが
>安心して使える気がしてきました。気が(笑)

Matを2次元配列、Listは1次元のMatだと思えば、難しくはないのですが、
Mat AとList Aが別の解釈になっているところがちょっとややこしいところですね。
あとは、C.Basicでの実装において、Mat AやList 2等の純正互換部分は互いに独立していますが、
小文字以降は共通してて若干特殊な部分があるのでそこのところだけですね。(^^;

Mat、Listを含む四則演算、関数演算とか、(バグが潜んでいる可能性も多々ありますが、(^^;
上手く使えば便利なところもあると思いますので、まずは色々と試してみて下さいませ。(^^)



ツル様、
>冒頭に「因みに」が付いていませんが、ツルには見えます。はっきり見えます(笑) とても分かりやすいです。

ありがとうございます。(笑)


>電池交換の5秒以内で・・・ の件、食べ物を落としても、3秒以内に拾えば大丈夫!という根拠不明の言い伝えみたいですが、コンデンサーが補っているのですね。数日前にも読み流しましたが、結構大事な情報だったのですね(笑)

はい、電源ラインに結構大きなコンデンサが付いているのですが、
これがリセットになる電圧以下まで放電する前に交換すればOkという感じです。(^^)

因みに(笑)
CG50を分解してみたところ、電源ラインに入っているコンデンサが一個しか付いてません。
CG20ではこの部分にちゃんと2個付いているので、電池交換での時間的余裕はかなりの差が付いています。(^^;
バックアップ用の電池を追加する前にまずはここに大容量コンデンサを追加した方がいいのかもしれません。

Re:Re: retuen の使い方とlistの使い方の相談 + 5秒ルール

管理人様、sentaro様、iron2様、皆様

sentaro様
冒頭に「因みに」が付いていませんが、ツルには見えます。はっきり見えます(笑) とても分かりやすいです。

電池交換の5秒以内で・・・ の件、食べ物を落としても、3秒以内に拾えば大丈夫!という根拠不明の言い伝えみたいですが、コンデンサーが補っているのですね。数日前にも読み流しましたが、結構大事な情報だったのですね(笑)
ありがとうございました。

re:Re: retuen の使い方とlistの使い方の相談

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

sentaro様、
うぉっ!いっぱい間違っていましたね。
たまたま動作しただけみたいですね。

もやもやが晴れました。私のような途中で投げ出す半端者でも
分かりました。ありがとうございました。

LIST,MATは使い倒したいのですが、よく理解できていない所が
多くて、うにゃーとなり手を出さなかったのですが
安心して使える気がしてきました。気が(笑)

では

これからもよろしくお願いします。

Re: retuen の使い方とlistの使い方の相談

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>まず上の感じはどこが間違っているのでしょうか?

すでに自己解決されたようですので、MatとListの返り値のまとめとして一応書いておきます。(^^;

現在のC.Basicの仕様では、Local変数としてMatとListが使えないので、
local {3}->List k,{6}->List b
この部分は仕様外の記述になっています。

それから、Listの指定に関してですが、
List k
という指定は、
変数kの値をListのインデックスとするために、
kの値が2であれば、List 2という意味になってしまいます。
これは純正CasioBasicの仕様なので、どうしようもありません。(^^;

k2がList k[2]の意味とするならば、
List kをMat kと認識させる必要がありますので、
37->Const k
としておいてから
List kとして使うことで、List kはMat kと同じになります。


次に、
_SetArgsで切り替えした数値をリストで返す方法ですが、
数値1->b1:数値2->b2:数値3->b3
数値4->b4:数値5->b5:数値6->b6
という設定をする場合であれば、
return {数値1,数値2,数値3,数値4,数値5,数値6}

List Ans[1]=数値1
List Ans[2]=数値2
List Ans[3]=数値3
List Ans[4]=数値4
List Ans[5]=数値5
List Ans[6]=数値6
という風にListAnsに返ってきます。

Listの返り値を代入するにはListの必要があるので、
Gosub _SetArgs , k2 ->List 28
というようにListに代入します。
List 28はMat bと共通エリアなので、
List 28[1]はb1でアクセスが可能です。


Matで返す場合には、
return [[数値1][数値2][数値3][数値4][数値5][数値6]]

Mat Ans[1]=数値1
Mat Ans[2]=数値2
Mat Ans[3]=数値3
Mat Ans[4]=数値4
Mat Ans[5]=数値5
Mat Ans[6]=数値6
という風にMatAnsに返ってきますので、
Gosub _SetArgs , k2 ->Mat b
というようにMatに代入します。

返り値としないで、直接にMat bで返す場合には、
_SetArgs
の中で、
[[数値1][数値2][数値3][数値4][数値5][数値6]]->Mat b
というように直に代入すればOkです。


次の
Gosub _MandlVW , b
ですが、
bをList bで指定することが出来ませんし、
Mat b (=List 28)も引数には出来ないので、
この部分は引数無しの
Gosub _MandlVW
にして、
サブルーチン_MandlVWの中でMat b、もしくはList 28をそのまま使います。
List 28という記述の代わりに、
bを定数化して28を代入しておけば、
28->Const b
List b

List 28として使えます。


ご参考になりましたら幸いです。(^^)

re:returnの使い方とlistの使い方の相談

管理人様、sentaro様、ツル様、CGユーザーの皆様

まだ途中の駅のiron2です。

掲題の件、自己解決です。
_MandlVWのlocal引数を変数並べだったのが原因でした。
どうもお騒がせしました。
Listで受けてパファーマンスに問題なければコア書き替えて
もいいようですが、やめときます。

これからもよろしくお願いします。

retuen の使い方とlistの使い方の相談

管理人様、sentaro、ツル様、CGユーザーの皆様

体調不良のiron2です。

以前、Gosubのreturn でListも返るといった事が書いてあったような気がしたので
頭がこんがらがり投稿です。

local {3}->List k,{6}->List b
・・・・
Gosub _SetArgs , k2 ->b
Gosub _MandlVW , b
・・・・
return

まず上の感じはどこが間違っているのでしょうか?
というのは描画するのですが、描画位置がずれているので
ちゃんと引数が渡っていない気がします。

_SetArgsの中でbの数値を切り替えています。
local {6}->b ←引数
IF文で
数値->b1:数値->b2:数値->b3
数値->b4:数値->b5:数値->b6
を切り替えています
returb b

としています。

それと
Gosub _SetArgs , k2 ->b
Gosub _MandlVW , b
このbはリストのつもりですが、未使用グローバル変数b
との区別ができないのですが、どう書けばよいでしょうか

また、-.>List1とすればよいのかも知れませんが
毎回初期化Listをつかうのは,
ん?と思ったり、
単に使い方を知らないだけかもです。

こんな説明で悩みが伝わったか不明ですが、いかがでしょうか?

これから病院にいってきます。

これからもよろしくお願いします。

Re:DATE TIME 保持用バックアップ電池は無理?

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>電池交換しても、DATE TIME がリセットされないようにするには、どういった方法が考えられますか?

5秒以内に全部、もしくは一本ずつ素早く交換するか…USBを接続してUSB給電しながらの交換で時計はだいじょうぶです。(^^)


>保持を続けるには、RTCにバックアップ電源を供給し続けることだと思いますが、CG50も、USBケーブル差し込み時はDC電源供給状態になるのですか?

はい、そのとおりです。
電池無しのUSB給電だけでは動作しないですが、電池ありでUSB挿したままの交換なら確実にいけますし、そのままUSB給電で使い続けることが出来ます。


>電卓本体裏の、電池部カバーを開けると、内部に無駄に広いスペースがあるように見えてならないのですが、バックアップ電池を設置して内部に接続するプチ改造なんか、無駄な(リスキーな)行為でしょうか?

現在のFX/CGシリーズではストレージメモリ=フラッシュROMに自動バックアップが出来るようになってるのでバックアップ電池は無いのですが、初期の9860Gでは昔のポケコン/電卓のようにバックアップのCR2032があったので、CG50にバックアップ電池を内蔵することは普通に可能だと思います。(^^)


>電池交換が頻繁なので、市販のポータブルゲーム機のように、3年は保っていて欲しいと思いました。

今のところ、リセットになって困るのは時計だけなのですが、その時計を純正サポートしてないので、ここから先はリセットにならない使い方orバックアップ改造でということになりますね。(^^;

DATE TIME 保持用バックアップ電池は無理?

管理人様、sentaro様、iron2様、皆様

sentaro様
電池交換しても、DATE TIME がリセットされないようにするには、どういった方法が考えられますか?
保持を続けるには、RTCにバックアップ電源を供給し続けることだと思いますが、CG50も、USBケーブル差し込み時はDC電源供給状態になるのですか?
電卓本体裏の、電池部カバーを開けると、内部に無駄に広いスペースがあるように見えてならないのですが、バックアップ電池を設置して内部に接続するプチ改造なんか、無駄な(リスキーな)行為でしょうか?
電池交換が頻繁なので、市販のポータブルゲーム機のように、3年は保っていて欲しいと思いました。

Re:9860のドットサイズで楽しむには?

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>9860のドットは見やすくて楽ですね。あの大きめドットで楽しめるのはどんな表示かな?しかもモノクロで・・・ ライフゲームのように、高速グラフィックスが可能なMLコマンドがあるのに、うーん・・・悩ましいです。

fx-9860GIIのドット画面を見ていると、ポケコンの画面を思い出すのですが、
縦が狭かったポケコンに比較すると、正方画素で縦横1:2というfxの画面は、何をするにしても使い易い画面構成だと感じます。
さほど高くない解像度も画像データ量が扱いやすいので都合が良いです。

ただ、fx-9860GIIでは液晶の反応が遅いので、高速描画に付いてこれないというジレンマがありますが、
CG50であれば、反応速度は問題ないので、fx-9860GIIでは出来なかった表現も可能になりますね。
管理人様のfx版ライフゲームもCG版で動かすとくっきりはっきりよく見えます。

ちなみに、
C.Basic for CGのg1mモードでは9860GIIと同じ128x64ドットのエミュレーションですが、一応ドット単位で色を付けることも出来ます。(^^)

9860のドットサイズで楽しむには?

管理人様、sentaro様、iron2様、皆様

sentaro様
>たまにはドットがはっきり見える解像度で動かすのも一興でしょうか。(^^)
はい、細かな物の目視には自信のあるツルですが、さすがにCG50の表示確認では時にはルーペを使っています。
9860のドットは見やすくて楽ですね。あの大きめドットで楽しめるのはどんな表示かな?しかもモノクロで・・・ ライフゲームのように、高速グラフィックスが可能なMLコマンドがあるのに、うーん・・・悩ましいです。

Re:ツル ROMってます。 + re:Re: Switch文で質問です。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>sentaro様、sentaro様も人の子だと認識できて安心しております。

はい、人の子です。(笑)
なんていうかポカミスは結構多いので、C.Basicもそれを反映した?”ぷち”バグ満載の出来栄えになっております。(^^;
バルサンツルサン効果でどれだけのバグ潰しが出来たことかと思うと本当にいつもありがとうございます!


>あ、この方法もありだな?と思った次第です。表示時は+字で中心位置が分かり、非表示時は背景の状況が分かる。点滅もいいな・・・と思いました。
>何か、機会があったらやってみたいです。

あ、それ、良さそうですね!
点滅というのが一つのハードルになりそうですが、グラフィックカーソル表示のひとつの定番になりそうな気がします。(^^)


>因みに、久しぶりに9860GⅡをいじっています。
>キーを押した感覚が抜群に気持ちいいです。

たしかに、キーを押した感触は9860GIIは出来が良いですね。

>もはや、表示ではCG50とは圧倒的な差が出ているものの、なにか、初心に帰らせてくれますね。感慨深いです。

CC.Basic for CGでのg1mモードではフォントも9860GIIそっくりにという計画もぼちぼちと進めています。
たまにはドットがはっきり見える解像度で動かすのも一興でしょうか。(^^)



iron2様、
>ぱっぱっ見て、行けるだろと細かいチェックしない癖は全然直ってないですね。((;^_^A)

ぷら子が最新版のバージョンではPython風の記述で動作するようになったりしてるのですが、
C.Basicでも、どのような記述をしても期待通りの動作をといきたいところですが、そこはまだまだですね。
これからもよろしくお願いします。(^^)

Re:Re: Switch文で質問です。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>Case ラベルの記法ですが、Cでの Caseラベルは ":" で終わりますが、C.Basic では、":"は不要です。
>C.Basic では、":"は区切り文字は改行と同じ動作をするので、結果的にC風の記述で問題が出ていないので、C風な記述でもOKになっている...これが実際のところです。

仕様補足どうもありがとうございます!

さらに、コマンド間の区切りとして":"が無くても普通に動作するので、かなりチェックが緩いC.Basicだったりしますね。(^^;
これを上手く利用すると、=>の後に複数コマンドが使えてしまうというバグ的な副作用も出てきますが、
これはFEINTでツル様が上手く使ってくださいましたので、正式仕様となりそうです。(^^)

re:Re: Switch文で質問です。

管理人様、sentaro様、ツル様、CGユーザーの皆様

帰宅途中のカフェのiron2です。

管理人様、
>Case ラベルの記法ですが、Cでの Caseラベルは ":" で終わりますが、C.Basic
>では、":"は不要です。

ありがとうございました!!!

ぱっぱっ見て、行けるだろと細かいチェックしない癖は全然直ってないですね。((;^_^A)

これからもビシバシ指導よろしくお願いします!

今日はラストのアイスコーヒー堪能して帰ります。(^▽^)/

これからもよろしくお願いします。

ツル ROMってます。

管理人様、sentaro様、iron2様、皆様

皆様 お疲れ様です。
ここ最近はツルのターンではないので(笑)ROMってます。
sentaro様、sentaro様も人の子だと認識できて安心しております。
つい、ツルが小学生の頃、家の風呂が壊れて父親と銭湯に行った時のことを
思い出しました。風呂上がりに、父が番台に「ストライク1本!」と注文しました。父の手にはスプライトが握られていました・・・

さて、ツルは数日前から浸透圧関係にはまっていて、調べるうちに溶血性連鎖球菌や、糖分塩分漬けの食品が腐敗しにくい事実のメカニズムを知ったり、新しい知識との出会いの連続で楽しんでいます。
この間、古いゴジラ映画を観ていましたら、軍が使うモニターで目標を探すシーンで、+字状のポインタが点滅しているのを見ました。
あ、この方法もありだな?と思った次第です。表示時は+字で中心位置が分かり、非表示時は背景の状況が分かる。点滅もいいな・・・と思いました。
何か、機会があったらやってみたいです。

因みに、久しぶりに9860GⅡをいじっています。
キーを押した感覚が抜群に気持ちいいです。
もはや、表示ではCG50とは圧倒的な差が出ているものの、なにか、初心に帰らせてくれますね。感慨深いです。

Re: Switch文で質問です。

iron2様、sentaro様、ツル様、CGユーザーの皆様

管理人のやすです。


iron2様、細かいところですが、念のため...


> Switch c
> Case 1:
> Fine Image選択画面処理
> Break
> Case 2:
> Serch Image選択画面処理
> Break
> Case 3:
> HiFine Image選択画面処理
> Break
> Case 4:
>     選択抜け画面処理
> Break
> Default
> Break
> SwithEnd


Case ラベルの記法ですが、Cでの Caseラベルは ":" で終わりますが、C.Basic では、":"は不要です。
C.Basic では、":"は区切り文字は改行と同じ動作をするので、結果的にC風の記述で問題が出ていないので、C風な記述でもOKになっている...これが実際のところです。

ご参考まで...


Re:re:Re:Switch文

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>最新版DLし、Switch文変更したところ、うまく動作しました!

無事動作して良かったです。(^^)


>私が無理言うたせいで、sentaro様もたいへんお疲れの模様。。。
>申し訳ございませんでした。m(__)m

あ、いえいえ、なんていうか、単純な思い込みミスと言うかポカというか、そういう感じでした。(^^;
iron2様がすぐに気がついてくださったおかげで何事も無かったかのように(笑)修正できました。
こちらこそありがとうございます!


>おかげで、たいへん妙竹林なコードへと変貌を遂げつつあります。
>がんばります。

純正CasioBasicの一文字変数だけの世界からすると劇的な変わり様かもしれませんね。
プログラムの進捗状況を楽しみにしております。(^^)

re:Re:Switch文

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

最新版DLし、Switch文変更したところ、うまく動作しました!

ありがとうございました!

私が無理言うたせいで、sentaro様もたいへんお疲れの模様。。。
申し訳ございませんでした。m(__)m

おかげで、たいへん妙竹林なコードへと変貌を遂げつつあります。
がんばります。

これからもよろしくお願いします。

あ゛…(汗)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>split( が途中からSprit( →StrSprit(→StrStrip(
>機能名としては最初のものと同じ意味です。

思いっきり間違えました!(^^;

ってことで、StrStrip→StrSplitにこっそりと差し替え修正です…(汗)

C.Basic for CG v0.35α (複数名変数+Const拡張版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG035.zip
・変数の定数仕様追加で、Switch~Case~SwitchEndでのCaseの指定は変数でも可になりました。

・変数を定数使用限定にするConstコマンドを追加しました。 [OPTN]-[F3](extd)-[F3](Const)
 代入時にConstを前置すると変数が定数として扱われ以後代入できなくなります。
(例)123->Const A
(例)123->Const _ABC
(例)456->A
 同じプログラムで変数の値を変更しようとしたらエラーになります。

・文字列分割するStrSplit(コマンドを追加しました。 [SHIFT]+[VARS](PRGM)-[F6][F6]-[F3](ExStr)-[F6]F6]-[F1](StrSplit)
(書式)StrSplit("文字列","区切り文字"[,開始位置])
 結果はMatAnsに文字列として返ります。
(例)StrSplit("123,4567,89",",")
 MatAnsの結果は、["123","4567","89"]となり、個々の要素を読み出すに次のようにアクセスできます。
 $Ans[1]="123"
 $Ans[1]="4567"
 $Ans[1]="89"

Re:Switch文で質問です。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>新変数を定数としSwitch文のcaseの番号に使用したところ反応がなかった
>のですが、整数%をつかって設定すべきでしょうか。現状は以下のような
>codeで逃げてます。

C.BasicでのSwitch~Caseの仕様を調べてみたところ、
Caseに使えるのが整数の数字のみという仕様でした。(^^;

変数の定数使用が出来る今では仕様バグなので、
サクッと修正してみました。

C.Basic for CG v0.35α (複数名変数+Const拡張版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG035.zip
・変数の定数仕様追加で、Switch~Case~SwitchEndでのCaseの指定は変数でも可になりました。

StrStrip(の名前で

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

split( が途中からSprit( →StrSprit(→StrStrip(
機能名としては最初のものと同じ意味です。

私が機能の提案→管理人様命名案→実装名と来ているような気がします。

私は命名は何でも受け入れ派ですが、管理人様、sentaro様、皆さま
これでよかったでしょうか?

何となくリファレンスを整備されている管理人様の命名規則と一致して
いるのかな?思ったので確認連絡でした。
問題なければスルーしてください。

これからもよろしくお願いします。

Switch文で質問です。

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

Switch文での質問です。
新変数を定数としSwitch文のcaseの番号に使用したところ反応がなかった
のですが、整数%をつかって設定すべきでしょうか。現状は以下のような
codeで逃げてます。

メイン側TOP
26->_Fine
35->_Back
43->_Serch
65->HiFine
・・・
(k2に定数_Fineらが入る)
Gosub Sub ,k2 ,0 ->k3
・・・
stop

Lbl D
Local a,b,c ←cは引数でなく中で使うローカル変数
a=_Fine=>1->c
a=_Serch=>2->c
a=_HiFine=>3->c
a=_Back=>4->c
 ・・・
Switch c
Case 1:
Fine Image選択画面処理
Break
Case 2:
Serch Image選択画面処理
Break
Case 3:
HiFine Image選択画面処理
Break
Case 4:
    選択抜け画面処理
Break
Default
Break
SwithEnd
Retuen a

現状はこれで問題なく処理できますが、んっ?と思ったので
使い方が間違っていましたら、指導よろしくお願いします。

これからもよろしくお願いしいます

C.Basic for CG v0.35α (複数名変数+Const拡張版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

進めていたConstコマンドの実装がなんとか出来ましたので、差し替えアップデートです。
あと、StrStripコマンドを追加しました。(^^)


C.Basic for CG v0.35α (複数名変数+Const拡張版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG035.zip
・変数を定数使用限定にするConstコマンドを追加しました。 [OPTN]-[F3](extd)-[F3](Const)
 代入時にConstを前置すると変数が定数として扱われ以後代入できなくなります。
(例)123->Const A
(例)123->Const _ABC
(例)456->A
 同じプログラムで変数の値を変更しようとしたらエラーになります。

・文字列分割するStrStrip(コマンドを追加しました。 [SHIFT]+[VARS](PRGM)-[F6][F6]-[F3](ExStr)-[F6]F6]-[F1](StrStrip)
(書式)StrStrip("文字列","区切り文字"[,開始位置])
 結果はMatAnsに文字列として返ります。
(例)StrStrip("123,4567,89",",")
 MatAnsの結果は、["123","4567","89"]となり、個々の要素を読み出すに次のようにアクセスできます。
 $Ans[1]="123"
 $Ans[1]="4567"
 $Ans[1]="89"

Re:C.Basic for CG v0.35α (複数名変数拡張版)DLしました!

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、早速のDLありがとうございます!

>もう少し先だろなぁと思いつつ、ひょっとして今日?とかドキドキしてました。

まだ不具合が出るかもしれないのですが、(^^;
一応新規変数が使える形になったので、アップデートです。


>今の仕様はグローバルAに対する定数とするか
>拡張変数として使用するかはユーザー判断な所が
>ありますが、管理人様がご提案されていた
>代入禁止が表現できれば、パーフェクトですね!

今、Constコマンド追加して、変数の定数使用での代入禁止の実装を進めています。(^^)

123->Const A
で、定数指定で初期化すれば、
456->A
だとエラーになる感じですね。

C.Basic for CG v0.35α (複数名変数拡張版)DLしました!

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

sentaro様、最新版DLしました!!!
もう少し先だろなぁと思いつつ、ひょっとして今日?とかドキドキしてました。

ありがとうございます!

今の仕様はグローバルAに対する定数とするか
拡張変数として使用するかはユーザー判断な所が
ありますが、管理人様がご提案されていた
代入禁止が表現できれば、パーフェクトですね!

私は今のバージョンでかなり、すごく夜空の星が輝いて見えます!
クルクルクルクルクルクル♪

お疲れ様でした!
ではポチポチと頑張ります。

これからもよろしくお願いします。

C.Basic for CG v0.35α (複数名変数拡張版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

一応、変数枠を26個増量ということで、アンダーバーより始まる複数英数字名の変数を使うことが出来るようになりました。(^^)
C.Basic仕様に準じた拡張になっているので、使い勝手は今までの1文字変数と全く同じです。


C.Basic for CG v0.35α (複数名変数拡張版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG035.zip
・アンダーバーより始まる複数英数字名(8文字まで)の変数が使えるようになりました。
 従来の1文字変数とは独立したエリアに確保される変数ですがプログラム開始時には常に初期化されます。
 使える変数は26個までとなっています。実数変数と整数変数は別の値を保持できますが同じ名前で同時に確保されます。
 [SHIFT]+[F1]の変数リストで[F1]を押す度に大文字変数、小文字変数、アンダーバー変数が表示されます。
(例)'#CBDBL
(例)123.456->_ABC
(例)456->_ABC%
(例)_ABC+_ABC%->_RESULT
 _RESULTの値は579.456となります。

・RowSize(、ColSize(が逆になっていたのを修正しました。
 (g1mおよびg3mファイルでは修正する必要はありません。テキストファイルで保存している場合は修正する必要があります。)

Re: re:#define 風エイリアス + 一連の#define騒動の釈明会見

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様のご要望にお応えするために、
従来の一文字変数領域;グローバルA以外の、
新たな変数領域:グローバルB,C,D…を追加して
新規の変数を任意の変数名で可能なように追加の作業をしています。

この仕様追加により、純正以外の変数として
とりあえずの増加分は+26個として、
それを任意の(といっても最初の文字はアンダーバー必須です。)変数名で使うことが出来るようになります。

あとは必要に応じて段階的に増やしていくという形になると思います。
行列やリストの増量と同じような感じでしょうか。

変数の仕様としては今までとは何も変わったところはなく、1文字変数同様に使えるようになります。
ただ、変数の実体が別領域に確保されるというところだけが従来のAliasと違うところですね。


管理人様、
>すると、予約した"固定変数" あるいは "定義変数" とでもいいましょうか?それに代入した時に、「代入禁止 (can't assignable variable)」のようなエラーメッセージが出ることが重要だと思われます?

個々の変数に変更禁止設定が出来れば良さそうですね。


>この機能を実装する場合は、SET UP で有効にする/しない を選択可能にして、デバッグ時には有効にし、完成したら無効にして速度への影響を抑えるといった実装が良いと思いますが、如何でしょうか?>sentaro様

インタプリタでは変数の判定が増えてしまうので少しずつ遅くなりそうですが、機能的には面白いですね。(^^)



iron2様、
>その副作用、福音として別メモリ空間のメモリを互換の呪縛から離れて
>使えるし、ユーザーコードの明示的なAlias無しで複数文字変数が使える。

ほぼ100%、iron2様のご想像どおりの実装で進めております。(^^)

一連の#define騒動の釈明会見

管理人様、sentaro様、ツル様、CGユーザーの皆様

ハイブリッドな妄想で皆様を混乱に陥れるiron2です。

皆様へ、
一連の私の#define発言は
>手早く言う所のConst Value です。
>したがって、a-z,A-Zとは違うメモリ領域const AreaMemoryから
>確保したいって感じです。が元。

と投稿したのは既存の1文字変数がグローバルAに属するとする
そうすると、1文字変数のエリアス _XXXXは不本意な1文字変数
変更による_XXXXの値変更を避ける術が無いので別メモリ空間
グローバルBよりユーザーから見ればいきなり複数文字変数を
宣言したように見えるものが必要で、これがあればグローバルA
に属する1文字変数をどう煽ってもグローバルBでいきなり複数文字
変数宣言したものは変更できないし、いきなりのほうが間違いが少ない。
したがってグロバールAの1文字変数からは定数と同義に見える。

ので、私の様なプログラムの増改築ですぐIF文の右辺の数値が
なんだっけーとなる人間にとってはsentaro様が提示された

1234->_ABCD
_ABCD+1.5*2->C

の様な使い方で数値を直接複数文字変数に代入すると別メモリ空間の変数
を使っている事になる。すなわち、私の#defineと同義に近い。
このままは、別メモリ空間にあるだけで、何度も代入はできるのですが、
それは直接グローバルBの複数文字変数に対してなので、ほぼ私の目的は
達成できています。

その副作用、福音として別メモリ空間のメモリを互換の呪縛から離れて
使えるし、ユーザーコードの明示的なAlias無しで複数文字変数が使える。

というありがたいお話と私は解釈した。

なので、使いかたをよく理解しないと、解読が難しくなるかも
と最初に投稿した訳です。

sentaro様は一瞬で私の意図を見抜くので怖いですが尊敬しています。
最終的な実装はsentaro様にお任せします。

これからもよろしくお願いします。

Re: re:#define 風エイリアス

iron2様、sentaro様、ツル様、CGユーザーの皆様


管理人のやすです。

> #define 風エイリアスが欲しいのではなくて、定数:変化しない、変更できない変数が欲しいのです。したがって宣言時にしか数値設定できないようにしたい

やっと、ご主旨が理解できました。ありがとうございます。

すると、予約した"固定変数" あるいは "定義変数" とでもいいましょうか?それに代入した時に、「代入禁止 (can't assignable variable)」のようなエラーメッセージが出ることが重要だと思われます?

この機能を実装する場合は、SET UP で有効にする/しない を選択可能にして、デバッグ時には有効にし、完成したら無効にして速度への影響を抑えるといった実装が良いと思いますが、如何でしょうか?>sentaro様

デバッグ時と完成時での切替ができれば、利便性と速度の両立が出来て面白いと思いますし、他のエラーメッセージにも援用可能な技になりそうですね!

コンパイラ実装時にも役立つ筈なので、とても面白いご提案だと、改めて思います。


re:#define 風エイリアス

管理人様、sentaro様、ツル様、CGユーザーの皆様

寝るまえのiron2です。

管理人様、
#define 風エイリアスが欲しいのではなくて、定数:変化しない、変更できない変数が欲しいのです。したがって宣言時にしか数値設定できないようにしたい
という事なんです。
(定数宣言についてマニュアルには特に記載はなかったと思います)

手段として#define か Const修飾子宣言かどちらかではないかと思ったのです。

Alias Const a = _EPS
Const 0.00001->a
2行づつ増えるのが嫌。(駄々っ子)
・・・
IF _dx < _EPS =>Break

とできるなら #define は必須ではありませんが
#define _EPS 0.00001 は1行です。

はっきりいって私の手抜き案ですので、sentaro様の御心にお任せです。
いつも皆様に????を与えてしまい申し訳ございません。

それではそろそろ寝ます。
これからもよろしくお願いします。




Re:Splitと#Defineがあれば便利だと感じた訳 + 時計が安定! + 外字Save使える? +

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
Splitと#Defineがあればの理由、とってもよくわかりました!
私の言語経験はiron2様や管理人様の半分以下どころか1/5くらいしかないので(汗)
使ったことのない言語はあまりよくわからないのですが、
C.Basicでの拡張仕様はどうにでもなりますので、
ご要望を出来る限り実装できるように頑張ってみます。(^^)



ツル様、
>何種類か処方頂いた薬の中の、どれかの成分が効いた感じです。
>とは言え、まだ引き続き警戒を続けます。

以前より内蔵RTCへの書き込みアクセスが減ったのでそこのあたりが効果あったかもしれませんね。
引き続き警戒(笑)よろしくお願いします。


>・・・? あ、ごめんなさい。FEINTで作成外字のSaveが出来るようになったのですか? まだずっとsentaro様が試運転最終確認中と思っていましたが・・・

はい!一応セーブ対応しています。(^^)
作成外字のセーブ結果はFEINTのあるフォルダに@FONTから始まるBMPファイルが出来ていれば外字セーブ完了です。
そしてそのファイルがデフォルトの外字フォントになりますので、次々とセーブを繰り返してしていけば外字編集が進んでいくという算段です。
2度めからは上書きになるので標準とminiと個別に上書きチェックがあります。




管理人様、
>私がアホやってました。久しぶりに 転送ソフト FA-124 を使ったのですが、右ペインから左ペイン(電卓) へのコピーを忘れていたという、誠にお恥ずかしい話でした。

私も久々に使うと使い方をすっかり忘れてということがよくあります。(^^;


>C.Basic for FX でのフォルダリネーム

現状、リネーム機能のシステムコールが存在するCG版だけの対応となっております。(^^;


>取り敢えず、StrSplit( あたり、チョット可能性をご検討ください\(^_^)/

はい!
まずはそこから実装していきたいと思います。(^^)


>時計の狂い

ツル様のCG50で安定したのでかなり安定可能性は高そうですけど、油断は出来ませんね。(^^;


>ちなみに、fx-9860GII は、何ヶ月も経過しても3秒進みです!

CG20もですけど、メモリ仕様の違いからハード的に安定してる感じはありますね。


>お話を伺った限りでは、Alias の代わりに #define 風の実装は、何か意味のあることか、Alias で何故ダメなのか? 私にはチョット分からなかったです。

Aliasで別名指定していることをうっかり忘れて、その元の1文字変数名を別の用途で使ってしまってというバグが入り込む可能性があるということですよね。
#define 風の実装というわけではなく、
Aliasを使わないで、いきなり
123->_ABC
_ABC+456->B
という形で現在の1文字グローバル変数以外に独立した変数_ABCを使えるようにするということですね。
_ABCは定数を代入しての定数使用でも、変数でもどちらでもOkという感じです。

Re: Re:Re: Re:Re: Re:StrJoin( と + (文字列結合) のコマンドリファレンス作りました + 文字列処理コマンド 追加 + StrSprit( + 時計の狂い(報告)

sentaro様、ツル様、iron2様、CGユーザーの皆様


管理人のやすです。


C.Basic for FX Ver 1.70 beta のバージョン表示の件

私がアホやってました。久しぶりに 転送ソフト FA-124 を使ったのですが、右ペインから左ペイン(電卓) へのコピーを忘れていたという、誠にお恥ずかしい話でした。

ハイ、電卓に転送したら、正しく反映されました(当然です...)
お騒がせ致しました。



C.Basic for FX でのフォルダリネーム

ファイルリストで、フォルダにカーソルを合わせ、RN・F を押しても反応がありません。
何か手順ありましたっけ?



経験のある開発言語

iron2様、ものすごい数の言語を経験なさっているのですね!

私のケースを経験順に開陳すると、
・Casio FX-502P~FX-603P のキーロガー的な言語

・NEC PC8001 のROM Basic
・NEC PC9801 のDisk Basic、DOS Basic (N88 Basic)

・DOS版 Visual Basic
・FORTRAN77 (仕事でややこしい計算をスパコンで実行するため)
・Quick C (これでCを覚えた)
・Lattice C、Turbo C (味見)
・MSC これを結構使った
・Borland C++ (C++ がよー分からんかった)
・TASM、MASM (ほんの一口味見しただけ)

・Visual C++ (Winプログラミングを覚えた、Ver 1.2 ~ Ver 6)
・Win版 Visual Basic (エクセル操作のため)
・Visual Studio 2015 Community の VC++
・Visual Studio 2015 Community の C# (昨年1月に初めて味見、今後はこれを使おうと思っている)

で、純正Casio Basic と C.Basic を忘れてはいけませんね!



StrSrc(

> うわ、本当にグッドなタイミングで良かったです。
> 今までバグに気が付かなかったというのも情けないですが、使用頻度の少ないコマンドは後々バグが見つかるので焦ります。(^^;

やはり使ってあげないとダメですよね!


外字ハンドリング

> なんと、リネームで切り替えですか。
> C.Basicとしては相当に高度なパターンのアプリになりそうですね。

かなり厄介です!


> 一応現在の外字ファイルは10個までのファイルを簡単に切り替える方式採用なのですが、自由な名前で使えればより便利かもですね。
> これはちょっと検討材料になります。ありがとうございます!


わっ、これは嬉しいお言葉!
よろしくお願い致します。


ML風文字列コマンド

> 行列に直接結果を残す文字列関数は今まで無かったので、
> 現在の文字列関数のインターフェースとは別の独自の実装になりますが、
> 純正仕様に縛られないML系っぽい新たな文字列コマンド群が出来そうです。(^^)

楽しみです!
取り敢えず、StrSplit( あたり、チョット可能性をご検討ください\(^_^)/



時計の狂い

> 管理人様のCG50も正常になってるのですね。
> ってことは今までズレていたのはやはり今までのC.Basicのどこかが原因だったのでしょうか。(^^;

もうチョット様子を見ます。

ちなみに、fx-9860GII は、何ヶ月も経過しても3秒進みです!



#define 風エイリアス

C.Basic では、即値よりも変数の方が動作が速い特性があります。その意味では、即値を避けるのは高速化の条件です。
お話を伺った限りでは、Alias の代わりに #define 風の実装は、何か意味のあることか、Alias で何故ダメなのか? 私にはチョット分からなかったです。

sentaro様が何かお考えなのでしょう。それを楽しみに待たせて頂くことにします。


時計が安定! + 外字Save使える?

管理人様、sentaro様、iron2様、皆様


sentaro様
>これは…不安定なのが安定していた状況が、普通に安定している状況に変わったでしょうか。(^^?

はい、開発のsentaro様には耳障りな言い方でしたが、不安定が安定としか言いようがなかった状況が続いていましたね。当てに出来ない日時表示がツルも歯がゆく思い、無い知恵を絞って考える中で、無駄な投稿もありましたが、今は落ち着いており、22:00現在も3秒進みで安定しております。
何種類か処方頂いた薬の中の、どれかの成分が効いた感じです。
とは言え、まだ引き続き警戒を続けます。

>ツル様が外字を有効に活用されたプログラムを作成中だと思われるので?

・・・? あ、ごめんなさい。FEINTで作成外字のSaveが出来るようになったのですか? まだずっとsentaro様が試運転最終確認中と思っていましたが・・・

Splitと#Defineがあれば便利だと感じた訳

管理人様、sentaro様、ツル様、CGユーザーの皆様

凍えるようなウォーキングから戻ったiron2です。

いま、カフェです。
管理人様
>変数管理にご苦労なさっているのがアリアリと伝わってきます。
>#define 対応として、これまでにない予約変数への取り組みをsentaro様が表明な
>さったので、良かったですね!
はい!ありがたいです。

それといつも私の些細な投稿に何々使いですね!と鼓舞していただき
ありがとうございます。
経験は高校の時のカード穿孔のFORTRAN66が始まりです。
この時の電卓はオムロンの緑の蛍光ランプ式だった思います。
あとはシーケンサーのラダープログラム
N88Baisc、TurboC、MC5.1、MSAM、LinuxのC,F77、Java、gcc,g++,gfortran
BShell ,Perl ,Lua ,Python(numpy,Scipy,MatplotLib),gnuplot,javescipt,Octab,Mathmatica,maxima ちなみにruby,Prel,java,D,F#,OCaml,Elang,Fortran66は好きではないです。
visual studio 2013~2017 等を表面だけ
#Cはデルファイの人が設計しているはずのハイブリッド言語なので
c/c++,javaが読めたら抵抗は少ないかな。

ほんとうは広く浅くかじってるだけの愚か者なんです。
しいて言えば今はdot.Framework病患者と言うところでしょうか。

Split関数に関しては、sentaro様も申している通り自前実装可能です。
C/C++では char配列でもstringでも関数定義されていないので
データのログ等を処理するとき、自前の関数を書いていました。
とろがですね。dot.Framework下であれば、CLI , VB , C# 同じように
使えます。例えば
count = 0
 While(sr.ReadToEnd)
Sline =inFIle.ReadLine()
buf = Sline.Split(",")
x(count) = CDbl(buf(0))
y1(count)=CDbl(buf(1))
y2(count)=CDbl(buf(2))
   count +=1
End Whille
このようにtext列データで散布図を描くときのデータ読み込みに
有効です。CBasicでStrSplit(で実装していただくと
同じ感覚で使えるので短かく簡素に書けると思ったしだいです。

あと#defineが定数が使えたらと思った訳は
IF k1=26:Then 'ここにコメント書くぐらいなら。。。
とした場合 比較右辺が数字なので変更はされないですが
コードを上や下へいってる間になんのKeyコードだったか忘れる
からです。(バカです)
んで変数で定義するとひょんなバグから書き換えが発生する
可能性も無きにあらずと思い。定数(Const Value)があれば
と思った。
Alias Cont a= _Fine
Const a
だと代入できない?
Alias Cont a= _Fine
Const 26->a
と宣言時に代入できるの?とか

それなら#Define _Fine 26
なら表現上無理がないかなぁ~と思ったしだいです。
Alias無しでいきなり宣言できたらかなり有効じゃんと
思ったり、でも今使おうとしてるのは
ミッションクリティカルでない箇所でのメニューとか
での使用を考えているのでAliasと等価でもいいと思います。
普通の変数としても使えるなら、なおウヒウヒ。

これからもよろしくお願いします。(帰宅します)

Re:Re: Re:Re: Re:StrJoin( と + (文字列結合) のコマンドリファレンス作りました + 文字列処理コマンド 追加 + StrSprit( + 時計の狂い(報告)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>これから、StrSrc のコマンドリファレンスを作ろうとして、丁度サンプルプログラムを作っているところでした。
グットタイミングの修正、ありがとうございます。

うわ、本当にグッドなタイミングで良かったです。
今までバグに気が付かなかったというのも情けないですが、使用頻度の少ないコマンドは後々バグが見つかるので焦ります。(^^;


>ところで、For FX も頂きmしたが、SET UP でバージョン表示させるとまだ Ver 1.65 のままでした。

あり?
アドインのファイルサイズが378416バイトであれば1.70ですがどうでしょうか?


>実は、BMPファイルや外字ファイルを自在にリネームして切り替えるルーチンを試作しています。このあたりが自在に行えると、BMPや外字をプログラム中から柔軟に使えるのではないかと思うと同時に、それをコマンド化するのは危険かも知れないので、プログラムコードで実現しようと考えています。

なんと、リネームで切り替えですか。
C.Basicとしては相当に高度なパターンのアプリになりそうですね。

一応現在の外字ファイルは10個までのファイルを簡単に切り替える方式採用なのですが、自由な名前で使えればより便利かもですね。
これはちょっと検討材料になります。ありがとうございます!


>文字列と行列の使いこなしは、C言語風なので Basic の経験しか無いと敷居が高いと感じる方が多いと思うので、

了解です。
行列に直接結果を残す文字列関数は今まで無かったので、
現在の文字列関数のインターフェースとは別の独自の実装になりますが、
純正仕様に縛られないML系っぽい新たな文字列コマンド群が出来そうです。(^^)


>最後に、私のところでの時計の状況ですが、途中何度かオーバークロックしていますが、今のところ3秒進む程度で全く問題ありません。

管理人様のCG50も正常になってるのですね。
ってことは今までズレていたのはやはり今までのC.Basicのどこかが原因だったのでしょうか。(^^;

Re: Re:Re: Re:StrJoin( と + (文字列結合) のコマンドリファレンス作りました + 文字列処理コマンド 追加 + StrSprit( + 時計の狂い(報告)

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。


C.Basic for CG Ver 0.35α 頂きました。

これから、StrSrc のコマンドリファレンスを作ろうとして、丁度サンプルプログラムを作っているところでした。
グットタイミングの修正、ありがとうございます。

取り敢えず、この記事、最新版入手の和英双方のページを追記修正しました。


ところで、For FX も頂きmしたが、SET UP でバージョン表示させるとまだ Ver 1.65 のままでした。


iron2様、

変数管理にご苦労なさっているのがアリアリと伝わってきます。

#define 対応として、これまでにない予約変数への取り組みをsentaro様が表明なさったので、良かったですね!

このあたりは、Casio Basic や C.Basic 特有といいますか、Tyny Basic 系共通の悩みだと思います。ある程度慣れれば、それなりの "使い捨て変数" の使いこなしがあるので、この方向でご検討なさってみてください。

私自身は、、個人的に "使い捨て変数" をある程度決めておき、それ以外で "予約変数" を割り当てることで、なんとかなっています。

もう一つの方法として、スピードに影響のないところで、変数を一旦 Mat に待避させておき、必要なところで 1文字変数を切り替えるという方法も有効です。Casio Basic でこれを利用してなんとかなっているので、より高速な C.Basic では変数切替のオーバーヘッドはかなり小さくなります。これもお試しになっては如何でしょうか?



sentaro様、

> 外字は8x8ドットくらいであれば簡単ですけど、18x24ドットになると1文字作成するのも大変なので、
> 必要な分だけBMP画像を用意した方がはるかに使い易いということになるかと思います。
> それを外字としてまとめて使うかどうかというところでしょうか。

実は、BMPファイルや外字ファイルを自在にリネームして切り替えるルーチンを試作しています。このあたりが自在に行えると、BMPや外字をプログラム中から柔軟に使えるのではないかと思うと同時に、それをコマンド化するのは危険かも知れないので、プログラムコードで実現しようと考えています。

チョット時間がかかりそうですが...


> 外字に関しては外字を使ったプログラムを参考にするのが一番ということで、
> ツル様が外字を有効に活用されたプログラムを作成中だと思われるので?
> そこから入るというのもありですね。(^^)

これも楽しみに待っています!



> あと、255文字制限ですが、これは現在たまたまそうなっているだけなので、(^^;
> 9999文字やそれ以上にも増やすことは出来そうですが、メモリの空き次第なので、
> 隠しRAMの使えるCG50専用の拡張ということにもなるかもしれません。

分かりました。255文字制限の記述は、全て同じ場所に同じ文言にしているので、仕様変更の際は、サクッと変更できます!



> >(書式) Split("<文字列>","<区切り文字>")
>     ※ 区切り文字で文字列を分割して、文字列配列を返す。
> >(例) Split(Str 1, ",")->Mat A
>
> 今の文字列関数は純正仕様の範囲内ですが、
> 文字列配列で返すのはグラフィックスのML仕様な感じですね。

はい、C.Basic風の仕様ですが、これが使えると便利だと思うんです。


> 既存のコマンドで
> Split(Str 1, ",")->Str 2
> を実現しようとすると、
> StrSrc(を使って、
> ---------------------------------
> "ABC,DEFGH,I,JK,LMN"→Str 1
> {20,64}->Dim Mat S.B
>
> 1->I
> 1->P
> StrSrc(Str 1,",",P)->Q
> While Q
> StrMid(Str 1,P,Q-P)->$Mat S[I]
> Q+1->P
> StrSrc(Str 1,",",P)->Q
> Isz I
> WhileEnd
> StrMid(Str 1,P)->$Mat S[I]
>
> ColSize(Mat S)->R
> For 1->C To R
>  Disp $Mat S[C]
> Next
>
> ---------------------------------
> こういう感じで一応出来るでしょうか。

文字列と行列の使いこなしは、C言語風なので Basic の経験しか無いと敷居が高いと感じる方が多いと思うので、

> 上の部分をサクッとコマンド化すれば良さそうですね。

これは心強いです。



> >もしご確認頂き、改善点や追加ポイントなどをお聞かせ頂けるとうれしいです。
>
> 分かりやすくて何も問題無しです。はい。(^^)

ありがとございます。


iron2様も、サンプルプログラムが分かり易いととコメント頂き、ありがとうございます。

この線で、進めてみます。



最後に、私のところでの時計の状況ですが、途中何度かオーバークロックしていますが、今のところ3秒進む程度で全く問題ありません。

Re:Re: Re:StrJoin( と + (文字列結合) のコマンドリファレンス作りました + 文字列処理コマンド 追加 + StrSprit( + 時計の狂い(報告)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>バッファに代入するSplit関数等は
>元からありましたでしょうか?

一応純正仕様互換+αなので、ありませんです。(^^;
ただ、既存のコマンドで同じ処理をすることは可能かと思われますが、
新規でコマンドを追加することも可能です。


>システムに無理なような気がしますが#define将来可能でしょうか?

PIとかは変数Pと変数Iの乗算でP*Iと認識されるので純正仕様である限りは不可能なのですが、
アンダーバーから始まる_PI等であれば可能です。
純正の乗算省略仕様のために英文字から始まる複数の英数字名が使えないので、
どうしてもそれと区別するためのプレフィックスが必要になってきます。

ってことで、
現状のAliasではない追加の変数枠を設ければ、それを変数として使うもよし、定数として使うもよしなので、
そこのあたりの拡張を今後追加してみたいと思います。(^^)



管理人様、
>既存のプログラムに外字を取り込もうとしていて、外字処理に関して、どうもスッと頭に入らず、もやもやした状態です。
>なので、横着せずにサンプルプログラムを書きながら、一歩ずつ進めることにします。
>なんだか、人それぞれ鬼門があるようで、私はハマってしまっています。

外字は8x8ドットくらいであれば簡単ですけど、18x24ドットになると1文字作成するのも大変なので、
必要な分だけBMP画像を用意した方がはるかに使い易いということになるかと思います。
それを外字としてまとめて使うかどうかというところでしょうか。

外字に関しては外字を使ったプログラムを参考にするのが一番ということで、
ツル様が外字を有効に活用されたプログラムを作成中だと思われるので?
そこから入るというのもありですね。(^^)


>以下のコマンドリファレンスも追加しましたが、そこにも追記するようにします。

着々と文字列関数リファレンスが出来つつありますね。
ありがとうございます!

あと、255文字制限ですが、これは現在たまたまそうなっているだけなので、(^^;
9999文字やそれ以上にも増やすことは出来そうですが、メモリの空き次第なので、
隠しRAMの使えるCG50専用の拡張ということにもなるかもしれません。


>(書式) Split("<文字列>","<区切り文字>")
    ※ 区切り文字で文字列を分割して、文字列配列を返す。
>(例) Split(Str 1, ",")->Mat A

今の文字列関数は純正仕様の範囲内ですが、
文字列配列で返すのはグラフィックスのML仕様な感じですね。

既存のコマンドで
Split(Str 1, ",")->Str 2
を実現しようとすると、
StrSrc(を使って、
---------------------------------
"ABC,DEFGH,I,JK,LMN"→Str 1
{20,64}->Dim Mat S.B

1->I
1->P
StrSrc(Str 1,",",P)->Q
While Q
StrMid(Str 1,P,Q-P)->$Mat S[I]
Q+1->P
StrSrc(Str 1,",",P)->Q
Isz I
WhileEnd
StrMid(Str 1,P)->$Mat S[I]

ColSize(Mat S)->R
For 1->C To R
 Disp $Mat S[C]
Next

---------------------------------
こういう感じで一応出来るでしょうか。
と思ったら、StrSrc(でバグ発見!ってことで、バージョンアップです。(^^;

C.Basic for CG v0.35α (StrSrc(バグ修正版)
http://pm.matrix.jp/CB/CBASICCG035.zip
・StrSrc(コマンドにおいて、検索開始位置を指定した場合に結果が一つズレていたのを修正しました。


>先ほど提案した Sprit( コマンドですが、その趣旨からコマンド名は StrSprit( の方が良さそうな感じなので、コマンド名の提案を変更させて頂きます。

了解しました。
上の部分をサクッとコマンド化すれば良さそうですね。


>もしご確認頂き、改善点や追加ポイントなどをお聞かせ頂けるとうれしいです。

分かりやすくて何も問題無しです。はい。(^^)




ツル様、
>先の投稿で告知の通り、電池交換前での時計の状況をご報告いたします。
>2018/01/25 15:56・・・ にセット。  セットからほぼ3日が経過し、
>2018/01/28 15:15・・・ 約3秒の進み状態です。安定しています。

これは…不安定なのが安定していた状況が、普通に安定している状況に変わったでしょうか。(^^?


>FEINTのFX版?  ?  ・・・ ?
>同じ画面は作れない筈ですが・・・ ? 一体あなたは何をやろうと・・・(笑)

はい、同じ画面は無理なので大幅に端折っておりますがなんとか同様に動作しているようです。(^^;

どんなものになっているかは…

C.Basic for FX v1.70beta (外字フォント対応+いろいろVerUp版)マニュアルがまだ未完成です。(^^;
http://pm.matrix.jp/CB/CBASIC170beta.zip
Fontフォルダに移植途中のFEINT25のFX版を同梱してありますのでご確認下さいませ。

時計の狂い(報告)

管理人様、sentaro様、iron2様、皆様

先の投稿で告知の通り、電池交換前での時計の状況をご報告いたします。
2018/01/25 15:56・・・ にセット。  セットからほぼ3日が経過し、
2018/01/28 15:15・・・ 約3秒の進み状態です。安定しています。

sentaro様
>FX版の外字拡張とFEINTをFX版に移植したりとでちょこっと手間取っております。(^^;

FEINTのFX版?  ?  ・・・ ?
同じ画面は作れない筈ですが・・・ ? 一体あなたは何をやろうと・・・(笑)

文字列処理コマンド 追加 + StrSprit(

sentaro様、iron2様、ツル様、CGユーザーの皆様


管理人のやすです。


先ほど提案した Sprit( コマンドですが、その趣旨からコマンド名は StrSprit( の方が良さそうな感じなので、コマンド名の提案を変更させて頂きます。


本日追加・修正した文字列処理コマンドは、以下です。

StrLen(

StrLeft(

StrRight(

StrUpr

StrLwr


このコメント欄の仕様上、URL の記述数の上限にひっかかるので、以下のコマンドリファレンス・トップページ のURL を記載致します。

http://egadget.blog.fc2.com/blog-entry-639.html


もしご確認頂き、改善点や追加ポイントなどをお聞かせ頂けるとうれしいです。

シンプルなコマンドから、やっつけていますので、用語のわかりやすさなどのご意見頂けると助かります。


Re: Re:StrJoin( と + (文字列結合) のコマンドリファレンス作りました

sentaro様、iron2様、ツル様、CGユーザーの皆様


管理人のやすです。


外字関連

> FX版の外字拡張とFEINTをFX版に移植したりとでちょこっと手間取っております。(^^;

お疲れ様です。

既存のプログラムに外字を取り込もうとしていて、外字処理に関して、どうもスッと頭に入らず、もやもやした状態です。
なので、横着せずにサンプルプログラムを書きながら、一歩ずつ進めることにします。
なんだか、人それぞれ鬼門があるようで、私はハマってしまっています。


文字列長に関する純正とC.Basicの違い

> 補足情報として、結合の文字数制限に関してですが、
> 純正ではおそらく9999文字までと思われますが
> C.Basicでは255文字までとなっております。(^^;

この点は大切ですね。追記するようにします。

以下のコマンドリファレンスも追加しましたが、そこにも追記するようにします。

StrLeft
http://egadget.blog.fc2.com/blog-entry-649.html

StrRight
http://egadget.blog.fc2.com/blog-entry-650.html

StrLen
http://egadget.blog.fc2.com/blog-entry-651.html



Split( コマンド

iron2様

Joinときたら、String.Split ですね!
iron2様は、C# 使いとお見受けしました。

Split のようなコマンドは、純正にもC.Basic にもありません。
ですよね?>sentaro様

sentaro様のコメントにもあるように、C.Basic では文字列は255文字が最大長 (終端の 0 を含めて最大256バイト) が仕様になっており、ファイルI/O はあまり充実していません。なので、文字列処理がメインのコマンドとしての実装なら、新コマンド追加はそれほど大変ではないかと思われます。

C.Basic では 文字列の実体は Mat なので、もし Split( コマンドを実装する場合は、例えば以下のような感じの使い方になるのでしょうか?

(書式) Split("<文字列>","<区切り文字>")
    ※ 区切り文字で文字列を分割して、文字列配列を返す。

(例) Split(Str 1, ",")->Mat A

(サンプル)
'#Str θ
"ABC,DEFGH,I,JK,LMN"→Str 1
Sprit(Str 1, ",")->Mat θ

RowSize(Mat θ)->R
For 1->C To R
 Disp Str C
Next

sentaro様、如何でしょうか? 


re:StrJoin( と + (文字列結合) のコマンドリファレンス作りました

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

管理人様
リファレンス拝読させていただきました。
サンプルがとても分かりやすく良かったです。

ふっと思ったのですが、1行バッファ内の文字列を
区切り文字”,”等で予め複数個配列を確保した
バッファに代入するSplit関数等は
元からありましたでしょうか?
あれば、テキスト処理する時にかなり楽になる気がしたので
もしあったのならば、勉強不足と言う事でご容赦ください。

sentaro様
システムに無理なような気がしますが#define将来可能でしょうか?
#difiine PI 3.141592756
#define Fiine 26
以前投稿したcbCRLF,cbTab等も同じ意味です。
手早く言う所のConst Value です。
したがって、a-z,A-Zとは違うメモリ領域const AreaMemoryから
確保したいって感じです。

他のユーザーは余計にわかりにくくなるかもですが、私的には
欲しいと思ったしだいです。

一応、今までの配列変数とかAliasとかで再構築できそうです。
なので、また戯言言うてるわ。と聞き流していただいてOKです。

これからもよろしくお願いします。

Re:StrJoin( と + (文字列結合) のコマンドリファレンス作りました

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

FX版の外字拡張とFEINTをFX版に移植したりとでちょこっと手間取っております。(^^;


管理人様、
>コマンドリファレンスを追加しました。
>StrJoin(
http://egadget.blog.fc2.com/blog-entry-647.html

>+ (文字列結合)
http://egadget.blog.fc2.com/blog-entry-648.html

>何か追加した方が良いことがあれば、アドバイスをお願い致します。

文字列の結合は文字列演算の基本中の基本ですね。
ありがとうございます!

補足情報として、結合の文字数制限に関してですが、
純正ではおそらく9999文字までと思われますが
C.Basicでは255文字までとなっております。(^^;



iron2様、
3pin繋がるようになってよかったです。
カチッというまで挿さないといけないのはFAQかもしれませんね。
とにかく初期不良等で無くて本当によかったです。(^^)


ツル様、
>ツルは長年、ガス式半田ごてを愛用していて、お気に入りのアイルランド製のを
>常時3本スタンバイ状態です。電源不要で外での作業も容易なのでガス式が気に入っています。

ガス式とはさすがです!
うちではずっとセラミックでしたけど、最近はUSBのをちょこちょこ使ったりしてます。(^^;

StrJoin( と + (文字列結合) のコマンドリファレンス作りました

sentaro様、ツル様、iron2様、CGユーザーの皆様


管理人のやすです。


コマンドリファレンスを追加しました。

StrJoin(
http://egadget.blog.fc2.com/blog-entry-647.html


+ (文字列結合)
http://egadget.blog.fc2.com/blog-entry-648.html



何か追加した方が良いことがあれば、アドバイスをお願い致します。


3PIN接続 解決してよかったです

iron2様

よかったですね。初めは、差し込みが固いのを言ってみようかとも思いました。

管理人様
意外に、差し込みプラグ付近のケーブル内での劣化による接触不良も多いですし、半田付け部分のクラックが問題だったりしますよね。
ツルは長年、ガス式半田ごてを愛用していて、お気に入りのアイルランド製のを
常時3本スタンバイ状態です。電源不要で外での作業も容易なのでガス式が気に入っています。

3PIN Comlete ! Press [EXIT]

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

管理人様、sentaro様、ツル様、

帰宅後、NORMAL試してみたのですが、うまく行かず。ツル様の異物の話で

のぞき込んだり、刺したり外したりしてたら、あらまカチっと音がするじゃー
ないですか。

表題の通り、うまく3PIN接続しました。
はじめの指摘通り、ちゃんと接続できていなかっただけでした。

最初は返品かーと焦りましたが、皆様のおかげ2台とも正常である
とわかりました。

ほ ん と う に ありがとうございました!!!!!

これからもよろしくお願いします。  m(_ _"m)

結線、配線、導通を調べるのが基本

ツル様

ツル様が言われる、導通の確認は、ホント基本中の基本ですね!

仕事で、結構ややこしい機器を扱いますが、期待しない動作の時、コンセントから順次たぐって、配線、結線、導通を調べると、かなりの確率でこれらに問題があり、同時に修理できます。

先月のとある日、客先で機器のデモを行う予定の前日、パソコン上で正しく操作しても微妙に正しく動作しないことが分かりました。複雑な機器なので分解するのはリスクが高いのですが、結局基板上のコネクタのハンダ付けに問題があることを突き止める程度にバラバラに分解し、蛍光灯付きのルーペで、老眼にむち打ってハンダをし直し、ほぼ徹夜で修理したことを思い出します。

Re:Re:続3PIN接続

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>F1,F2 SELECT、カーレントどちらでやっても瞬時に
>Transmit ERRと表示されます。

あと、考えられる原因としては、管理人様がご指摘してくださったところの、

>オーバークロックしていると正しく接続できないので、2台ともノーマルクロックになっているかどうか、確認してみてください。

これ、ひょっとして、ビンゴかも?(^^)

それでもNGだとしたら、ケーブル不良か、
ツル様のおっしゃってますところの異物の可能性もあるかもしれません。

Re:続3PIN接続

iron2様

既に解決済みかも知れませんが、
ツルならこのような場合、真っ先の差し込み穴を覗きます。
導通を阻害する紙片など、小さな異物を噛んでいる場合も考えられます。

Re: 続3PIN接続

iron2様、sentaro様、ツル様、CGユーザーの皆様


管理人のやすです。


> CG50のカシオのページで3PINはグラフ電卓同士を接続すると
> あったので、チャレンジしたわけですが



> F2 3PIN設定でどちらをResive Trasmit にしてもうまくゆきませんでした。
> ケーブルはcg20のとcg50の両方を試しています。
> また、3PIN接続するとResive側の電源が入ってるので接続不良
> とは違うような気がします。

オーバークロックしていると正しく接続できないので、2台ともノーマルクロックになっているかどうか、確認してみてください。

特に CG20 はC.Basic起動時に自動的にオーバークロックするモードがありますので、気がつきにくいかも知れません。

続3PIN接続

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

CG50のカシオのページで3PINはグラフ電卓同士を接続すると
あったので、チャレンジしたわけですが

F2 3PIN設定でどちらをResive Trasmit にしてもうまくゆきませんでした。
ケーブルはcg20のとcg50の両方を試しています。
また、3PIN接続するとResive側の電源が入ってるので接続不良
とは違うような気がします。

F1,F2 SELECT、カーレントどちらでやっても瞬時に
Transmit ERRと表示されます。

何か間違っているのかもしれません。

取り急ぎ連絡まで サイゼリアより

これからもよろしくお願いします。

Re:Re: C.Basic for CG v0.34α (ファイルリストde時計表示変更版)差し替えです。 + 時計狂いに関係? + 壊れかけの古いノートPCで

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>外字まわりは、まだあまり触っていないので、そろそろ触ってみようと思います。

フォント関連は何やら不具合がちょっと残ってそうな気がしてますので、何かお気づきの点がありましたらよろしくです。(^^)


>なお、こうあるべき、こうなると便利、ということがあれば、sentaro様は興味をもって検討してくれるのではないかと思います。

はい!
より使いやすくより便利になるためのバージョンアップをずっと続けてきてますから、これからもどんどんお願いします。(^^) >皆様


>私も早速、昨日申し込んでおきました。
>これが使えるようになると、当ブログに掲載している fx-5800P プログラムをダウンロードできるようにしようと思っています。

さすが、管理人様、早いですね!
PCににリンクできるようになると、繋がる相手がfx-5800Pだけという閉じたプロ電だったfx-5800Pが一気に開放される感じがしますね。



ツル様、
>” CLK クロック周期. tCLK. 0.75. 7800. 1.5. 7800. µs. CLK "L" パルス幅. tCLKL. 0.375. 3900. ”と記述があるようです。

PDF見てみました。
これは、ICFに接続するクロック信号の一番遅いタイムが7800μsってことで約128KHzでしょうか。
3900はパルス幅なので立ち上がりと立ち下がりの間隔はちょうど半周期分になりますね。
ってことで、管理人様の7800年とは関係は無さそうですが、数値が合っているのが何かの縁を感じますね。(^^;



iron2様、
>設定WINUPDATEを見たら、UPDATEリストがたいへんなことに(笑)

しばらく放置していたPCに久々に電源入れると凄いことになりますよね。(^^;


>そして、cg20 と cg50を3pinケーブルでつなぎましたがファイルのやり取り
>はできませんでした。どうやらお友達では無いようです。

ありり? 3pinはfx-9860GIIから互換性のある通信なので、
おそらく、ケーブル設定が3pinになっていないか、もしくはケーブルがきちんと刺さってないかのどちらかだと思われます。(^^;

壊れかけの古いノートPCで

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

いつも使ってるノートPC(Z3795)がWINアップデートで家にあるので
壊れかけの古いノートPCを使ってカフェから
C.Basic for CG v0.34α (ファイルリストde時計表示変更版)差し替え版
をDLしようとしたらDL12時間とか。。。。んがぁ
設定WINUPDATEを見たら、UPDATEリストがたいへんなことに(笑)
帰宅したらこの子も再起動アップデート祭りですね。
と呆れていたら、ピポパポンとDL完了。保存が出てきました。
よかった、よかった。

ついでにScreen Reciverもいれちゃいました。

そして、cg20 と cg50を3pinケーブルでつなぎましたがファイルのやり取り
はできませんでした。どうやらお友達では無いようです。

管理人様、sentaro様、
正直な気持ちとはいえ、私のカミングアウトにコメントいただき
ありがとうございました。

いろいろ解決策、打開策をいただいているので
今すぐどうという案は特にございません。

今日は雪で非常に寒かったです。
皆様も風邪を引かぬようお体を大切にしてください。

これからもよろしくお願いします。

時計狂いに関係?

管理人様、sentaro様、iron2様、皆様

RTCに関するnet上のPDF資料に RTC - 4543 SA/SB というのがあるようで、
CG50と直接の関係は無いでしょうけれども、
” CLK クロック周期. tCLK. 0.75. 7800. 1.5. 7800. µs. CLK "L" パルス幅. tCLKL. 0.375. 3900. ”と記述があるようです。

ツルには詳しくは分かりませんが、管理人様のCG50でタイムスリップする、
7800やその1/2である3900という数値が登場しています。
何か関係あるでしょうか?>sentaro様

Re: C.Basic for CG v0.34α (ファイルリストde時計表示変更版)差し替えです。

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。


C.Basic Ver 0.34αのアップデート

ありがとうございます。
外字まわりは、まだあまり触っていないので、そろそろ触ってみようと思います。


iron2様

> なんというんでしょうか。。。このコードはこう動作すべきだ。とか
> このコマンドはこうあるべきだ。とか。

一番肌に染みついた言語に引っ張られるというのは、私もよくあります。
しばらく VC++ を使っていて、VB を使うと、おっしゃるようになります。

C# をしばらく使っていて、C.Basic を使うと、不自由に感じます。

一方で、しばらく 純正Casio Basic にどっぷり浸かっていた後に、C.Basic を使うととても快適に感じます。
C.Basicの基本コンセプトが、純正Casio Basicの拡張ですから、当然過ぎるくらい当然ではあります。

C.Basicは、グラフィックス描画が機能は少ないものの、記述が簡便にできると思います。VC++/C# は回りくどい手順を多く進める必要がありますよね。例えば、Edit Box / Text Box の背景と文字の色を変えようとすれば、Edit Box のサブクラスを作ってそこで色の設定を行うなんて面倒な作業が必要ですよね。

なお、こうあるべき、こうなると便利、ということがあれば、sentaro様は興味をもって検討してくれるのではないかと思います。


CcLinker USB Dongle

私も早速、昨日申し込んでおきました。
これが使えるようになると、当ブログに掲載している fx-5800P プログラムをダウンロードできるようにしようと思っています。



C.Basic for CG v0.34α (ファイルリストde時計表示変更版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>そんな感じで、まだコマンドは友達!。。って所まではいってない
>といいたかったのです。

あ、了解です。
私も似たようなところたくさんあるので、よく分かります。(^^)

一度勝手が分かって身についたものから出来るだけ近い使い方で維持したいというか、
一から別の使い方を覚えないといけないとなると、なかなか敷居が高かったりしますね。(^^;


ってことで、ちょこっとアップデートですが、
時計表示の確認をファイルリスト表示時に出来るようにしてみました。
C.Basicを起動すれば常に確認できるよになります。(^^)


C.Basic for CG v0.34α (ファイルリストde時計表示変更版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG034.zip
・ファイルリスト表示でステータスラインに現在日時を表示をするようにしました。
(リアルタイム表示ではなく何かアクションした時の更新になります。)
・外字のテキスト変換に失敗していたのを修正しました。
・フォントデータをセーブ、ロードするBmpLoad @/BmpSave @コマンドにおいて
 フォントファイル番号を指定する場合に不具合が出ることがあったのを修正しました。

安心してCGシリーズを使えます

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

sentaro様
あやふやな私の疑問に対して、いろいろ情報を提供くださり
ありがとうございました。
安心してCGシリーズを使う事ができます。

あと、勉強うんぬんの下りは、
結構コードを旨く書けずストレスが溜まっていました。

なんというんでしょうか。。。このコードはこう動作すべきだ。とか
このコマンドはこうあるべきだ。とか。頭がコチコチなんですよね。
固定概念の欲望に捕らわれた亡者のごとくです。

そういう私の目の前には五重羅生門が立ちふさがる。。ってわけです。

そんな感じで、まだコマンドは友達!。。って所まではいってない
といいたかったのです。

元々、自分の至らなさから速いPCが欲しいと思っていました。
しかし、わかってたのです。ほんとうは自分の頭を更新しないと
いけいとね。
そんな時、いくどか訪れていたここで頭を解きほぐそうと
きたんですよ。でも性格なんでしょうね。。。
すぐ捕らわれの身になるんです。(ダークフォース)

こんなめんどくさい奴ですが、これからも
どうぞ よろしくお願いします。

Re:2360円 + 時間経過報告疲れたので最後

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>ありがとうございました。 ということは、レターパックライトでの発送ですね。
>安心です。

私は一応昨年制作したCcLinkerがあるのですが、
なにぶん、むき出しのバラックなので、
ドングル発注いたしました。


>ああ、そうか、そう来ましたか(笑)
>うーん・・・

はい、fx-5800Pの限界に迫るMASIOを期待したいです。(^^)



iron2様、
連日の時間のズレ具合のご報告ありがとうございます!
結果を見る限り、iron2様のCG50では時計問題は何も無さそうですね。
次はズレた場合にだけご報告くださればと思います。(^^)


>2010/10/01は初めてのパターンで4回やっても同じです。
>なんでしょうね?

んとCGシリーズでは時計がリセットされた時の日付が2010/10/01なので、それで正常です。


>ストレージのレジュームにちゃんと保存されているかどうか
>て影響ありますか?

それはあまり影響があるとは思えないですが、
電池交換時にCG20ではリスタートになりにくくCG50でなりやすいのは、
CG50の方が待機時の消費電力が若干多めだからかもしれません。
それで一時間後にSDRAMへの給電をオフにしてディープなスリープモードに移行する仕組みになっているわけですね。

つまり、電池交換でリスタートさせないようにするためには、
電源ラインに入ってるコンデンサが放電する前に素早く交換すれば大丈夫ということになりそうなので、
電池交換ではなく一瞬の電池外しをするとどれくらいまでリスタートにならないかの耐久テストをちょこっと試してみると、
CG50では5秒ではリスタートにならなかったのですが、10秒でリスタートしましたのでかなり短いです。(^^;
CG20では30秒でも大丈夫でしたので電池交換の時間としては余裕がありますね。


>プラ子が2か月ほど放置プレイで昨日リチウムイオンバッテリー切れ
>を起こしていて充電しただけだったのですが、少し残っていたのか
>年月日時分秒まったくズレなしでした。
>ズレなしは発振器の精度の差でしょうかね?

それは間違いなくプラ子の時計が高精度ということででしょう。(^^)
ちなみに、うちのプラ子の時計はと思ったらバッテリ切れてました。(^^;
これから充電後、調査してみたいと思います。

時間の追加情報

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

プラ子が2か月ほど放置プレイで昨日リチウムイオンバッテリー切れ
を起こしていて充電しただけだったのですが、少し残っていたのか
年月日時分秒まったくズレなしでした。
ズレなしは発振器の精度の差でしょうかね?

連絡まで

これからもよろしくお願いします。

時間経過報告疲れたので最後

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

fx-cg20-n 2018/01/25 THU 18:12:00 10秒遅れ ほぼ4日 250MHzOCまま
fx-cg50-n 2018/01/25 THU 18:19:30 5秒遅れ 1日+19.5時間 Normal

USBパワーOFF 共通
fx-cg50-n
1回目 電池交換前 2018/01/25 18:24:30 THU 交換後 2010/10/01 FRI 00:00:20
2回目 電池交換目 2018/01/25 19:04:00 THU 交換後 2010/10/01 FRI 00:00:30
3回目 電池交換目 2018/01/25 19:15:10 THU 交換後 2010/10/01 FRI 00:00:26 CB Setup->POWEROFF
4回目 電池交換目 2018/01/25 19:21:30 交換後 2010/10/01 FRI 00:00:22 EVOTA 交換

2010/10/01は初めてのパターンで4回やっても同じです。
なんでしょうね?

末尾秒の20~26秒は初期設定してCBASICのSETUPで時間確認するまでの時間です。

fx-cg20-n
電池交換前 2018/01/25 19:40:00 交換後 2018/01/25 THU 19:43:15 10秒遅れ
すげー完全に4個取り外して、取り付けたのに10秒遅れまで再現!
と思ったら3回目に時間リセット
2010/10/01 FRI 00:00:24

fx-cg50と同じリセット月。

どちらにしてもfx-cg20-n,fx-cg50-n
同じ症状の感じです。

これらから、リセットされないときはレジュームが正しい情報を得ている
時はリセット画面にならないのでは?と思ったり。(OC)
エラーならリセットで初期設定画面に移行?
(この時しか確認してないが倍速になっている)

ストレージのレジュームにちゃんと保存されているかどうか
て影響ありますか?

連絡まで

これからもよろしくお願いします。

2360円

sentaro様

>送料込み2360円だそうです。
ありがとうございました。 ということは、レターパックライトでの発送ですね。
安心です。

>そこに、ツル様のスペシャルなfx-5800P版MASIOが加われば鬼に金棒ですね。(^^)

ああ、そうか、そう来ましたか(笑)
うーん・・・

Re:Re:Re:時計狂い(報告)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>のご報告部分ですが、たぶん、自然に電池交換をしてしまい、
>その時点から1日と18:30・・・経過した可能性もあります。

そのとおりであれば狂っていない可能性もありますが、

>内蔵RTCが不安定で安定(笑)している状況が続いているので、こまめに記録しなくなったため・・・

不安定で安定だと毎回狂っているわけですね。(^^;
実際問題このままだと時計アプリが出来ないわけなので、なんとか対策できるものなら対策したいところです。


>なので、2018/01/25 15:56:00 (現在)にて再度セットしてみました。
>次回のご報告時は電池交換前とします。

了解しました!

C.BasicではDATE/TIMEコマンドを使用しない限りは時間変更されることは無いはずなのですが、
また狂っていることに気が付きましたらよろしくお願いします。



>ただ、いくらPCに接続できても、同じ環境下のメンバーが揃わなくては楽しくないと思うのです。最低数百人規模で・・・

一気に普及させるためにはキラーアプリの存在が不可欠ですが、
管理人様がドングル入手されて公開プログラムがダウンロード出来るようになれば、
ドングルがあればという状況が徐々にでも進んでいくのではと思います。
そこに、ツル様のスペシャルなfx-5800P版MASIOが加われば鬼に金棒ですね。(^^)


>あの時は。

なんか思いっきり過去形になってしまってますけど、(^^;
fx-5800Pと互換性のある後継機種の可能性もゼロではないので、
今からでも遅くはないのではないでしょうか。(^^?


ところで、
Takumako様のサイトで、ついにCcLinker Dongle 試作品の頒布開始されましたね。
送料込み2360円だそうです。

Re:Re:時計狂い(報告)

管理人様、sentaro様、iron2様、皆様

sentaro様
2010/10/02 18:30・・・ でした。(v0.33α では最新Verにて)
のご報告部分ですが、たぶん、自然に電池交換をしてしまい、
その時点から1日と18:30・・・経過した可能性もあります。
内蔵RTCが不安定で安定(笑)している状況が続いているので、こまめに記録しなくなったため・・・
なので、2018/01/25 15:56:00 (現在)にて再度セットしてみました。
次回のご報告時は電池交換前とします。

因みに、どんぐりですが、ネイキッド試作品を見たときに、本気で作りたいと思いましたし、あと基板への実装を一工夫すれば、今回のような試供品が作れるものと眺めていました。5800Pユーザーなら必携の品だと強く感じていました。
あの時は。
それが具現化した品を見たツルはとても感動しました。
ただ、いくらPCに接続できても、同じ環境下のメンバーが揃わなくては楽しくないと思うのです。最低数百人規模で・・・
ツルが方々の了解も取り付け、販売を始めたら、最低1000個位と考えていました。幸い、電子部品実装基板の小規模ロット製作の知識も少しだけあるので、夢物語ではありませんでした。とにかく、ツルが一番欲しかったものでした。
あの時は。

Re:時計狂い(報告)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、時計状況のご報告ありがとうございます!

>2010/10/02 18:30・・・ でした。(v0.33α では最新Verにて)

ってことは、ノーマルクロックで日時ともに以前と変わらず大幅にズレているということですね。


>※電池交換での確認の為、ここで電池交換します。
>結果、
>2010/10/01 00:00・・・ と、リセットされました。

これは電池交換での時計リセットと考えられますが、
通常時のズレ方が迷宮入りしそうなくらいの謎ですね。(^^;

時計狂い(報告)

管理人様、sentaro様、iron2様、皆様

2018/01/25 13:29・・・(現在日時)に確認の報告です。
2010/10/02 18:30・・・ でした。(v0.33α では最新Verにて)
※電池交換での確認の為、ここで電池交換します。
結果、
2010/10/01 00:00・・・ と、リセットされました。

Re:Re: Re:OS Ver 同じです + 時間経過報告

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>さすが、そのための2台持ちなんですね!

はい、純正OSのバージョン違いはあまり差がないので特に問題は無いのですが、
C.Basicの動作確認やバージョン間の差異を調べるには複数台無いとどうにもなりません。(^^;


>私もいずれもう一台とは思っていますが、Amazon USA で安くなるのを狙って待っているところです。

ぉお!
私も3台目が時間の問題かもしれません。(^^;


>ちなみに、fx-JP900 と fx-JP500 (会社用)を持っていますが、fx-JP700 が¥2,600 と激安だったので思わずAmazonでポチッとしてしまったという....このあたりはコレクションでしかないのですが..

JPシリーズ、コンプリートですね!(^^)


>時計ですが、前回 7800年にジャンプした後、再設定し4日になりますが、2秒程度進むくらいで、正常です。但しノーマルクロックのままの状態です。

ということは、ノーマルクロックならばズレてないということで…
ツル様の状況が気になってまいります。(^^;


>そろそろ、オーバークロックして様子を見てみようかと...

もしかしたら、ズレが発生するかもしれませんので、
オーバークロック前後での時計確認よろしくお願いします。(^^)

Re: Re:OS Ver 同じです + 時間経過報告

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。


> ちなみに、うちのCG50のひとつは
> 03.10.0212
> にアップデートしてありますが、何も変化なしです。(^^;

さすが、そのための2台持ちなんですね!

私もいずれもう一台とは思っていますが、Amazon USA で安くなるのを狙って待っているところです。

ちなみに、fx-JP900 と fx-JP500 (会社用)を持っていますが、fx-JP700 が¥2,600 と激安だったので思わずAmazonでポチッとしてしまったという....このあたりはコレクションでしかないのですが...

時計ですが、前回 7800年にジャンプした後、再設定し4日になりますが、2秒程度進むくらいで、正常です。但しノーマルクロックのままの状態です。

そろそろ、オーバークロックして様子を見てみようかと...


Re:OS Ver 同じです + 時間経過報告

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>fx-cg50購入時内蔵OS      OS ver 03.10.0202 ←ここ

現在のCG50の最新バージョンは、
03.10.0212
となってますが、
オランダの試験モード対応でのバージョンアップの模様なので、
当然?国内版では何もアナウンス無くて、
これは特に影響ないと思われます。(^^)

https://edu.casio.com/products/graphic/fxcg50/

ちなみに、うちのCG50のひとつは
03.10.0212
にアップデートしてありますが、何も変化なしです。(^^;



>fx-cg20-n 2018/01/25 THU 08:15:20 9秒遅れ 3日半
>fx-cg50-n 2018/01/25 THU 08:19:55 4秒遅れ 1日+9.5時間

ご報告ありがとうございます!
二日目も時計問題は問題無しですね。


ところで、管理人様とツル様のCG50はどうでしょうか?
相変わらず、とんでもないズレ方してますでしょうか?

時間経過報告

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

条件抜け fx-cg20 →EVOLTA、fx-cg50→アルカリです。

fx-cg20-n 2018/01/25 THU 08:15:20 9秒遅れ 3日半
fx-cg50-n 2018/01/25 THU 08:19:55 4秒遅れ 1日+9.5時間

連絡終わり

これからもよろしくお願いします

No title

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

ツル様
>ツルのマッシーンも購入時にご報告済みですが、同じNo.です。
過去ログ見落としていました。
申し訳ありません。

気をつけます。

これからもよろしくお願いします。
おやすみなさい

OS Ver 同じです

管理人様、sentaro様,iron2様、皆様

iron2様
>fx-cg50購入時内蔵OS      OS ver 03.10.0202 ←ここ

ツルのマッシーンも購入時にご報告済みですが、同じNo.です。

re:時計経過報告等

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

sentaro様
fx-cg20/cg50用ダウンロード去年 OS ver 03.10.0200
fx-cg50購入時内蔵OS      OS ver 03.10.0202 ←ここ

あえてマイナーアップデートしてある理由がわからない
あ・や・し・く・ないですか?

これからもよろしくお願いします

Re:Cc Linker USB Dongle (感動の嵐!) + 時計経過報告等

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>カシオから販売されてもおかしくない位置付けの品ですね。カシオが販売したら1万円でしょうか?

fx-5800P発売時に純正のPCリンクケーブルが出ていても良さそうなのですが、
測量関連で内部にソフトを組み込んで販売という形がありましたから、
プロテクト的に敢えて出さなかったのかもしれません。
もし出てたとしても、電卓本体と同じ実売価格になってそうですね。(^^;


>過去にツルはマジで製品化を考えていました。(笑)

えええ?!そうだったんですか?(笑)



管理人様、
私はCcLinker初期よりハードを制作してリンクのお世話になっていたのですが自己完結状態でしたので、
今回、管理人様がCcLinkerユーザーになられたら、fx-5800P用の公開プログラムがすごく便利になりそうですね。(^^)



iron2様、
>まずは時計の報告から
>fx-cg20-n OS ver 03.10.0200 , 2018/01/24 WED 18:34:50 8秒遅れ 約2日半
>fx-cg50-n OS ver 03.10.0202 , 2018/01/24 WED 18:38:35 3秒遅れ 約17時間半

ご報告ありがとうございます!
今日のところも順調ですね。
こうなってくると、管理人様とツル様のCG50で大きくズレるというのが相変わらず謎のままなのですが、
電池交換時にズレるのはあり得るとしても、通常使用時で大きくズレるのは
ソフト的な問題なのかハード的な問題なのか、ますます謎が深まります。


>IEEE754
>倍精度実数

プラ子は指数が499まで行くんですよね。
そういえば、CASIOもClassPadは±499までいくみたいです。
Nspireも±499までなので、海外ではハイエンドグラフ電卓は±499までが標準仕様っぽいですが、
そうなるとCG50は関数電卓の親玉みたいな感じですね。(^^;


>後、職人にはほど遠いのですが、CBasicの勉強にはMNDLVWは
>飽きないなと感じて足掻いてるところです。

C.Basicの勉強って、なんか恐縮すぎるお言葉ですが、
今後もより分かりやすく使いやすいC.Basicを目指してまいります。

これからもよろしくお願いします。(^^)

Re:Re: Cc Linker USB Dongle

管理人様  お世話になっております。

Cc Linker USB Dongle の件、了解です。製品化とは違いますね。
過去にツルはマジで製品化を考えていました。(笑)
回路からして自作ではないし、すぐに諦めました(笑)
いやぁ、ドングルがまさかどんぐりと同じ重さだから名付けられたとは予想外でした。 (笑)

時計経過報告等

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

まずは時計の報告から
fx-cg20-n OS ver 03.10.0200 , 2018/01/24 WED 18:34:50 8秒遅れ 約2日半
fx-cg50-n OS ver 03.10.0202 , 2018/01/24 WED 18:38:35 3秒遅れ 約17時間半

cg50の試験モード(プラ子にもあります)とは試験中、
プログラムや記憶を使わせないモードで
その無効時間を設定できるという事です。

IEEE754
倍精度実数
およそ±5.0×10E324 ~ ±1.8×10E308
(最小±4.94065645841246544×10E324 ~ 最大±1.79769313486231570×10E308)
古のFORTRAN REAL*4 有効桁7桁、REAL*8 有効桁15桁
8桁目、16桁目はたしか誤差を含んでいたはずだった気がする
ちなみにVB、C#等はDouble 15桁のはずなのに14桁精度しかない。

階乗 Factorial
プラ子
170! 7.2574E306
171! 1.2410E309
200! 7.8866E374
251! 8.1145E494
252! 2.0448E497
253! 5.1735E499
254! 1.0000E500 →以降同じ

連絡まで

後、職人にはほど遠いのですが、CBasicの勉強にはMNDLVWは
飽きないなと感じて足掻いてるところです。

これからもよろしくお願いします。

Re: Cc Linker USB Dongle (感動の嵐!)

ツル様、sentaro様、iron2様、皆様


管理人のやすです。

ドングルとは?
https://ja.wikipedia.org/wiki/%E3%83%89%E3%83%B3%E3%82%B0%E3%83%AB


> 以前、sentaro様からご紹介のあったものの製品化なのですね!これは物凄い発表ですね。

製品として考えるなら、人件費だけで2千円は軽く超えるので、実費のみは好意でのお裾分けでしかあり得ません。

つまり、製品化というのではなくて、趣味の範囲でチョット多めに作って見たから、有償でお分けしても良い、というスタンス、あくまで好意。

なので、お裾分けのお礼にせめて実費だけでもカンパするといった感覚ですね。

USBドングルは、そんな気持ちで接しないと、行き違いの元になる恐れがあるので、敢えてコメント致しました。

Cc Linker USB Dongle (感動の嵐!)

管理人様、sentaro様、iron2様、皆様

管理人様、sentaro様
ご説明ありがとうございました!  感動しました!
ドングルって用語を初めて知りました。以前、sentaro様からご紹介のあったものの製品化なのですね!これは物凄い発表ですね。
カシオから販売されてもおかしくない位置付けの品ですね。カシオが販売したら1万円でしょうか?
(5行説明にも感動しました)

Re:Re:Re:Re:Cc Linker USB Dongle Version

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
制作過程が必要なくて完成品で実費\2000程度ってことなので、一から作成するよりはかなりお得ですね。(^^)


ツル様、
>これは、つまり、ツルが感動するだろう言葉に翻訳すると、どういうことですか? どなたか、コメント欄5行以内で(笑)ご説明願えますか?

う~ん、5行以内ですか…(笑)
このドングルとPCがあれば、PC上でfx-5800Pプログラムの編集も出来て、
さらに隠しキャラまで使えるのでMASIOのfx-5800P版が一気にバージョンアップ!?
プログラムの公開がファイルで出来るようになり
fx-5800Pの世界がより身近にお手軽に!
メーカー純正で発売されていても不思議ではないようなドングルです!
-----5行終わり(笑)

Re: Re:Cc Linker USB Dongle Version

ツル様


> これは、つまり、ツルが感動するだろう言葉に翻訳すると、どういうことですか? どなたか、コメント欄5行以内で(笑)ご説明願えますか?

感動されるかどうかは知りませんが、sentaro様の下記コメントから、
Takumako様のサイトでCcLinkerのUSBドングルバージョンが出るようです。(^^)
http://www.geocities.co.jp/SiliconValley/1946/index.html

サイトを見て回れば、分かると思いますよ。
http://www.geocities.co.jp/SiliconValley/1946/sub15.html

きっかり5行(^^;

Re:Cc Linker USB Dongle Version

管理人様、sentaro様、iron2様、皆様

>・・・USB Dongle Version 試作品の・・・

これは、つまり、ツルが感動するだろう言葉に翻訳すると、どういうことですか? どなたか、コメント欄5行以内で(笑)ご説明願えますか?
(ちなみに、CG50が主力となった今でも、5800Pへの愛情は消えていません)

Cc Linker USB Dongle Version

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。

ROM Writerを持っていないので、半ば諦めていたのですが、ナント USB Dongle Version 試作品の頒布の話があったのですね!

これは、是非一口乗らせて頂きたいと思うわけです。希望の意思表明をしたいと思っています。

Re:倍精度、CG20/50、設定情報保存、オーバーフローエラー、時計、MASIO検索上位

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>が、プロ電の世界は、こんなに脳への刺激が良くて楽しくて創造性豊かな世界なのに・・・もっと日本で盛り上がらないかなぁ・・・

ポケコン時代を知っていると、ちょっと寂しい感じはありますけど、
だからこそ、

>となれば、管理人様のこちらのブログが、プロ電もりあげ隊の旗艦となって牽引していくしかないでしょう! なんて。

ですね!(^^)


>ともかく、MASIOを初めて作ってから、現在ではコマンド群や表示動作も大きく進化しましたので、ツル自身 作るのがとても楽しみです。

最初のMASIOシリーズはモノクロのFX版で純正CasioBasicで動作するのが基本でしたので、
今、C.Basicでどんどん進化されているツル様がリメイクされる新MASIOシリーズは超楽しみです。


>今、片手間にグラフィックスなどいろいろといじっていますが、それらは全部
>新MASIO制作の糧になると思っています。
>引き続きご支援をよろしくお願いいたします。

はい!
分かりにくい仕様満載のC.Basicなので、精一杯サポートさせていただきます。(^^)



iron2様、
>fx-cg50-n 23時すぎに時計合わせて
>6:55分ぐらいで約1.5~2秒遅れかな?
>fx-cg20-n 一昨日の夜20時ぐらいに合わせてから
>6秒遅れぐらい

今のところ、良い感じで推移してますね。(^^)
引き続き時間調査お願いいたします。



管理人様、
>C.Basicでの扱いですが、
>符号1bit+指数部11bit+仮数部52bit で、
>表示値で、(-1)^(符号) x 1.(仮数部) x 2^(指数部 - 1023)
>という理解でOKでしょうか?

C.Basicの倍精度実数はFX版のSDKのIEEE754準拠倍精度仕様に基いたものなので、それで合っていると思います。(^^)
C.Basic内では実数を独自のビット列として扱う仕様はないので、このあたりは実数演算ライブラリの仕様に左右されてますね。


>また、指数部は大体 ±310 と教えて貰った正体は、±308 だという理解で良いでしょうか?

はい、アバウトな回答になってしまってすみません。(^^;


>バックアップ
>iron2様のお考え次第ですが、私はサクッと消去する前に、取り敢えず購入状態のバックアップをしています。

最初のCG50CG50ではCG10/20と全く同じ画像が入ってるなぁって思ったらそのまま削除してしまいました。(^^;
2台めは最初に購入状態のバックアップを取りました。


>CG20とCG50の違い

あとは、メモリが2MBから8MBに4倍に増えていて、
C.Basicでは増えた6MB分を隠しメモリ(Hidden RAM)としてプログラム領域や行列領域として利用できる。
くらいでしょうか。(^^)


>C.Basic設定情報の保存
>"C.Basicの設定情報を設定後、一旦電源オフにしてレジューム領域に保存する作業が必要。"
>これは、設定情報保存機能が追加されたことによるので、マニュアルに記載した方が良さそうですね。

んと、
これはC.Basicに限らず、電卓での設定すべてに関わるレジューム保存の問題で、
電源ONから電源OFFの間にシステムエラー等が起きなければ、電源OFFで自動的にレジューム領域に保存されるので特別気にすることは無いところなのですが、
C.Basicの場合は使っているうちにバグ等でリスタートになる場合も多々あるので、(^^;
設定情報を飛ばさないためには、一旦電源OFFで設定保存するのはC.Basicの使い方としては定石になりそうです。

このレジューム機能の裏技的な使い方としては、
新たに設定した設定を、電源ONする以前の設定に戻したくなった場合は、背面リスタートすることで、強制的に以前の設定に戻すことも出来ます。


>オーバーフローエラー
>FX版とCG版で共に miniSDKを使っているものと思っていましたが、sprintf は違うものを利用されているのですね。

はい、
miniSDKはFX版のSDKライブラリをそのまま使用しているはずなのですが、なぜかsprintfがちょっと変な状況なので、別のsprintfとの合せ技になっています。
そのためにFX版とは若干違う動作になっているところがあるということですね。


>なるほど、貴重な内部情報、ありがとうございます。VC++ / C# でよく使う Catch ~ Throw などのようなエラー検知&対処の手段が提供されていないので、エラーでプログラムが中断されるより良いと、私は個人的に思います。


>学生時代バンドを組んで遊んでいましたが、その時演奏をとちっても絶対に止まらず、全体の流れを最優先することが鉄則になっていました。それと同じものを私は自分のプログラムには求める癖があります。そんな個人的趣味からみて、今の仕様が好きです! ちなみに私はキーボード担当(生ピアノ、電子ピアノ、Fender Rhodes、シンセ)でした(^^;

現在の仕様を気に入って頂けてよかったです。(^^)
バンドは、友人がバンドやってましたけど、私は絵と同じく音楽も苦手だったのでもっぱら聞く専門でした。(^^;

で、現在のC.Basicでのオーバーフロー仕様をまとめると、
加減乗除ではゼロ除算以外のオーバーフローエラーは検出しませんが、関数演算等では引数チェックと結果が範囲外の場合は純正同様のMath ERRORになるようになっています。


>fx-5800Pで認識したCasio Basicを操る楽しさから始まり、

fx-5800Pといえば、
Takumako様のサイトでCcLinkerのUSBドングルバージョンが出るようです。(^^)
http://www.geocities.co.jp/SiliconValley/1946/index.html

Re:Re: Re:Google で MASIOが上位入り

>管理人様、sentaro様、iron2様、皆様

管理人様、嬉しいコメントをありがとうございました。
嬉しいと言いますのは、個性の違いをプラス思考でお考えなことと、ゆっくりとではあっても増えている現状を良しとされ、管理人様がそれを喜んでいらっしゃることが嬉しいです。
たぶんツルは、GoogleでMASIOが上位入りということの凄さを 何も分かっていないのでしょう(笑)
はっきり申し上げますと、例え読者が1万人でも一人でも、ツルの取り組む姿勢には何も影響が無いということです。だって、自分が楽しいのですから。
ーわが胸の 熱き想いに比ぶれば 煙は薄き桜島ー でございます。

Re: Re:Google で MASIOが上位入り

ツル様、sentaro様、iron2様、皆様


管理人のやすです。


> プロ電の世界は、こんなに脳への刺激が良くて楽しくて創造性豊かな世界なのに・・・もっと日本で盛り上がらないかなぁ・・・

fx-5800Pで認識したCasio Basicを操る楽しさから始まり、Casio Basic や C.Basic への熱い想いが、当ブログの原動力ですが、Casio Basic使いこなしを伝えたいという私一人の場合によっては空回りするだけでなく、C.Basic という素晴らしい素材を提供頂いたり、ゲームとして完成度の高い MASIO のような作品や、不思議な模様の描画の高速化をひたすら追い求める職人の登場など、もう楽しい限りです。

それぞれ考えること、好み、目的や目標が違っていることが肝心なんだと思います。


アクセス解析の結果は、黙って読んで頂いている方が確実にいらっしゃることを教えてくれます。
この記事へのコメントがどんどん増えている陰で、純正Casio Basic に関する記事へのアクセスが確実に増えているのです。
それだけでなく、この記事やC.Basic関連記事へのアクセスも毎月増加傾向です。

つまり、C.Basic を含めた Casio Basic 全般、言い換えればプログラム電卓でのプログラミングへの注目や関心は、確実に増えているという事実があるんですよ。

趣味の世界ですから、ゆっくりでも増えていることは良いことだと思います。



> うーん、これは日本の過去の教育政策の失敗を痛感するなぁ。
> となれば、管理人様のこちらのブログが、プロ電もりあげ隊の旗艦となって牽引していくしかないでしょう! なんて。

一気呵成に盛り上げるのではなく、じわじわ...と楽しみながら盛り上げるというのが良いではありませんか?


> ともかく、MASIOを初めて作ってから、現在ではコマンド群や表示動作も大きく進化しましたので、ツル自身 作るのがとても楽しみです。
> 今、片手間にグラフィックスなどいろいろといじっていますが、それらは全部
> 新MASIO制作の糧になると思っています。

はい、出来る範囲でお手伝いしたいです。


倍精度、CG20/50、設定情報保存、オーバーフローエラー、時計、MASIO検索上位

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。


倍精度(実数)の仕様

C.Basicでの扱いですが、

符号1bit+指数部11bit+仮数部52bit で、
表示値で、(-1)^(符号) x 1.(仮数部) x 2^(指数部 - 1023)

という理解でOKでしょうか?

すると、符号抜き(絶対値)で扱える値は 2^(-1022) ~ 2^(+1024) なので、
正確には、10進数では 10^(-308) ~ 10^(+308)、

扱える桁数は、2進数で 52+1 の53桁、10進数だとおよそ15~16桁、

...となりますが、実際はどういう扱いになっていますでしょうか?

また、指数部は大体 ±310 と教えて貰った正体は、±308 だという理解で良いでしょうか?


バックアップ

iron2様のお考え次第ですが、私はサクッと消去する前に、取り敢えず購入状態のバックアップをしています。



CG20とCG50の違い

CG50の燃費が倍くらいよい。
CG50のファイルのアクセススピードが倍くらい速い

一方、CG20は電源OFFで忘却しないのが一番の取り柄

こんなところでしょうか?
他に何かありましたっけ?



C.Basic設定情報の保存

"C.Basicの設定情報を設定後、一旦電源オフにしてレジューム領域に保存する作業が必要。"

これは、設定情報保存機能が追加されたことによるので、マニュアルに記載した方が良さそうですね。



オーバーフローエラー

> 表示範囲外になった時の*********E+00表示は外部より導入しているsprintfの仕様みたいです。
> FX版では+++++++++表示になるのでちょこっと違いますね。(^^;

FX版とCG版で共に miniSDKを使っているものと思っていましたが、sprintf は違うものを利用されているのですね。


> このエラーは本来は純正同様にオーバーフローエラーにすべきところだと思いますが、純正の指数2桁は余裕で超えていますし、エラー判定をすると速度に影響してくるので省略しています。(^^;

なるほど、貴重な内部情報、ありがとうございます。VC++ / C# でよく使う Catch ~ Throw などのようなエラー検知&対処の手段が提供されていないので、エラーでプログラムが中断されるより良いと、私は個人的に思います。

学生時代バンドを組んで遊んでいましたが、その時演奏をとちっても絶対に止まらず、全体の流れを最優先することが鉄則になっていました。それと同じものを私は自分のプログラムには求める癖があります。そんな個人的趣味からみて、今の仕様が好きです! ちなみに私はキーボード担当(生ピアノ、電子ピアノ、Fender Rhodes、シンセ)でした(^^;



C.Basic 時計リセット条件

> 裏面リスタートだけだと時計は全く変わりがないのですが、
> 電池交換だと半々以上の確率で時計リセットになってるような気がします。

そうですか。
但し、タイムマシン効果が出ているのは、私だけって感じですね。



Viva MASIO!

検索上位に来る事は、純粋に喜んでいます!

ツル様は、しょせん市場が小さいと自虐的表現で、謙遜なさっていますが、小さい世界ながらも We are the top! なのは気持ち良いですよね!


cg50-n 時計の8時間後

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

fx-cg50-n 23時すぎに時計合わせて
6:55分ぐらいで約1.5~2秒遅れかな?

fx-cg20-n 一昨日の夜20時ぐらいに合わせてから
6秒遅れぐらい

同じくらいの精度の遅れに思う。

取り急ぎ連絡まで

これからもよろしくお願いします。出かけます

明日以降の時計は私もわからない

管理人様、sentaro様、ツル様、CGユーザーの皆様

今しがた帰宅したiron2です。

カフェでは時計リセット確認後慌てて電車に乗ったので
いま時計を合わせました。

明日確認します。(もうすぐ明日ですが(笑))

ツル様、
MASIOおめでとうございます!

管理人様、
>しかも管理人様のe-Gadgetが1~3位まで独占!!!
おめでとうございます!

これからもよろしくお願いします

Re:Google で MASIOが上位入り

管理人様、sentaro様、iron2様、皆様

>C.Basic版が楽しみです!

ん・・・MASIOが上位に入ることで、市場の狭さ小ささを実感しちゃう冷めたツルでした。
が、プロ電の世界は、こんなに脳への刺激が良くて楽しくて創造性豊かな世界なのに・・・もっと日本で盛り上がらないかなぁ・・・
うーん、これは日本の過去の教育政策の失敗を痛感するなぁ。
となれば、管理人様のこちらのブログが、プロ電もりあげ隊の旗艦となって牽引していくしかないでしょう! なんて。

ともかく、MASIOを初めて作ってから、現在ではコマンド群や表示動作も大きく進化しましたので、ツル自身 作るのがとても楽しみです。
今、片手間にグラフィックスなどいろいろといじっていますが、それらは全部
新MASIO制作の糧になると思っています。
引き続きご支援をよろしくお願いいたします。

Re:我慢できずに開封 + Re: C.Basic for CG v0.34α (セットアップ設定+Retrunバグ修正版)差し替えです。 + Google で MASIOが上位入り

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>週末まで我慢できず開封してしまいました。
>fx-CG50-Nです。

早速の開封レポートありがとうございます!
なんかこうすごい真新しい新鮮な感じがして良いですね。(^^)

内蔵時計も正常動作しているようで一安心です。
明日以降、狂うかどうかが注目ですね。


>驚いた点、fx-cg20nとほぼ同じg3mファイルを転送したのに
>フリーメモリが5.8MB fx-cg20-nは3.7MB→Lua、3D等のフリーが
>入ってるせいかも。

純正の画像データ等は同じなので、後はアドインの容量差でしょうか。
純正画像はストレージメモリを圧迫しているのでサクッと消去しておくのがいいかもしれません。


>おおむね、互角で同じ感覚で使える。
>色の鮮やかさはfx-cg50-nが上ぽい。

最高到達速度は似たような感じですよね。
ただ、燃費が半分なので電池は長持ちです。(^^)
あと、ファイルのアクセススピードが倍くらい速くなっているので、
何をするにもサクサクなのがCG50ですね。
CG20は電源OFFで忘却しないのが一番の取り柄です。


>正しいのかも知れないが気になった点
>リセットなどするとCBasic設定のREF DD:Graph 3/128に戻る
>fx-cg20-nは戻らない。(レジュームの差かも)

これはストレージメモリのレジューム領域に、C.Basicの設定情報がまだ保存されてない結果だと思われます。
設定後、一旦電源OFFにしてレジューム領域に保存してからであればリセットしても復帰します。(^^)




ツル様、
>ツルは今、CG50でのグラフィックス表示をいろいろいじっていますが、
>黄色の発色が悪すぎて少し悲しいです。そんな悲しさを抑えてくれるのが、

発色だけはどうにも仕方ないですね。
後継機に高色純度の液晶を採用していただけるように、
グラフィックスアプリケーションを連発するしか無いでしょうか。(^^;




管理人様、
早速のv34α対応ありがとうございます!

>早速、再帰コードのFACTR を実行したところ、170!まで計算可 (7.xxxxxxE+306) でした。
>純正では 69! が限度 (仕様上指数99以下) なので、扱える最大値がかなり違いますね。
>C.Basic の仕様上、指数3桁ということで良いのでしょうか?

はい、倍精度の指数は3桁、±310くらいまでいけます。


>さらに、C.Basic で 171! を実行すると、エラーにならず *********E+00 と表示されました。この表示は初めて見ました。
>エラーにならない所はポイント高いと思います。

表示範囲外になった時の*********E+00表示は外部より導入しているsprintfの仕様みたいです。
FX版では+++++++++表示になるのでちょこっと違いますね。(^^;

ちなみに…ですが、
このエラーは本来は純正同様にオーバーフローエラーにすべきところだと思いますが、純正の指数2桁は余裕で超えていますし、エラー判定をすると速度に影響してくるので省略しています。(^^;


>sentaro様のところでは、確か電池交換しても時計はリセットされなかったと思います。

んと、今試したら時計リセットになりました。(^^;
裏面リスタートだけだと時計は全く変わりがないのですが、
電池交換だと半々以上の確率で時計リセットになってるような気がします。


>Google で "プログラム電卓" "ゲーム" で検索すると、
>「e-Gadget - プログラム関数電卓 ゲーム ~ マスターマインド 」
>が上位(2位)にランクされました!

今確認しました!
これはすごいです!!
しかも管理人様のe-Gadgetが1~3位まで独占!!!

CG専用版MASIOが楽しみですね!(^^)

時計リセットの件

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2上等兵(ほんとは二等兵)です。

帰宅途中のカフェより

管理人様、
>sentaro様のところでは、確か電池交換しても時計はリセットされなかったと思います。
何度電池取り外ししてもリセットします。
2010/01/01 00:00:00 →fx-cg50-n

この動作はfx-cg20-nと全く同じです。

この-n版は海外初期ロットの情報を加味した日本修正Bios版では
と思ったり。違うかもですが。

あと本当に薄っぺらいクィックマニュアルに試験モードなるものが
あり、設定すると時間設定できるようです。
この機能が干渉してるんじゃないかな?と思ったり想像です。

買ったヨドバシの店員さんの話では週1で売れているそうです。
そうすると初期ロット1万個は日本全国だとさばけていると思うので
さらに修正されてたりと想像しています。

想像妄想だからけで、具体性に欠ける報告で申し訳ありません。

これからもよろしくお願いします。帰宅します。

Google で MASIOが上位入り

ツル様、iron2様、sentaro様、CGユーザーの皆様


管理人にやすです。

Google で "プログラム電卓" "ゲーム" で検索すると、

「e-Gadget - プログラム関数電卓 ゲーム ~ マスターマインド 」

が上位(2位)にランクされました!

以前から、この記事(プログラムライブラリ)へのアクセスが多いと書いていましたが、それが裏付けられました。

C.Basic版が楽しみです!


Re: 我慢できずに開封

iron2様、sentaro様、ツル様、CGユーザーの皆様

管理人のやすです。

1つ気になる点が...

> USBパワーOFF 
> ①裏のリセットボタン 電卓初期設定
>  CBasic起動→時計 狂い無し
> ②電池交換→電卓初期設定
>  CBasic起動→時計 2010/01/01 00:00:00

sentaro様のところでは、確か電池交換しても時計はリセットされなかったと思います。

私のところでは、リセットされないことが多いのですが、リセットされる時は7800年になってリセットされたことがあります (修正バージョン後1度あります)。




>
> Ptune3 F5設定
> 上記の条件で同じ結果
>
> 正しいのかも知れないが気になった点
> リセットなどするとCBasic設定のREF DD:Graph 3/128に戻る
> fx-cg20-nは戻らない。(レジュームの差かも)
>
> 驚いた点、fx-cg20nとほぼ同じg3mファイルを転送したのに
> フリーメモリが5.8MB fx-cg20-nは3.7MB→Lua、3D等のフリーが
> 入ってるせいかも。
>
> fx-cg20-n 250MHz fx-cg50-n 191.69MHz
> MONTECHR 500回 cg20-n 1.33s cg50-n 2.01s
> SHIDACGH cg20-n 4.36s cg50-n 4.63s
> MNDLVW SearhImage cg20-n 4.71s cg50-n 4.77s
>
> おおむね、互角で同じ感覚で使える。
> 色の鮮やかさはfx-cg50-nが上ぽい。
>
> 以上、待ちきれないおじさんの報告でした。
>
> これからもよろしくお願いします。

Re: C.Basic for CG v0.34α (セットアップ設定+Retrunバグ修正版)差し替えです。

sentaro様、ツル様、iron2様、CGユーザーの皆様


管理人のやすです。

C,Basic for CG v0.34α (セットアップ設定+Retrunバグ修正版)を頂きました。

早速、再帰コードのFACTR を実行したところ、170!まで計算可 (7.xxxxxxE+306) でした。
純正では 69! が限度 (仕様上指数99以下) なので、扱える最大値がかなり違いますね。
C.Basic の仕様上、指数3桁ということで良いのでしょうか?
"ちなみに" お役立ち情報、お待ちしております。


さらに、C.Basic で 171! を実行すると、エラーにならず *********E+00 と表示されました。この表示は初めて見ました。
エラーにならない所はポイント高いと思います。

Re:我慢できずに開封

管理人様、sentaro様、iron2様、皆様

iron2様
>皆様と戦友になったiron2です
はっはっは  ツルは丁度、勝新の「兵隊やくざ」をみ観ているところでした!
iron2上等兵殿! なぜ開封を我慢できなかったのか!   なんて。
しかし・・・ CG20 速いですね。

ツルは今、CG50でのグラフィックス表示をいろいろいじっていますが、
黄色の発色が悪すぎて少し悲しいです。そんな悲しさを抑えてくれるのが、
兵隊やくざや七人の侍のような、白黒映画です(笑)

我慢できずに開封追記

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

追記です。
標準アプリのMemory Manager
F1 Main Memory gc20 45520 Byte Free cg50 58692 Byte Free
F2 Storage Memory cg20 3862528 Byte Free cg50 5939200 Byte Free

でした。

これからもよろしくお願いします。

我慢できずに開封

管理人様sentaro様、ツル様、CGユーザーの皆様

皆様と戦友になったiron2です

週末まで我慢できず開封してしまいました。
fx-CG50-Nです。

箱デカい。白い本体カーバーで覆われていたのでデカい。
JP-900を二回り大きくした感じがした。
しばらくしたら慣れてきた。

全体的にJP-900より大きいのでキーは見やすい。
キー配置がfx-cg20-nと同じですぐいじれる。
ファンクションキーが金属色で見づらいかな。
(ここはfx-cg20のほうがF1-F6が黒地に白で目に優しいと感じた。)
キータッチはfx-cg20より深い気がした。

セットアップ設定同じで、液晶は色温度が高く青白ぽい。
私のfx-cg20-nと同じ感じがする。
すぐバックライトが消えるので省エネ。

Ptune3 とCBasic034a最新版を入れた。
ケーブルはfx-cg20-nのもので出来た。

USBパワーのまま
CBasicの時計を合わせて
①裏のリセットボタン 電卓初期設定
 CBasic起動→時計 狂い無し
②電池交換→電卓初期設定
 CBasic起動→時計 狂い無し

USBパワーOFF 
①裏のリセットボタン 電卓初期設定
 CBasic起動→時計 狂い無し
②電池交換→電卓初期設定
 CBasic起動→時計 2010/01/01 00:00:00

Ptune3 F5設定
上記の条件で同じ結果

正しいのかも知れないが気になった点
リセットなどするとCBasic設定のREF DD:Graph 3/128に戻る
fx-cg20-nは戻らない。(レジュームの差かも)

驚いた点、fx-cg20nとほぼ同じg3mファイルを転送したのに
フリーメモリが5.8MB fx-cg20-nは3.7MB→Lua、3D等のフリーが
入ってるせいかも。

fx-cg20-n 250MHz fx-cg50-n 191.69MHz
MONTECHR 500回 cg20-n 1.33s cg50-n 2.01s
SHIDACGH cg20-n 4.36s cg50-n 4.63s
MNDLVW SearhImage cg20-n 4.71s cg50-n 4.77s

おおむね、互角で同じ感覚で使える。
色の鮮やかさはfx-cg50-nが上ぽい。

以上、待ちきれないおじさんの報告でした。

これからもよろしくお願いします。

C.Basic for CG v0.34α (セットアップ設定+Retrunバグ修正版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

返り値を返すRetrunのバグですが、一応修正できましたので差し替えアップデートです。

C.Basic for CG v0.34α (セットアップ設定+Retrunバグ修正版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG034.zip
・Prog~Returnにおいて、Returnコマンドでの返り値が無効になる不具合を修正しました。


今回のバグは、次のサンプルプログラムで、
メインプログラム
FACTR
----------------
"N="?N
Prog "FACTRSUB",N
Ans
----------------

サブプログラム
FACTRSUB
----------------
Local a,b
a=1=>Return 1
Prog "FACTRSUB",a-1->b
return a*b
----------------
この再帰的な階乗プログラムが正しく結果を返さないことでした。

今回のアップデートにより正常に計算できます。(^^)

低μ 雑談失礼

管理人様

プログラムに関係のない雑談で恐縮ですが、
>4駆で散々遊んでいましたので不整地や低μ雪道はお手物のです。
車の雑誌などではたまに耳にする低μですが、このようなコメント欄で耳にするのは驚きです。一般のタクシー運転手の運転さえ信頼していないツルが、運転を任せられる人は、低μを口にする人です(笑)
2年ほど前までは、毎月5000km位走っていました。その中には雪道も多く、日頃からツルは低μを意識して走っています。なので砂利道の怖さも知っています。
ただ、低μは遊べる場所でなら楽しい走りができますよね。
今、広い地域で大雪で困っているので、話題としては恐縮ではありますが、ツルは圧雪路面では急ブレーキでの制動確認もしながらですが、180度回転させての停車も楽しんだりします。(無論、周囲に十分気を付けています)
タイヤを新調するときは、車本体を選ぶ時よりもウキウキします。
トレッドパターンを見つめて、そのタイヤの排水性を水になった気持ちで頭で思考するときがとても楽しいと感じます。かつて、グッドイヤー社のタイヤで、2本をくっつけたような断面のタイヤが出た際、排水性の高さに確信を持ち購入しました。
すると、雨の高速で、確実に限界速度が+20キロされました。この排水性の効果は、水での低μ路では安全マージンの大きさに直結しますので、ツルはタイヤ選びには重点をおいています。乾燥路面はどんな車でもタイヤでも大差ないと思いますから。(燃費や静粛性は別問題として)
全ては安全のためです。  ー安全は 全てに優先するー
お気をつけてお帰り下さい

Re:電卓プチコレクター + Re: Re:fx-5800PN + ポケコンの思い出 + 遅ればせながらfx-cg50オーナーになりました

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>EL-509Tお使いですか。ツルはEL-509Mも現役ですが、CASIOの旧式ですが

EL-509Tは漢字表示が出来るようになったのでつい買ってしまいました。
ドットが荒いですが、それが逆にポケコンっぽくて良かったりしてます。(^^;


>fx-991MSが使い易くて、ついつい色違いのホワイトVerまで揃えたというプチコレクターです(笑)
>今、目の前に積んでいる関数電卓を数えたら18台ありました。

うわ、色違いバージョンまで揃えるとはかなり本格的なプチコレクションですよね。(^^)
電卓は油断するとすぐに増殖するので、次はプロ電と決めています。(^^;



管理人様、
>最近、仕事でもプライベートでもほぼ CG50のみを使っています。
>但しCG50でプログラミングする時の計算に 5800P が出動しています。

私も全く同じですね。(^^)
C.Basicのバグ出しも兼ねると普段使いもほぼCG50になってしまいます。


>ところで最近の for CG の改善や修正は、for FX に反映なさっていますでしょうか?

んと、現在のCG版の改善点を反映したバージョンアップ寸前で、
Prog~Returnでのバグがちょっと見つかってしまったので、
それが修正でき次第アップしたいと思います。(^^)

Re: Re:fx-5800PN + ポケコンの思い出 + 遅ればせながらfx-cg50オーナーになりました

senato様、ツル様、iron2様、CGユーザーの皆様


管理人のやすです。


いやぁ、今日は大変でした。2014年の大雪ほどではないですが、東京は本当に雪に弱いですね。


ツル様、

無事、出生先のホテルにチェックインしました!
お気遣い、ありがとうございます。

社用車での出張ですが、途中で急遽レンタカー屋に駆け込み4駆が借りられたので、雪道を安心して走ってきました。スタッドレスでもFFよりは4駆が断然安心です。私のアイコンでお分かりのように、4駆で散々遊んでいましたので不整地や低μ雪道はお手物のです。


iron2様、

CG50デビュー、おめでとうございます。
やはり、欲しくなる機種ですよね!


sentaro様、

最近、仕事でもプライベートでもほぼ CG50のみを使っています。
但しCG50でプログラミングする時の計算に 5800P が出動しています。
会社に常備している JP500 の出番が殆ど無くなってしまっています。


ところで最近の for CG の改善や修正は、for FX に反映なさっていますでしょうか?

電卓プチコレクター

sentaro様

>その流れでJP900は休眠中で、SHARPのEL-509Tがそこのポジションに代替わりしてたりします。(^^;

あ、JP900お休みなんですね・・・
確かに、5800のように復帰してくれるのは助かりますよね。
EL-509Tお使いですか。ツルはEL-509Mも現役ですが、CASIOの旧式ですが
fx-991MSが使い易くて、ついつい色違いのホワイトVerまで揃えたというプチコレクターです(笑)
どんなときにも、関数電卓をポケットに入れていないことがないくらいです。
左手に持っていると落ち付くのです。病院に行ったほうがいいですね。
たぶん、何かの病気です(笑)
今、目の前に積んでいる関数電卓を数えたら18台ありました。
なんたって、型番が同じでもホワイトボディを見たら買ったりと、増えてしまいました。

管理人様 帰宅出来たかな?

Re:fx-5800PN + ポケコンの思い出 + 遅ればせながらfx-cg50オーナーになりました

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>この頃は、5800Pをめっきり触らなくなりました。あれほど毎日使っていて、3台もあるというのに・・・ ま、そもそも3台持っていたのは、プラ電を覚えたい子供達を集めての勉強会でもあったら使えるし・・・ということだけでした。

メインで使う電卓が変われば仕方ないところですね。
C.Basicが動作させられるfx-5800P後継機とか出たらもう狂喜乱舞ですが、その可能性はあまりなさそうで…(^^;

私はfx-5800Pはリンクが使えない時代にバックアップ目的で2台目を確保したのですが、
今は通常の計算と16進計算とかでしか使う機会が減ってしまいました。
ただ、電源OFFにして電源ONで元に戻るのが何より便利なので、電卓としてのポジションは確立してて手放せないところがあります。
その流れでJP900は休眠中で、SHARPのEL-509Tがそこのポジションに代替わりしてたりします。(^^;



iron2様、
>○にはまだ内緒ですがfx-cg50のオーナーになりました。
>週末が楽しみです。

おお!ついにiron2様もCG50オーナー様ですね。
おめでとうございます!(^^)

C.Basicが無事稼働しましたら、まずは時計チェックをお願いできれば幸いです。(^^;

Re:遅ればせながらfx-cg50オーナーになりました

iron2様

おめでとうございます!

他人事なのに なぜこんなに嬉しいのだろう!
もう皆さんは共に闘う戦友なのですね!

ツルのように落としたりぶつけたりコーヒーこぼしたりしないよう
可愛がってあげてください

遅ればせながらfx-cg50オーナーになりました

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

○にはまだ内緒ですがfx-cg50のオーナーになりました。
週末が楽しみです。

これからもよろしくお願いします。

fx-5800PN + ポケコンの思い出

管理人様、sentaro様、iron2様、皆様

iron2様
>はじめて買ったプログラム電卓がfx-5800PNでした。

このコメントで、ツルが使っていたSHARPのポケコンが瞼に浮かびました。
仕事で様々な条例や協会規定などを計算式に盛り込んで安全計算をしていましたが、プライベートではあの4行しかないが横長のLCDを駆使して、競馬レースを作ったり、MASIOと同じようなキラキラをしたりしていました。
とても懐かしいです。

ちなみに(笑)
fx-5800PN のNは、ブリスターパック形態での販売を指していることだった気がします。
この頃は、5800Pをめっきり触らなくなりました。あれほど毎日使っていて、3台もあるというのに・・・ ま、そもそも3台持っていたのは、プラ電を覚えたい子供達を集めての勉強会でもあったら使えるし・・・ということだけでした。

Re:Gosub J,a->c のbug取れました

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>かねてのBugのGosub J,a のテキスト処理されない件
>私のミス(bug)であることがわかりました。

なんとなんと、バグだったんですね。(^^;

Gosub/Progの再チェックでProgで
Return 数式
にバグが残ってそうなのに気がついたところだったのですが、

とにもかくにもバグ取りできて一件落着、良かったです。(^^)


>sentaro様にはBugの可能性有りかと
>いらぬ心配をかけ、すみませんでした。

いえいえ、Prog/Gosubの再チェックで潜んでいたバグ出しもできそうなので、
バルサンiron2様のバグ出し効果もてきめんです。
こちらこそ、ありがとうございます。(^^)


>最新のアップデートで電卓本体の設定に影響が出なく
>なりましたので、Rad必須のBall等は記述するように
>します。

C.Basicでは設定の自由度が増えましたが、
基本的にCasioBasicのプログラムではプログラム先頭での角度指定が必須ですので、
角度指定は記述しておいた方が良いですね。

で、遅ればせながら、BALLの黒背景描画試してみました。
黒い背景に浮かび上がる球体がなかなかに神秘的です。
_DispVramをループの内側に入れて描画過程がちょこっと見えるようにするにも一興ですね。
ツル様、iron2様、ありがとうございます。(^^)


ちなみに、(笑)
まだ非公開の隠し機能ですが、
PutDispDD/_DispVramの末尾にセミコロン";"を付けると、
PutDispDD/_DispVramがリフレッシュコントロールされるようになります。

Gosub J,a->c のbug取れました

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

sentaro様、
かねてのBugのGosub J,a のテキスト処理されない件
私のミス(bug)であることがわかりました。

直接記述では
   RGB(96,200,96)
Red Text 123,270,"O:Orijin",O

としていたところを
   2->a
Gosub J,a

Lbl J
local a
a=0=>Plot/Line-Color Black :a=1=>
PLot/Line-Color Cyan :a=2=>Plot/Lin
e-Color Red
  RGB(96,200,96) ←この位置が不味かった。
Red Text 123,270,"O:Orijin",O
Return

正解は
Lbl J
local a
  RGB(96,200,96) ←正解
a=0=>Plot/Line-Color Black :a=1=>
PLot/Line-Color Cyan :a=2=>Plot/Lin
e-Color Red
Text 123,270,"O:Orijin",O
Return

こうでした。
sentaro様にはBugの可能性有りかと
いらぬ心配をかけ、すみませんでした。

また、私の勉強不足なだけなのに
MATの丁寧な使い方説明いただき。。。クルクル♪が3倍に!
10%の低下ならコーディングでどうにでもなる性能ですね。
あとA[1]と書きたいのは配列を触ってるのがすぐわかるからです。
しかし、A1、A2は短いコードには最適ですね。

はじめて買ったプログラム電卓が
fx-5800PNでした。そのころはDimしまくりなのを
思い出しました。
ありがとうございました。

ツル様、
私もBALL、背景黒で見てみました。。。癒されます。
Radの件は私が発端だったんですね。。。すみませんでした。

三角法でビルの高さ等を図るときはDegですが
電気、電子、原子、光、ばね等の波を扱う問題の多くは
おおむねRadで計算することが多く。
私はRadが標準でした。
普段、どういう計算をメインにしてるかでDegかRadか
どちらがメインかは変わるような気がします。

最新のアップデートで電卓本体の設定に影響が出なく
なりましたので、Rad必須のBall等は記述するように
します。

いつも片手落ちで迷惑かけてますが
これからもよろしくお願いします。

Re:Re:時計狂い状況(中間報告)

管理人様、sentaro様、iron2様、皆様

sentaro様
>内部RTCが突然リセットされる病みたいな感じですよね。

はい、発生のパターンが不明なことから、USBケーブルが関係したノイズや、電池交換時にインパルスがトリガーになっているかな? 使用場所は高圧送電線付近か?電子レンジ作動時と重なっているかなど、あれこれ考えもしました。

Re:時計狂い状況(中間報告)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>昨日21日未明0時頃セットし、(v0.33α)1日中 狂いはなく、深夜でもずれは1秒未満でした。

お!なかなか順調ですね。
と思ったら、

>ところが、一夜明けた本日朝、2010/10/1 04:・・・となっていました。

なんと…またリセットされたような感じの日付に…(^^;

ノーマルクロックでも狂う状況が発生しているので、動作クロックがどうのこうのでは無さそうで、
内部RTCが突然リセットされる病みたいな感じですよね。

うちのCG50はシステムエラーで何度もリセットになったりしてても全然狂ってないので、なんとも不思議な状況です。

もしかしたら…
この時計問題はCG50だけではなく、FXシリーズの頃より時計が不安定になる状況があって、OSで正式に時計機能をサポートしていないということも考えらるのでしょうか。



>sentaro様からのDegのまま使用なら変わらないとのコメントは有難い情報でした。その後探してみたら、iron2様のBALLをいつでもすぐに楽しめるように、codeにRad をツルが追記していたのを見つけました。それでRadに設定が変わったのだろうと思います。

0.34にてセットアップでの設定がプログラムで変更されない動作が出来るようになってますので今後はそれをお使いくださいませ。(^^)


>電源OFFで何が起こっているかのような”因みに情報”が好きです。

ありがとうございます。(笑)

電卓お役立ち情報は海外から仕入れた情報も多々ありますが、
ある程度たまったらまとめて記事にしておくと便利そうですね。(^^) >管理人様

時計狂い状況(中間報告)

管理人様、sentaro様、iron2様、皆様

昨日21日未明0時頃セットし、(v0.33α)1日中 狂いはなく、深夜でもずれは1秒未満でした。

ところが、一夜明けた本日朝、2010/10/1 04:・・・となっていました。

実は、カレンダー作成に、DATEの数値を利用しようかと楽することを考えての過去の数字引き出しの質問だったのですが、あてにしないで、カレンダー計算のアルゴリズムを使って作ることにします。
そのほうが、今のところ信頼できる表示になるので、やむを得ませんね。
少し残念ですが、正確な時計機能の復活を願ってやみません。
 
角度設定。
例のGosub学習に使ったProg例で、Radのときにエラーとなり、Degへ変えたら正しく表示されたとご報告しました。それは間違いではなかったのですが、現在、Radでも正しく結果表示されています。Radで出なくなることをツルも不思議に思いますが、まあ現状は問題ないようで良しとします。
sentaro様からのDegのまま使用なら変わらないとのコメントは有難い情報でした。その後探してみたら、iron2様のBALLをいつでもすぐに楽しめるように、codeにRad をツルが追記していたのを見つけました。それでRadに設定が変わったのだろうと思います。

iron2様
BALLは、黒バックで描画すると、とても綺麗です。丸をみると落ち付きます。
ありがとうございました。

sentaro様
電源OFFで何が起こっているかのような”因みに情報”が好きです。
知識に深みをもたらしてくれ、ツルが研修などで話す、多くのネタを小出しにする様子に似ていて、お聞きする度にケラケラ笑っています(笑)

・・・外字 作りたいです。

Re:結構変数個数制限緩い気がしてきた + Re:またタイムトラベルしました(^^;

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>速度が変数より遅いとの記事がしばしばあったのであえて使って
>来なかったのですが、速度に影響しない所で使う分には
>ほぼ変数が無制限に使えて、単なる置き換えであるAlias 変数より
>もプログラムが複雑になった時にかなり有効じゃないかと
>今頃気が付いたというワケです。

行列Mat Aの省略形として、
添字が0~9の数値の場合は
A[2]
A2
というような短縮した記述が可能です。

最後のA2という最短形式で使うと、単純変数と変わらない使い勝手になって、
Alias Matと組み合わせると任意の名前で使えますから、
変数不足を補うことが出来ます。(^^)


iron2様のソースの、

List A[2] 'maintemp a,b
10->A[1]:A[1]->a
20->A[2]:A[2]->b

この部分は

10->A[1]:A[1]->a
20->A[2]:A[2]->b

もしくは、
10->A1:A1->a
20->A2:A2->b

これだけでOkです。(^^)
この形式はMatの省略形ですが、
A1~A9までは使った時点でList同様に自動的に確保されますので、
確保するためのコマンドはとくに必要がありません。


この初期化の部分は、
List A[2] 'maintemp a,b

強いて記述するならば、
{9,1}->Dim Mat A  // 純正方式
もしくは、 
9->Dim A      // fx-5800P形式
ということになります。


A1~A9を使う場合の注意点は
Aliasでは変数名とごっちゃになって使えないので、
その場合は
Alias Mat A=_ABCDE
_ABCDE[1]~_ABCDE[9]
形式で使います。


この変数を使った場合の速度の低下についてですが、
A[2」

A2
では10%未満の低下にとどまりますが、
Aliasを使う場合は、Aliasを使った分だけどんどん遅くなって最悪で倍くらい遅くなるという感じですね。

なので、
一文字変数名での使用ならば、通常の変数とは変わらない感じで使えると思います。(^^)



管理人様、
>この件についてsentaro様からのコメントが敢えて無いので、原因は他にありそうなんでしょうね。

あ、んと、時計が狂う原因として、
オーバークロックの影響の可能性については下の0.34バージョンアップのところに一応書いてありますが、
もし、オーバークロック時に設定した時にズレてしまったとするならば、
その後、ノーマルクロックで読み出しても毎回狂っているわけですね。
逆に内部時計は何も狂ってない場合は、ノーマルクロックでは問題なくても、オーバークロックで読み出すと読み出しミスしてタイムスリップの可能性があるということになります。
内部の時計が合っているならば、ノーマルクロックで読み出した場合は常に正常になるはずですがどうなんでしょうか?
それで時計が狂っているとしたら、ノーマルクロックで再設定してから様子をみてくださいませ。(^^)

re:Re: 結構変数個数制限緩い気がしてきた

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

管理人様
>Casio Basic / C.Basic に即した表現に翻訳してみたという事情なんです。
お心もわきまえず、大変申し訳ありませんでした。

ただ、この投稿はいままでLIST、MATを使ってこなかったのは
速度が変数より遅いとの記事がしばしばあったのであえて使って
来なかったのですが、速度に影響しない所で使う分には
ほぼ変数が無制限に使えて、単なる置き換えであるAlias 変数より
もプログラムが複雑になった時にかなり有効じゃないかと
今頃気が付いたというワケです。
またも、クルクル♪してたわけです。。。すみませんでした。

これからもよろしくお願いします。

Re: 結構変数個数制限緩い気がしてきた

iron2様、sentaro様、ツル様、CGユーザーの皆様

管理人のやすです。


ツル様、

時計の問題の原因が、USB絡みかも知れないとのことだったのですね?
ご指摘ありがとうございます。

この件についてsentaro様からのコメントが敢えて無いので、原因は他にありそうなんでしょうね。



iron2様

Gosunがどういうものかのiron2様のご説明は、私から見ればとても簡潔で一番分かり易いものです。
但し、高級言語でのプログラミング経験の少ない方には一般化した話は却って難しいかも知れないと考えて、Casio Basic / C.Basic に即した表現に翻訳してみたという事情なんです。


結構変数個数制限緩い気がしてきた

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

いつも使い捨て変数が無いと騒いでいるのですが
結構ゆるい気がしてきたし、メインとサブの切り分けも
できる気がしてきた。

'ProgramMode:RUN
Cls
Alias Lbl A=_Calc

List A[2] 'maintemp a,b
10->A[1]:A[1]->a
20->A[2]:A[2]->b

Text 0,0,"main a=":Text 0,100,A[1]
Text 0,180,", main b=":Text 0,280,A[2]
A[1]*2->X
A[2]*2->Y
Text 15,0,"main X=":Text 15,100,X
Text 15,180,", main Y=":Text 15,280,Y
Gosub _Calc,X,Y

Text 60,0,"main a=":Text 60,100,a
Text 60,180,", main b=":Text 60,280,b

Stop

Lbl A
Local a,b

Text 30,0,"sub a=":Text 30,100,a
Text 30,180,", sub b=":Text 30,280,b

A[1]+a->c
A[2]+b->d

Text 45,0,"sub a+a=":Text 45,100,c
Text 45,180,", sub b+b=":Text 45,280,d

Return

これからもよろしくお願いします

Re:Gosub 理解できました! + g3mのtextのタイムスタンプ

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>最後に決め手になったのは Gosubのコマンドリファレンス と、例としてのProgをいじって表示させて納得できたことです。

よかったです。(^^)
プログラムの実例が一番の早道だと思うので、
コマンドの使用例としてのサンプル集を早く充実させないといけませんね。



iron2様、
>今の話題とは関係ないのですが、g3mファイルをtextファイル化し、Windows
>のエクスプロラーでtimeスタンプを見るといつセーブしても
>2010/01/01 00:00:00 です。

OSで時計をサポートしていることになっていないので、
時計合わせも出来ないということで、タイムスタンプも固定のままですね。
C.Basicで時刻情報もきっちり書き込みしようと思えば、
ファイルシステムのFAT16への直接の書き込みが必要な感じです。(^^;

C.Basic for CG v0.34α (セットアップ設定変更版)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>ケーブルを差す場合:電卓の電源OFF → 差す
>ケーブルを抜く場合:EXIT → MENU → 電源OFF → 抜く
>を徹底しています。(家電品の電源コードの場合と同様)

完璧対応ですね。(^^)

ちなみに電源OFFでどのようなことが電卓に起きているかというと、
電卓のメインメモリにある各種設定と変数&プログラムエリアがストレージメモリに自動的にバックアップされています。
電源OFFに若干のタイムラグがあるのはこのバックアップの書き込みを行っているためです。

C.Basic使用中の電源OFFではどうなるかというと、
C.Basicの変数と設定はメインメモリに保存されていてバックアップ対象なので自動バックアップされます。
このバックアップの範囲外になるのが、C.Basic動作中の内部メモリです。未保存のプログラムや行列データがこれにあたります。
CG50ではこれらのデータは電源OFF後一時間経つと綺麗サッパリ消去されてC.Basicが再起動します。
CG20では一時間制限がないので、再起動にはならず元の状態に復帰します。


管理人様、
>ありがとうございます。コマンドリファレンスを書く作業は、とても良い整理と勉強になります。
...ということで、修正致しました。

修正確認しました。ありがとうございます!(^^)


>Prog での再帰の階層の限度について、以前コメントで述べられていたのは覚えているのですが、どの程度でしたっけ?

んと、FX版では(バージョンによって多少変わりますが、)30階層ぐらいまで、
CG版では300くらいまではいけたはずですが、
今試したところ、階層が250を超えるとシステムエラーになるので、200程度で制限しました。(^^;


>開発者自身が気付かないほどに C.Basic が成熟してきたということだと思います。
なので、ここは拍手! です。

恐縮です。(^^;
ListとMatを追加したので数式のバリエーションがかなり多機能になってますね。


>常にオーバークロックで使ってはおりません。
>たまにオーバークロックする程度です。
>昨日時計が正常だったのは、オーナークロックで使って、ノーマルに戻した後のことです。
>昨日はオーバークロック動作をしましたが、ノーマルに戻さないのにノーマルクロックに戻ってしまったような記憶があります。チョット曖昧なのですが..

了解です。
今の時刻読み出しはSysCallなので、システム的には問題のない動作になっていると思います。
ただ、オーバークロックで読み出しタイミングが速くなると間違って読み出される可能性もあるので、そこのところの可能性を考えました。
とりあえず、ノーマル使用時、オーバークロックした時で、ちょこちょこ時間を確認していただけると幸いです。(^^)
もし、オーバークロックで読み出し時間が異常になるとしたら、オーバークロック時の読み出し対策を考えないといけません。

クロックがノーマルに戻ってしまった可能性としては、Ptune3を使わないでとなるとリセット以外は無さそうですが、これまた謎の事件になってしまいますね。(^^;


>はい、シンプルで、あとはユーザーがうまく使うということで、この案に大賛成です!
>ご検討、ありがとうございます。

ってことで、
そこのあたりを機能追加してバージョンアップです。


C.Basic for CG v0.34α (セットアップ設定変更版)
http://pm.matrix.jp/CB/CBASICCG034.zip
・セットアップの設定がプログラムで変更されないようにする設定を追加しました。
 SetupRecoverの項目でオンオフで設定します。
 影響を受ける設定は純正互換の以下の設定になります。
  Angle
  DrawType
  Coord
  Grid
  Axes
  Label
  Derivative
 Plot/LineColor
  Sketch Line
 Display Fix/Sci/Norm/Eng

 これ以外のC.Basicで拡張された設定はプログラムで変更されることはありません。

g3mのtextのタイムスタンプ

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

今の話題とは関係ないのですが、g3mファイルをtextファイル化し、Windows
のエクスプロラーでtimeスタンプを見るといつセーブしても
2010/01/01 00:00:00 です。

作業に影響はないのですが、ちょと気になったので報告しました。

管理人様
私のアバウトな説明を翻訳ありがとうございました。
後、
管理人様も細かいようでsentaro様同様、褒めて育てる派
と感じます。

sentaro様
GosubのRetuenの件、コマンドを内部で関数で実装しているかぎり
スタックの件のあーそうなるわなと思っていました。
(昔、MASMを少しかじった)
でないと疑似ローカルは実現できないと思う。

ツル様
USBケーブルの件は時計とは関係なくても、一般ユーザーも
説明書無しに経験でやってる部分もあると思うので
良い投稿だったと思いますよ。
これからも鋭い突っ込みお願いします。

これからもよろしくお願いします。

Gosub 理解できました!

管理人様、sentaro様、iron2様、皆様

皆様のご支援により、Gosubを理解することができました。
最後に決め手になったのは Gosubのコマンドリファレンス と、例としてのProgをいじって表示させて納得できたことです。
Progを作ってみて動かしてみること、これはかねてより管理人様がお薦めの覚え方だった気がします。
皆様ありがとうございました!
さあ、次行ってみよう!

Re:Re: USBケーブル接続時の電源OFF

管理人様、sentaro様、iron2様、皆様

管理人様
また、言葉の精度を叱られそうですが、管理人様のタイムトラベラーに係る?と思っての投稿でした。
まだツルには大きなタイムスリップ現象は起きていないので、管理人様との違いに何があるかな?と考えていて、ケーブル抜き差し回数の圧倒的な違いが頭に浮かびました。(ツルは回数は少ないので)

そして、ツルは実は電気屋(強電のほう)なので、充電状態を常日頃から意識している訳です。充電って、電池の充電のことではなく、電流が流れていなくても、電圧が印加されているというほうの充電状態を差しています。この充電状態のケーブルの抜き差しの際に、大きなパルス状ノイズが機器に影響する可能性がありますので、どうなのかな?と思っての投稿でした。余計なお世話でしたね、ごめんなさい。

Re: USBケーブル接続時の電源OFF

ツル様、sentaro様、iron2様、皆様


fx-CG50が、USBのホットプラグ対応しているかどうか?

と言う命題に置き換えられると思います。

パソコン周辺機器のUSBの規格として、USB接続して即座にOSに認識され利用可能になる仕様がホットプラグ対応であり、接続方法としてのUSBの仕様で可能となっています。これはPCと周辺機器の双方が規格に対応している必要があります。一般消費者向けには、プラグ&プレイという言い方がされることもありますよね。

そこで、fx-CG50はどうかと言えば、CG50とPCの両方が通電され動作している状態で、USB接続すると 電卓とPC双方が認識され電卓がPCの外部記憶として使えます。つまり、USBホットプラグの規格通りの動作をしています。

但し、外付けHDDやUSBメモリのホットプラグの時と同様に、データ通信を確実に終了させてからUSB接続を解除することが推奨されています。なので、以下では電卓をPCから外す時には、外付けHDDと同様な操作をするように記載しました。

http://egadget.blog.fc2.com/blog-entry-594.html#PC_Link

この方法は、電卓の取扱説明書にも明記されています。

現実の問題として、HDDやUSBメモリとPCの通信終了を待たずに抜く人も結構居て、まぁPCでの設定次第 (バッファを使わない転送設定をするかどうか) でもありますが、私は個人的に怖くて絶対にやりません。少し待つことでデータ破損を確実に防げるなら待つ方が良いですので...

なので、PCや電卓の電源を落とすまでは、規格と現実の動作から考えて不要かと思います。むしろデータ通信を確実に終了させること、つまり "Casio MassStrage Device の取り出し" を確実に操作することに留意なさると良いと思います。

Re: Re:Gosubのコマンドリファレンス、作りました + またタイムトラベルしました(^^; + 角度単位

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。


Gosub コマンドリファレンスの更新

> ここなんですが、戻るにはReturnコマンドを推奨です。というかGosubの場合は必須です。
> Goto等で強制的に戻ることも出来ますが、内部のGosubスタックが開放されないであふれる可能性もあるので、ここはReturnのみということでお願いします。(^^;

> Localで指定できる変数はずっと小文字限定だったのですが、今は全部のグローバル変数がLocal対応になっています。
> ただ、ローカル変数であることのわかりやすさを考えると、小文字の使用を推奨ですね。(^^;

ありがとうございます。コマンドリファレンスを書く作業は、とても良い整理と勉強になります。
...ということで、修正致しました。



Prog による再帰呼び出し

> Progでは再帰プログラムが可能ですが、それが出来ないのがGosubです。
> この部分の分かりにくさはProg以上かもしれません。(^^;

Prog での再帰の階層の限度について、以前コメントで述べられていたのは覚えているのですが、どの程度でしたっけ?
いずれにせよ、再帰プログラムは 限界があることから現実的ではないと感じますので、Prog のコマンドリファレンスで触れるかどうかの判断は微妙ですね。再帰コールでなく、多重コールで〇〇階層まで...といった記述が良いかも知れませんね?

再帰コードは確かに美しいと思うのですが、コードの美し亜と引き換えに、電卓で実行速度が犠牲になるので、最初から狙ってはいけないのかも知れませんね。

iron2様のMandebrot 描画で、複素数の代わりに実数の置き換えたアルゴリズムを最奥なさっているのも、コードの美しさよりも三角関数計算の速度低下を補うためだと理解しているので、電卓では現実的なソリューションに徹するのが正解だし、そんなソリューウション、アルゴリズムを考えることが電卓プログラミングの楽しさかも知れません。


> これなんですが、こうやって使えることに気が付いてませんでした。(^^;
> その延長で、
> Retrun [[A,B][C,D]]
> とかMatAnsでも返すことも出来るようです。
>
> 数式でListもMatも使えるわけですから当然といえば当然の結果でした。(^^;

なるほど、そう言えば....

開発者自身が気付かないほどに C.Basic が成熟してきたということだと思います。
なので、ここは拍手! です。


時計の日付

> 管理人様、
> >どうも、私の fx-CG50 はタイムマシンのようで、再び 7800年に飛びました。
>
> 原因の可能性ですが、CG50を常にオーバークロック状態で使われてますでしょうか?(^^;

常にオーバークロックで使ってはおりません。
たまにオーバークロックする程度です。
昨日時計が正常だったのは、オーナークロックで使って、ノーマルに戻した後のことです。
昨日はオーバークロック動作をしましたが、ノーマルに戻さないのにノーマルクロックに戻ってしまったような記憶があります。チョット曖昧なのですが...


初期設定の扱い方

> ということで、ここは新たな設定項目を設けて、純正互換の設定項目においても、
> C.Basic方式:プログラム内の設定変更はプログラム内だけ。
> 純正方式;プログラム内の変更もセットアップに影響する。
>
> の切り替えを設けるのが一番良さそうですね。(^^)

はい、シンプルで、あとはユーザーがうまく使うということで、この案に大賛成です!
ご検討、ありがとうございます。



USBケーブル接続時の電源OFF

管理人様、sentaro様、iron2様、皆様

何も影響のないことなのかも知れませんが・・・
電卓にUSBケーブルを繋ぐ際の正規の(正しい)方法を知らないのですが、
ツルの場合を書きます。
ケーブルを差す場合:電卓の電源OFF → 差す
ケーブルを抜く場合:EXIT → MENU → 電源OFF → 抜く
を徹底しています。(家電品の電源コードの場合と同様)

Re:Gosubのコマンドリファレンス、作りました + またタイムトラベルしました(^^; + 角度単位

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、早速のGosubリファレンスありがとうございます!

気がついた点として、
>指定ラベルへジャンプした後、Gosub実行位置へ戻るには、Return コマンドを用いる。Return以外にもプログラム制御コマンドを用いても良い。

ここなんですが、戻るにはReturnコマンドを推奨です。というかGosubの場合は必須です。
Goto等で強制的に戻ることも出来ますが、内部のGosubスタックが開放されないであふれる可能性もあるので、ここはReturnのみということでお願いします。(^^;


>ジャンプ先に渡す変数はジャンプ先で別名変数にできる。その場合は Local コマンドを利用する。別名変数は小文字に限定される。

Localで指定できる変数はずっと小文字限定だったのですが、今は全部のグローバル変数がLocal対応になっています。
ただ、ローカル変数であることのわかりやすさを考えると、小文字の使用を推奨ですね。(^^;

Gosubは元々はProgの派生コマンドなので、同じように使えるようにしてきたわけですが、
ローカル変数がローカル変数でなくグローバル変数になってしまうところだけが非互換ですね。
Progでは再帰プログラムが可能ですが、それが出来ないのがGosubです。
この部分の分かりにくさはProg以上かもしれません。(^^;



>おっ! 面白いですね。
>こえを盛り込んで、Return のコマンドリファレンスを作ってみますね。

これなんですが、こうやって使えることに気が付いてませんでした。(^^;
その延長で、
Retrun [[A,B][C,D]]
とかMatAnsでも返すことも出来るようです。

数式でListもMatも使えるわけですから当然といえば当然の結果でした。(^^;



ツル様、
>気が付くとRadになっているのですが、Radがデフォなのですか?

んと、SetupでのDeg/Rad/Grad設定は純正互換でプログラムで変更されるとそのまま設定が継続します。
デフォルトはRadですが、Degのプログラムを使い続ける限りはずっとDegのままになります。
途中でRadに設定するプログラムがあればRadに変わってしまいます。


>そもそもの発端は、sentaro様が作ってくださった、FEINTのGosub文での
>”,1” でした(笑)

あ、そこだったんですね。(^^;
引数の形にしなくて通常の変数で動作を切り替えてもよかったんですが、
最初はProgの形で別れていたので、一応引数形式にしてみました。
Gosubになってもそのまま使えたので、引数形式が残ってしまったというわけですね。


>※時計の狂いですが、v0.33α最新Verにて 0時頃に再セットし、それから
>17時間程経過しておりますが、ずれは1秒程度です。
>引き続き注目しておきます。

了解です。
今日は遅れて無いということで、経過は良さそうですね。(^^)


と思ったら、


管理人様、
>どうも、私の fx-CG50 はタイムマシンのようで、再び 7800年に飛びました。

原因の可能性ですが、CG50を常にオーバークロック状態で使われてますでしょうか?(^^;


>そこで sentaro様に提案ですが、
>SET Up の設定値について、ユーザーデフォルトの設定を記憶しておいて、それを反映させる機能を SET UP メニューに追加できないでしょうか?

んと、ここのところの仕様なんですが、
CasioBasic互換の設定項目については、純正互換になっています。
つまりプログラムでの変更がセットアップにも影響するという仕様です。

その他の独自拡張仕様ではセットアップの設定はプログラム内では変更されません。(と思います。)
そのプログラム内だけでの設定変更になります。
ので、Matのベースの変更はプログラム内で
'#Mat 0
の設定をしていただいた方が他のプログラムへの影響が無いということになります。


というのが現在の仕様なのですが、

>色々な人が作ったプログラムを実行する時には、様々に設定変更するものが、今後も多くでてくると思います。そんなことから、上記の提案です。
>ご検討頂けませんか?

角度等は純正のCasioBasicではプログラム内での設定をするのがデフォだと思われるので、
C.Basic方式に慣れると純正で動かした場合にあれ?ってことになりかねないので、ここが難しいところですね。

ということで、ここは新たな設定項目を設けて、純正互換の設定項目においても、
C.Basic方式:プログラム内の設定変更はプログラム内だけ。
純正方式;プログラム内の変更もセットアップに影響する。

の切り替えを設けるのが一番良さそうですね。(^^)

各種初期設定について

sentaro様


管理人のやすです。

角度単位だけでなく、Display設定(Norm, Fix, Sci, Eng)やモード設定などについて、現在のユーザー設定を一括で記憶し、コード内でプログラムに併せて設定変更しても、プログラム終了時に記憶しておいた設定に戻すようなコマンドを新設して頂けると、お行儀の良いプログラムが書けるようになると思うのですが、如何でしょうか?

或いは、このような機能を実行環境として自動的に行えるモードがあれば、さらに良いように思います。

動作速度への影響は殆ど無いはずと思われるので、是非ご一考頂けませんか?

角度単位

ツル様、sentaro様、iron2様

管理人のやすです。


ツル様、

最新版ですと、角度単位の設定に係わらず、Gosubのサンプルプログラムは正常の動作するようです。

なお角度単位について、私の個人的な使い方では Deg にしています。これは、fx-5800P でも同様で、プログラムを使わず通常の電卓として使う場合は、まず殆どが数値計算が目的なので、角度も Deg である必要があるのがその理由です。

但し、何かプログラムを実行した時、そのプログラムで 角度単位を Rad に変更している場合、知らずに Rad に設定されるということが有ります。それが自分で作ったプログラムの場合は、アチャーッ となって、私は過去に何度も経験しています。


そこで sentaro様に提案ですが、
SET Up の設定値について、ユーザーデフォルトの設定を記憶しておいて、それを反映させる機能を SET UP メニューに追加できないでしょうか?

例のUCFでのpiu58さんは、Mat のベースモードが 0 を前提にコードを書くので、エラーが出てアレッとなって、ベースを0に変更して動かしています。コード中で勝手に '#Mat 0 としないのは、却ってユーザーフレンドリーな対応とも言えます。

色々な人が作ったプログラムを実行する時には、様々に設定変更するものが、今後多くでてくると思います。そんなことから、上記の提案です。

ご検討頂けませんか?

またタイムトラベルしました(^^;

sentaro様

管理人のやすです。

どうも、私の fx-CG50 はタイムマシンのようで、再び 7800年に飛びました。

この時の C.Basicバージョンは、2つ前;
http://egadget.blog.fc2.com/blog-entry-630.html#comment2901
の前のものです。0->% / 0->Ticks で時計がリセットしなくなった最初のバージョン。

電池がほぼ無くなったので、C.Basic のファイルリストが表示されているところで一旦電源を落とし、電池を交換。
すると、自動的にPower On となり、初期設定を行い、C.Baaic を起動するとタイムスリップしていました(^^;

このとき、日付は 7800/01/01、時間は 00:00:00 となっていました。

Re: Gosubのコマンドリファレンス、作りました

ツル様、sentaro様、iron2様、CGユーザーの皆様

管理人のやすです。


"Prog コマンドで別のプログラムファイルを呼び出す代わりに、Gosub / Lbl / Return で同じファイル内に記述したルーチンを実行することが可能になる。"

を追記しました。iron2様のご説明をチョット翻訳してみたものです。


Gosubコマンドリファレンス
http://egadget.blog.fc2.com/blog-entry-646.html


Re:Re:Gosubのコマンドリファレンスを希望します

管理人様、sentaro様、iron2様

皆様、ご親切に対応くださいましてありがとうございます。

マニュアルに記載例のProgが、実行結果が表示されなかった理由が分かりました。SET UP画面でのAngleがRadになっていたのを、Degへ変えたら正しく表示されました。
気が付くとRadになっているのですが、Radがデフォなのですか?
ステータスラインでAngleを確認する習慣が無く、またcodeにRadを宣言する習慣もないので、ツルはDegがデフォならいいなと思っています。
今後、三角関数の出番が増えると考えは変わるかも知れませんね?
他の方はAngle設定について、なにかご見解はございますか?

という訳で、Gosubにつきましては引き続き学習を深めて、
早くGosubをクリアするよう努めます。
sentaro様もおっしゃってますように、管理人様のご説明がこれ以上ないほどに完璧なのだと思います。ならば、ツルがそれを必ず理解するようにします。
そもそもの発端は、sentaro様が作ってくださった、FEINTのGosub文での
”,1” でした(笑)
ツルは、GosubをGotoと同じには考えてなく、外部にサブルーチンを設けたくない、Return で元の場所に戻る、同じ処理をさせるのに記述量を減らせるなどの利点から選択しておりますので、その辺りは管理人様のコメントに合致しているものと思います。ただ、引数、戻り数を自在に操ってきた場数(ばかず)が少ないことが今回の問題になっていると思いますので、今回はツルにとって絶好の機会となっております。
皆様、本当にありがとうございます。

※時計の狂いですが、v0.33α最新Verにて 0時頃に再セットし、それから
17時間程経過しておりますが、ずれは1秒程度です。
引き続き注目しておきます。

Gosubのコマンドリファレンス、作りました

ツル様、sentaro様、iron2様、CGユーザーの皆様

管理人のやすです。

Gosubコマンドリファレンス
http://egadget.blog.fc2.com/blog-entry-646.html


ツル様、
これで分からない点があれば、是非お聞かせください。



sentaro様、

> [※追記]
> 現在のバージョンでも複数の結果をList Ansで返すには
> Return {a,b}
> でいけそうです。

おっ! 面白いですね。
こえを盛り込んで、Return のコマンドリファレンスを作ってみますね。

Re:Re: Re:Gosubのコマンドリファレンスを希望します

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>この最後の Return a,b はひょとして Return a+b とお書きになりたかったのでは?

あ、そうです、そのとおりです。
説明から間違っていたら余計分からなくなってしまいますね。(^^;
C.Basic側の不手際もあったりで、大変失礼いたしました。>ツル様


>ひょっとして、Return の戻り値に 複数変数を指定した場合は、List Ans に格納されるのかと思ったのですが、そうではないようですね。

はい、それは仕様にはないですが、
複数変数をListで返すのはいい案かもしれません。
何か使い道があれば、検討します。(^^)

[※追記]
現在のバージョンでも複数の結果をList Ansで返すには
Return {a,b}
でいけそうです。

Re: [さらに追記] [追記] Re: Gosubのコマンドリファレンスを希望します

ツル様

下のコマンドリファレンスの案文ですが、C.Basic のマイナーアップデートで、一気に最新のものを使ったため、エラーにならなかったようです。

なので、ツル様の入力ミスではなくて、バグの可能性大、ということで、前のコメントで、ツル様の入力ミスに言及した部分は差補助しておきます。

Re: Re:Gosubのコマンドリファレンスを希望します

sentaro様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人のやすです。

細かなことですが、

> ----------------
> メイン処理
> Gosub A,1,2
> Disp Ans
> Gosub A,3,4->B
> Disp B
> stop
>
> Lbl A
> Local a,b   // Localコマンドで引数が渡される変数の指定をします。
> Return a,b
> ----------------

この最後の Return a,b はひょとして Return a+b とお書きになりたかったのでは?

Return a,b だと 変数 Ans には、最初の引数 a の値が格納され、b は放置になりますよね。

ひょっとして、Return の戻り値に 複数変数を指定した場合は、List Ans に格納されるのかと思ったのですが、そうではないようですね。

なので、単なるtypo のような気がしました。

Re:Gosubのコマンドリファレンスを希望します

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>Gosub修正済みとの事。コード書きなおしてみます。
>一歩おそかったら、アップローダー使うところでした。(笑)

あ゛…間に合ったのですね。(^^;


>現状の不具合はGosub J のテキスト処理の所で
>ゴミは出なくなったのですが、Orijin表示したりしなかったり
>で直接記述と比べてのDebugの無限ループ。

この現象への対策はまだなのでバグ残ってるかもしれません。(^^;


>ひょとして今度のアップデートで直っているかも知れませんので
>検証後おかしな挙動でしたら、アップローダーに送ります。

もし、直ってなかったらアップローダーにでもよろしくお願いします。(^^)



ツル様、
>マニュアルに例として記載のcodeは、使い方、記述としての一例なのでしょうけれども、そのままではエラーとなり実行結果の通り表示もされないために学習が進みません。,1 すらいまだに意味が分かりません。

v0.33のアップデート途中で動作しないバージョンが出来上がってましたので、(^^;
最新バージョンにアップデートお願いします。


で、Gosubのリファレンスについては
iron2様が解説されてますように、
>GosubとはあたかもFunctionコールしているように見せる
>引数リスト及び戻り値ありのジャンプ命令の事であるぅっ。

のとおりなのですが、

まずはこの呼出しの形が基本形です。
----------------
メインプログラム
Gosub A
・・・
Gosub A
・・・
stop

Lbl A
サブルーチン内の処理
Return
----------------

ここで、Gosubに引数を使う場合は、
ラベルの後に引数の付く形のプログラムになりますが、
このプログラムは引数1と引数2を足して結果を返すサブルーチンです。
----------------
メイン処理
Gosub A,1,2
Disp Ans
Gosub A,3,4->B
Disp B
stop

Lbl A
Local a,b   // Localコマンドで引数が渡される変数の指定をします。
Return a,b
Return a+b
----------------

このプログラムの最初の
Gosub A,1,2
ではAnsに3が返ってきます。

Gosub A,3,4->B
では結果をBに代入し7になります。

という感じです。


サブルーチン内での結果を返すには、
----------------
Return a+b
----------------
の形と、
----------------
a+b
Return
----------------
と二つのパターンが出来ます。
どちらも結果はAnsに返るので、
CasioBasic的には後者の文法が分かりやすいかと思います。



管理人様、
ほとんど完璧な解説ですね。
ありがとうございます!(^^)


>local は正しくは Local ですね。確か以前は localだったことがあったような気がしていsて、その時の記述のままになっているようです。
>ですよね?>sentaro様

あ、そのとおりです。間違えてました。(^^;
マニュアルを修正しておきます。

[さらに追記] [追記] Re: Gosubのコマンドリファレンスを希望します

ツル様、sentaro様、iron2様、皆様

管理人のやすです。

Gosub の効用について、最後に追記しました。


はい、Gosub コマンドリファレンスを準備するようにします。

コマンドリファレンスとして公開する前に、取り敢えず解説を試みますね。チョット冗長かも知れません。


[C.Basic][FX / CG]

Gosub

プログラムファイル内のサブルーチンへジャンプする。純正Casio Basicにはない C.Baisc 独自コマンドで、Goto コマンドを拡張したもの。


(書式) Gosub <ジャンプ先ラベル>[,<引数1>[,<引数1>]]...]

ジャンプ先ラベルは、プログラムファイル内に記述した Lbl ラベル。例えば Gosub E に対して Lbl E で受ける。ここで使えるラベルは Goto / Lbl で使えるラベルと同じで、0~0、A~Z、さらに a~z、r ([ALPHA][x^2]のr)、θ ([ALPHA][∧]のθ) が使える。或いは、Alias コマンドで指定した別名ラベルも使える。

指定ラベルへジャンプした後、Gosub実行位置へ戻るには、Return コマンドを用いる。Return以外にもプログラム制御コマンドを用いる。制御コマンドが無い場合は、処理がそのまま下へ続く。Return コマンドを用いる際、C.Basic で拡張された機能として、戻り値を指定できる。例えば Return X とすると 変数 Ans に 変数Xの内容が格納され、Gosub コマンド位置に制御が戻る。Gosub の食後で 変数 Ans を参照すると 変数 X の値が得られる。

(例)
 10->X
 Gobus A
 Disp Ans
 Stop

 Lbl A
 Return 2X

Gosub 以外に Lbl A に来ないように Stopコマンドを用いている。lbl A にジャンプ後 2Xを変数Ansで返す。Disp Ans で 2X の結果 (=20) を表示する。


<引数n> はジャンプ先へ渡す変数を指定する。
ジャンプ先に渡す変数はジャンプ先で別名変数にできる。その場合は Localコマンドを利用する。ローカル変数は小文字に限定される。

例えば、Gosub で変数XとYを渡し、ジャンプ先で、渡された変数を a, z として利用するときは、

Gosub A,X,Y
・・・
Lbl A
Local a,z

と記述する。なお 変数 X, Y, a, z はプログラム内で共通して使える大域変数のままである点に注意。但し、ジャンプ先ラベル以下で別名変数として偽寿的なローカル変数として使えるので、コマンド名が Local になっている。

(例)
  10→X
  20→Y
X+1→a
Y×2→b
  Gosub A,X,Y
  Disp Ans
Disp a
Disp b
Stop

Lbl A
  local a,b
Dips a
Disp b
  Return a+b
-------------実行結果
10
20
30
10
20
-------------

Gosub実行前は、X=10、Y=10、a=11、b=20 となっている。
Bosub 実行後は、Lbl A へジャンプし、ジャンプ後 Local コマンドで、変数 X は 変数 a に格納、変数 Y は 変数 b に格納される。この時点で、a=10、b=20 となる。ジャンプ前の変数 a、b の値は変更されている。
Return a+b により a+b の値は変数Ansに格納され、Gosub の位置へ戻る。
従って、Disp Ans で 30 と表示され、Disp a で10と、Disp b で 20 と表示される。

=====

Gosub は Goto を拡張したものなので、私個人的にはこれまで殆ど使ったことがありません。Casio Basic の究極の大域変数の扱いを根本で解決するものでなく、Casio Basic向けのコーディンススタイルを最適化する立場でプログラムを書いてきたからです。

しかし、iron2 様のように、変数を微妙に変更して複雑な計算を繰り返し実施しするようなプログラムの場合、Gosub は有効です。

コアになる 計算式は一切変更せずに、一部の変数を少し変えて 計算を行う時、ジャンプラベル以下の式を変更せず、そこへ渡す変数を自在に変更できるのが、Gosub の効用の1つです。

或いは、プログラム全体の流れから外れたところに、例外処理を一括して置くようなケースでも Gosub は有効です。複数の箇所から Lbel E に飛ばし、Return だけで、とました元の所に戻れるのは、記述が楽で、記述量も減り、プログラム可読性も向上します。これも Gosub 利用の効用の1つです。


とこんな感じでお分かりになりますか?

トレンドのGosubの件

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

今トレンドのGosubは仕様がコロコロ変化しているで
覚悟の上での使用をお勧めします。(笑)

解説しよう!
GosubとはあたかもFunctionコールしているように見せる
引数リスト及び戻り値ありのジャンプ命令の事であるぅっ。

Gosub A->c '飛び先で処理の変更が無い場合は引数無し

Gosub A,1->c '処理の変更がある場合はA(ラベル)の後に
       ',変数,変数,...->cとする
      '引数リストの変数は1のように数値直接でもOK
例えば
0->A:1->B
Gosub A,A,B->c 'となり変数の最後は,->cとするとエラーに
       'なるので注意

飛び先は
Lbl A
local a,b '←Gosubで指定した引数A,Bに対応

IF a=0: Then 'Dog
IF b=0:Then
Black Text 100,160,"Dog"
Else
Rad Text 100,160,"Dog"
IfEnd
Eles 'Cat
IF b=0:Then
Black Text 80,160,"Cat"
Else
Rad Text 80,160,"Cat"
IfEnd
IfEnd
Retuen 0

で考え方はあっているはず。。ですよね?

焼きそば食して休憩終わったのでウォーキングに
戻ります。(まるでマンモス西)

これからもよろしくお願いします。

Gosubのコマンドリファレンスを希望します

管理人様、sentaro様、iron2様、皆様

Gosubの使い方で以前ご質問し、ご教示いただきましたマニュアル記載文も何度も読んでいますが、一向に理解出来ないでおります。

マニュアルに例として記載のcodeは、使い方、記述としての一例なのでしょうけれども、そのままではエラーとなり実行結果の通り表示もされないために学習が進みません。,1 すらいまだに意味が分かりません。

なので、疑問が解決できずに悩んでおります。
iron2様とレベルの違う内容なのですが、サルにもツルにも分かるGosubのコマンドリファレンスを強く望むところです。
お願いいたします。

C.Basic for CG v0.33α (Gosub修正+フォント修正版)DLしました

管理人様、sentaro様、ツル様、CGユーザーの皆様

sentaro様
最新版DLしました。

Gosub修正済みとの事。コード書きなおしてみます。
一歩おそかったら、アップローダー使うところでした。(笑)

現状の不具合はGosub J のテキスト処理の所で
ゴミは出なくなったのですが、Orijin表示したりしなかったり
で直接記述と比べてのDebugの無限ループ。

ひょとして今度のアップデートで直っているかも知れませんので
検証後おかしな挙動でしたら、アップローダーに送ります。

アップローダーはお気に入りバーに入れてみました。
(ブラウザが壊れたら消えますけどw)

では、ウォーキングに出かけてまいります。

これからもよろしくお願いします。

C.Basic for CG v0.33α (Gosub修正+フォント修正版)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

GosubのAlias Lbl対応でまたまたバグってましたので修正です。
あと、Menuコマンドの表示文字数が短くなっていた不具合を修正しました。

C.Basic for CG v0.33α (Gosub修正+フォント修正版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG033.zip
・Menuコマンドのタイトル&項目テキスト表示で特殊文字を使うと表示文字数が短くなっていた不具合を修正しました。
・付属のIPA版仮名文字フォントを高さを調整しました。

http://pm.matrix.jp/upload/upload.cgi (C.Basic専用アップローダー)


ツル様、
>いろいろとご面倒をお掛けしましたMenuコマンドによる表示ですが、
>@による従来のノーマルフォント表示も出来、先程、最大19文字のタイトル表示が出来ることも確認いたしました。拘れば、配色も様々可能で、ツルには完璧な状態に思えました。管理人様、sentaro様、ありがとうございました。

またまた特殊文字使用で表示文字数が短くなるバグが見つかってしまい、
バルサンツルサン効果爆発です。
こちらこそ、ありがとうございます!(^^)



iron2様、
>完全な検証はまだですが、どうもGosubの引数
>が怪しいです。他のGosubもですが最新版では
>引数があるとエラーになります。

すみません!!
Gosubが思いっきりエンバグしておりました!(^^;
今回のアップデートで修正済みなのでよろしくお願いします。


>電卓ではそこは実装者が何かしらのコードを書いて
>そのように見せる必要があり制限はありますが
>出来れば魅力的だなと思ったしだいです。

iron2様のおっしゃることすごくよく分かりますね。

C.Basicが開発途上ということもあって、ちょっと大変なことも多々あるかもですが、(^^;
より使い易いプログラムの完成という目標に向かってがんばってまいりましょう。(^^)

Alias & Gosubの件のその後

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

昨日は4時間以上のウォーキングで帰宅後寝てしまいました。

sentaro様へ
タイトルの件、最新版DL後検証したところ
Alias Lbl A=_MNDEL
...
1->j:1->k:0->t:0->o:0->r:1-S
Gosub _MNDL->c
...
stop

Lbl A
...
return 0

で意図通りの動作になりました。

完全な検証はまだですが、どうもGosubの引数
が怪しいです。他のGosubもですが最新版では
引数があるとエラーになります。
よって完全にGobal渡しで引数なしのGosubは
問題なく動作します。

以前のコードでは使い捨て変数が枯渇して
来たため、Local変数が呼び出し側と同じで
あってもメイン側に影響が出ないの理解にて
Gosub呼び出し側の引数変数とLbl内のlocal変数名
を同じにしていました。
そこがよくなかったのかも知れません。

どの道、変数に数値代入後Gosubするので
引数なければ、コードが短くなるので
いまのコードの書き方で進めてみます。

CGユーザーの皆様へ
iron2の操作系は何を目指してのかというと
アプリを使うユーザー側、とりわけ自分は特に
簡単に使えるようにしたいと思うのは共通の目標と思います。
そこは同じです。

ハードの制限、言語の制限で不自由ですが
CBasicのおかげで自由度が増しました。
しかしながら、それぞれの理想とする
操作系を実装しようとすると苦労するのですが
気持ちよく使えたら苦労も報われると感じています。

MNDELVWのようなアプリでは直感で説明書なしで
簡単な英語が分かれば子供でも遊べる操作系が
必要と感じたわけです。

そのためにはキー操作した時の状態遷移が色で
示せれば自分の立ち位置が分かり、進めるのか
元に戻るのかがわかるのでは無いか?

結果が伴わいかも知れませんが、そういった操作系に
したいと感じています。

イメージ的にはマウスが無い、Linux、Win、Mac
でマウスイベントの変わりにキーイベントを使う感じ。
ボタンを押すとボタンがへこんだり、点滅したり
Windowをマウスが通過するとアクティブ全面になったり
とかそういういったシステムではシステム側ですべて
イベントメッセージが回っていて、実装者はそのイベント
を利用して意図するアプリを作るので自由度は大きい
ですが、そのイメージに近い事をしようとすると
電卓ではそこは実装者が何かしらのコードを書いて
そのように見せる必要があり制限はありますが
出来れば魅力的だなと思ったしだいです。

長文失礼しました。

これからもよろしくお願いします。

Menu 仕上がり完璧です

管理人様、sentaro様、iron2様、皆様

いろいろとご面倒をお掛けしましたMenuコマンドによる表示ですが、
@による従来のノーマルフォント表示も出来、先程、最大19文字のタイトル表示が出来ることも確認いたしました。拘れば、配色も様々可能で、ツルには完璧な状態に思えました。管理人様、sentaro様、ありがとうございました。

ミニフォントとの混在表示で一瞬の立ち止まる感覚を自己分析したところ、
目に負担が掛かる感覚であること認識しました。
これはあくまでもツルの場合ではありますが、常日頃、目が疲労しているツルは、同じポイント文字の羅列はまだ楽ですが、ポイントが途中で変わると目に負担を感じるようです。様々なProgを作っている今、Menu画面を目にする機会も多いので、今回の変更はツルには改善であり、大変有難いものでした。

Re:v0.33α 時計 狂い再発(続報)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>はい、20日ですので狂いは時刻だけです。
>SET UP画面内のTIMEはそのまま表示には反映していますし、ツルの各Prog内ではticksへの代入行為は皆無です。
>先の2秒ほどのずれ報告のあとからも、時計に関するようなcode変更も一切行っていません。

了解です。

2秒ずれていた時から半日で16時間も遅れるというのは、どこかで時計がリセットされてしまった可能性がありそうなのですが、
とりあえず、現在の最新版のv0.33αにアップデートして時計を合わせてからまた一日様子をみてくださいませ。(^^)

v0.33α 時計 狂い再発(続報)

管理人様、sentaro様、iron2様、皆様

>狂っているのは時刻だけで日にちはだいじょうぶしょうか?
はい、20日ですので狂いは時刻だけです。
SET UP画面内のTIMEはそのまま表示には反映していますし、ツルの各Prog内ではticksへの代入行為は皆無です。
先の2秒ほどのずれ報告のあとからも、時計に関するようなcode変更も一切行っていません。

C.Basic for CG v0.33α (Alias Lbl+Gosub修正版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

Alias LblでGosubが動作しないバグが見つかりましたので修正です。

C.Basic for CG v0.33α (Alias Lbl+Gosub修正版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG033.zip



管理人様、
>ということで、緊急修正は不要となりました。
>プログラムライブラリの RGBの記事では、従来のバージョンと緊急更新したものの両方を当面記載した状態にします。

お手数おかけしました。
今回の修正は時計機能に影響を与えないようにという仕様変更なので、もっと早くに修正しておくべきでした。(^^;



ツル様、
>DATE TIME コマンドにて表示させているカレンダーProgにて、16時間遅れ状態となっております。

あら…再発してしまったのですね。(^^;
これはちょっと根が深いかもしれません。
狂っているのは時刻だけで日にちはだいじょうぶしょうか?

v0.33α 時計 狂い再発

管理人様、sentaro様、iron2様、皆様

DATE TIME コマンドにて表示させているカレンダーProgにて、16時間遅れ状態となっております。

Re: C.Basic for CG v0.33α (Ticks初期化仕様変更版)差し替えです。

sentaro様、ツル様、iron2様、CGユーザーの皆様、こんにちは!


管理人のやすです。

sentaro様、タイマーコマンドの仕様変更、ありがとうございます。


> 管理人様のプログラム変更は必要なくなりました。(^^;

ということで、緊急修正は不要となりました。

プログラムライブラリの RGBの記事では、従来のバージョンと緊急更新したものの両方を当面記載した状態にします。

http://egadget.blog.fc2.com/blog-entry-641.html


時差確認プログラム TimeZone は 2018年版に変更したと同時に、0->% を実行しないように変更しました。

http://egadget.blog.fc2.com/blog-entry-566.html



なお、この関係のコメント2つは、明日削除しようと思います。


C.Basic for CG v0.33α (Ticks初期化仕様変更版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

従来より、Ticks(%)のタイマー変数は内部時計も変更する仕様でしたが、
今回より内部時計は変更されないように仕様変更しました。
ので、管理人様のプログラム変更は必要なくなりました。(^^;

C.Basic for CG v0.33α (Ticks初期化仕様変更版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG033.zip
・Ticks(%)のタイマー変数への代入で内部時計を変更しないようにしました。
(例)0->Ticks
 従来は内部時計も00:00:00に初期化されていましたが、C.Basicのタイマー変数だけを0にリセットします。
 この仕様変更により時計の変更はDATE、TIMEコマンドのみとなります。

C.Basic for CG v0.33α (Alias Lbl修正版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
Alias Lblの不具合修正しましたので差し替えです。
これで先程の
Alias Lbl A=_MNDL
Lbl A
は動作するはずですが、

>そこでAlias A=_MNDLを_Aに変えてもダメで

ありり?(^^;
とりあえず、修正版を試してみてくださいませ。

C.Basic for CG v0.33α (Alias Lbl修正版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG033.zip


>それと壁に貼ってあるコードの'Gosub J,引数->cの
>コメントの所、下に直接TEXT処理コードがあり
>それを Lbl Jにしているわけですが
>どうもGosub化すると そのTEXT処理が実行されない
>という事です。

壁のプログラムリスト、拝見しました。
インデント+色分けがされてすっごく見やすいですね。

で、Gosubにしたら処理されないという現象は、
画面のリフレッシュコントロールのタイミングの影響でないとしたら、バグの可能性有りです。(^^;
バグの発生するソースでないとデバッグが難しいので…

>必要であればsentaro様に直接メールに投げても良いですけど

はい、メールでもちろん構わないのですが、
今後のバグ出し等でも皆様の使い勝手を考えてC.Basic用にアップローダを用意してみました。(^^)
http://pm.matrix.jp/upload/upload.cgi?
テキスト形式でそのままアップロードできます。


>皆様から色々指導を受けている操作系ですが
>私自身は極力電卓臭がしない操作系に
>したく悪戦苦闘している所です。

操作系はプログラムの個性にもなりますし、なかなかいいと思います!
完成するまでは大変ですけど、そこを乗り越えたら、後に続くプログラムのとてもいい参考になりますね。(^^)



管理人様、
>これは、仕様通りの動作と考えてよろしいのでしょうか?
>0->% で時計がリセットされないかと思っていたのですが、そうでないようです。

一応、%もTicksもタイマー変数という名の時計なので、ゼロクリアすると00:00:00になってしまいます。(^^;
これでは時計アプリが出来た時に都合が悪いかもしれないので、時計がリセットしないように変更してみたいと思います。

電卓臭 ほほぅ

iron2様  こんにちは

物凄く格闘されているご様子が垣間見え、外野ながら腕に力が入ります(笑)
>私自身は極力電卓臭がしない操作系に・・・
ちょっと ハッとしました。ツルには電卓臭がしないという発想は皆無だったので、目新しさを感じました。電卓臭がしないとは何臭を目指しているのかな?と興味が湧きました。発想が柔軟ですね。素敵です。

高齢者ドライバーによる事故が身近な存在です。
ツルも直進禁止を無視した高齢者の車に交差点で右側面から突っ込まれ、電柱にぶつかって止まった経験があります。お車にはくれぐれもご注意くださいね。

re:Re:Alias Lbl の件で

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

>こちらでも再現しました。(^^;
>LblのAliasが何かバグってるようです。
>修正版までのとりあえずの解決方法は、飛び先のAも_MNDLに変えてみて下さ
>い。
と言う事は使用法は問題ないと考えて良いのですね。
ちなみに飛び先も変えましたが症状は同じです。

そこでAlias A=_MNDLを_Aに変えてもダメで
完全にコメント化して
Gosub A-c にすると引数なしの完全グローバル渡しでも
完全動作します。
今の所は元のコードのままにしておきます。

それと壁に貼ってあるコードの'Gosub J,引数->cの
コメントの所、下に直接TEXT処理コードがあり
それを Lbl Jにしているわけですが
どうもGosub化すると そのTEXT処理が実行されない
という事です。
Originの色が変わらなかっり、STR(””、個数)が実行
されず画面にゴミが残るという事です。

必要であればsentaro様に直接メールに投げても良いですけど
(その時は知らないおじさんからのメールでウィルスとして削除
 はしないでください。)
テキストで5K以上です。
g3mファイルで3.8K以上です。

ここに貼ると見苦しいといつも気にしています。
ここに貼ってまだ良いならここに貼ります。

皆様から色々指導を受けている操作系ですが
私自身は極力電卓臭がしない操作系に
したく悪戦苦闘している所です。

問題の箇所(Orjin)の操作は
Mクリック モードセレクト表示(青)   Orijin(黒)
Sクリック サーチイメージ選択(水色)
Kクリック EXE:Start(赤)
EXEクリック 描画完了 モードセレクト表示(黒) Orijin(水色)アクティブ化    
Oクリック                    Orijin(赤色) 原点移動モード中
Kクリック                    Orijin(水色) 原点移動モード抜ける
Kクリック                    Orijin(黒色) メインループに戻る
DELクリック 終了
です。

では、ウォーキング続けます。

これからもよろしくお願いします。





Re:Alias Lbl の件で

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>そんなLblないよ。と怒られてしまいます。

こちらでも再現しました。(^^;
LblのAliasが何かバグってるようです。
修正版までのとりあえずの解決方法は、飛び先のAも_MNDLに変えてみて下さい。
それで一応動作するはずです。


ツル様、
>時刻が不正確な時計は、時計の形をした文鎮ですものね。
>そんな時計はほっとけい!となりますから・・・

座布団3枚です。(笑)


>時計アプリ作成には、時刻の正確さと表示のアイデアが命ですので、一つが解決したので、あとはウキウキです!

楽しみに待ってます!(^^)



管理人様、
>これを反映させて、本記事に追記し、Menu コマンドリファレンスを改訂しました。
http://egadget.blog.fc2.com/blog-entry-643.html

早速にありがとうございます!


>おかげ様で、毎年改訂している TimeZone (時差確認プログラム) の 2018版の改訂の際、C.Basic版に現在時刻表示機能を追加しようと思います。

現在時刻表示、いいですね。(^^)

Alias Lbl の件で

管理人様、sentaro様、ツル様、CGユーザーの皆様

一晩経って少し回復したiron2です。

壁に貼ったWinフリーEditerのColorマクロCBaic風を電卓の横に
開きデバッグしようと始めたました。

で、さっそくのAlias Lbl を使う変更しました。
すると
Undefined Ver
Press:[Exit]
そんなLblないよ。と怒られてしまいます。

プログラム先頭で _はキャラクタで入力
Alias Lbl A=_MNDL

呼び出し側で
Gosub A,j,k,t,o,r,S
から
Gosub _MNDL,j,k,t,o,r,S
にしました

宣言は
Lbl A
local j,k,t,o,r,S
.....
.....
.....
Return 0
としています。

一応マニュアル見て変更したのですが
どこがミスなのかわかりません。

ご指導よろしくお願いします。

Re: C.Basic for CG v0.33α (MenuコマンドにFX版互換表示を追加版)差し替えです。

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。

Menuコマンド改訂版頂きました。ありがとうございます。

これを反映させて、本記事に追記し、Menu コマンドリファレンスを改訂しました。
http://egadget.blog.fc2.com/blog-entry-643.html


ツル様のご報告から、時計機能は落ち着いたと宣言できそうですね!

おかげ様で、毎年改訂している TimeZone (時差確認プログラム) の 2018版の改訂の際、C.Basic版に現在時刻表示機能を追加しようと思います。

この手のプログラムの需要はとても少ないと思われますが、私自身は高頻度で使っています。特に夏時間の始まりや終わりの時期には手放せません。


Re:Re:Re:Re:時計の狂い(報告)

管理人様、sentaro様、iron2様、皆様

>やっと安心して時計アプリが作成できますね。(^^)
はい、既に電卓での時刻の確認は作成中のカレンダーの画面にて行っていました。ですので、年月日も信頼できる表示になったのも嬉しいです。
時刻が不正確な時計は、時計の形をした文鎮ですものね。
そんな時計はほっとけい!となりますから・・・

時計アプリ作成には、時刻の正確さと表示のアイデアが命ですので、一つが解決したので、あとはウキウキです!

でも、時計としては、やはりSEIKOです。
ツルの腕に巻かれているソーラーパワー電波時計の腕時計は信頼性ナンバーワンに変わりありません(笑)

Re:Re:Re:時計の狂い(報告)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>一夜明け、2秒ほどのずれで済んでいます。

これで時計問題は完全解決の模様ですね。
ありがとうございます!

やっと安心して時計アプリが作成できますね。(^^)

Re:Re:時計の狂い(報告)

管理人様、sentaro様、iron2様、皆様

一夜明け、2秒ほどのずれで済んでいます。

C.Basic for CG v0.33α (MenuコマンドにFX版互換表示を追加版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、お待たせしました。
色表示はCG版互換なので、
 タイトルの色はMenuコマンド直前の色指定が有効になります。
 メニュー項目はPlot/Line-Colorの色指定が有効になります。
 メニュー背景はBack-Colorで指定している色になります。
となっております。
表示文字数は表示出来るだけ表示できます。(^^)


管理人様、いつも素早い対応してくださって感謝です。(^^)


C.Basic for CG v0.33α (MenuコマンドにFX版互換表示を追加版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG033.zip
・MenuコマンドにFX版互換表示を追加しました。コマンド直後に"@"を付けるとFX版互換表示になります。
(書式)Menu @"<メニュータイトル>", "<項目1>",<ラベル文字1>,"<項目2>",<ラベル文字2>[,"<項目n>",<ラベル文字n>...]

Re:Re: Re:Menu ミニフォント表示(質問)

管理人様、sentaro様、iron2様、皆様

管理人様、sentaro様
いつもいつも何度もわがまま言ってばかりで申し訳ございません。
良いものを作ろうとするのに、感じたことはしまっておいてはいけないと思いまして・・・
これでも精一杯やっています。お許しください。
ご対応に感謝いたしております。

管理人様
Menuコマンドに注視していましたのは、文字数1点のみだったのです。
色やポイントはツルの眼中になかったために記憶が薄らいでいました。
(あ、ポイントとは文字サイズのことです)

Re: Re:Menu ミニフォント表示(質問)

sentaro様、ツル様、iron2様、CGユーザーの皆様


Menuコマンドのミニフォント選択機能

ツル様の経験的なデザイン感覚を活かしてオプション対応するのはポイントアップだと思います。

で、Menuコマンドのリファレンスでは、取り敢えずタイトルの最大文字数で、非互換な点を追記しました。
http://egadget.blog.fc2.com/blog-entry-643.html


純正Casio Basicの仕様については、C.Basic同梱ドキュメントを補完できるように "Casio Basicプログラミング " の "コマンドリファレンス編" に極力盛り込むようにしますね!

Re:Menu ミニフォント表示(質問)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>これはツルの考えですが、文の中で、文字の色変更やポイント変更は目立たせる効果は出ますが、一方で特にポイント変更は読みにくくする場合があります。
で、ツルの場合、純正に比べるとMenuが見にくくなっていると感じました。
>表示文字全てどちらかに統一したほうが良いと感じました。というか、選べるようにはできますか?

はい!
FX版仕様の文字の大きさが揃った方もあればいうことであれば、
オプションで切り替えられることが出来ます。

というように
仕様追加は可能なので、ちょこっと追加してみます。(^^)


>時刻再セットから4時間弱経過。
>現在の誤差はほぼ0秒です!

時計は今のところはだいじょうぶそうですね。(^^)



管理人様、
Menuコマンドのまとめ、ありがとうございます!

元々はFX版の互換仕様だったわけなので、CG版仕様と両方使えることはC.Basicの特徴のひとつとなりそうです。(^^)

Menu ミニフォント表示(質問)

管理人様、sentaro様、iron2様、皆様  こんにちは

Menu表示ですが、タイトルはノーマルフォントで、他はミニフォントになっているのは新しい仕様なのですね?
事前のご相談、アナウンスはなかったですよね?

これはツルの考えですが、文の中で、文字の色変更やポイント変更は目立たせる効果は出ますが、一方で特にポイント変更は読みにくくする場合があります。
で、ツルの場合、純正に比べるとMenuが見にくくなっていると感じました。

タイトル文とラベル文とが脳に入り込む一瞬、立ち止まる感覚があります。
これは、従来なかった感覚です。ミニフォントにより行数、文字数が増えるというプラス面は分かりますが、ツルは、表示文字全てどちらかに統一したほうが良いと感じました。というか、選べるようにはできますか?
この点はリファレンスには書かれていませんね。

Re:時計の狂い、Menu、新Alias、

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>一昨日からほぼ2日経ったところで1秒の遅れ!
>時計問題は解決したようです。
>ありがとうございます。長かったですね~

結果的にC.Basicの不具合ということで、長らくお騒がせしてしまいましたが、これで一件落着ですね。(^^)
あとはツル様のCG50でも合っていたら完璧です。(笑)


>Menu コマンドは改訂され、以前のC.Basic独自実装から、純正互換に変更されています。アナウンスありましたし、"Casio Basicプログラミング" の "コマンドリファレンス編" にも Menuコマンドを追加しています。
http://egadget.blog.fc2.com/blog-entry-643.html

C.BasicのFX版の頃より実装が遅れていたMenuコマンドですが、やっとCG版でも一人前になりました。(^^;


>これはナイスな改訂です!
>これで、ソースの可読性が格段に向上しますね。

ありがとうございます!
Lblも同じ1文字縛りだったので、変数同様にいけそうってことで実装してみました。


>使える変数に限りがある Casio Basic では変数の使い回しが結構ポイントになり、従来の高級言語では不要な苦労ではあります。

変数1文字というのはいわゆるTinyBasic仕様なので、インタプリタの実装的にも速度的にも大変有利な仕様なのですが、その分、プログラミングの自由度が奪われてしまいます。
そこのあたりがAlias機能で少しでも解消できればと思います。(^^)

で、今回のAlias Lbl機能追加でMenuがバグっていたのですが、
ツル様の書き込みでMenuの動作確認したところ不具合発覚しました。
バルサンツルサン、効き過ぎですね。
ってことで、早速の修正差し替えです。(^^;

C.Basic for CG v0.33α (Alias Lbl追加版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG033.zip

Re: アルゴリズム集、とね日記

sentaro様、ツル様、iron2様、皆様

おっしゃるように、アルゴリズム集のサイトは、私も思わずアレコレ記事を読んでいてあっという間に時間が経ってしまいました。

面白いですよね!


とね日記も昔からのリピーターです。高校まで得意だった数学も大学では途端に難しくなってしまい、不得意科目になってしまいました。専攻した有機合成では大学レベルの数学を主体的に使う機会が無かったので、落ちこぼれのまま卒業してしまいました。卒業後にピンポイントで必要になった数学は必死に勉強しましたが、やはり大学での基礎的な勉強をしていないのは辛いものです。

でも、とね日記で紹介される物理や数学の本を実際に買って、取り戻しの勉強や大学でやっていなかった分野の勉強を楽しんでいます。

今は、ちょうど「素数に憑かれた人たち ~リーマン予想への挑戦~」を読んでいるところです。大学教養課程までの数学をやっていれば、スイスイと読めそうな感じですが、まだ全部読んでいないので後でどうなるかは分かりませんけど...


Menuコマンド タイトル文字数

管理人様  お世話になっております。

Menuコマンドはツルには身近なコマンドですので、注視していました。
もともと、タイトル文字数でお願いしていましたが、その文字数についてのアナウンスはありませんでした ということでした。
先程、マッシーンを動かすまで、諦めていた次第です(笑)

sentaro様
時刻再セットから4時間弱経過。
現在の誤差はほぼ0秒です!

Re:v0.33α 入れました  Menuタイトルが17文字に

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>あれれ? Menu タイトルがいつの間にか17文字表示出来ているのですが?
>聞いてないよ~! 何、このサプライズ。 アナウンスなかったですよね?

あ゛、んと、v0.32αのバージョンアップにて、以前のとりあえず動くFX互換仕様から、CG互換仕様に衣替えしたので、そのタイミングで17文字になりました。
ってことで、はい、17文字になったアナウンスはなかったです。(^^;


>それで、ツルのノーマルマッシーンも時刻設定をし、見張りを開始しました!
>明日の朝、時刻が狂ってたら、ドッヒャーンですね(笑)

ちょっとドキドキですね。(^^;

でも、実際には時計が狂っていたわけではなく、C.Basicでの時計の読み出しをバグっていたので、
今確認して合っていたらたぶん明日も明後日もだいじょうぶかと思われます。

もし、明日時計が狂っていたとしたら、ちょっと対策が思いつきません。(^^;

時計の狂い、Menu、新Alias、

sentaro様、sentaro様、iron2様、CGユーザーの皆様

管理人のやすです。


時計の狂い

一昨日からほぼ2日経ったところで1秒の遅れ!
時計問題は解決したようです。
ありがとうございます。長かったですね~


Menuコマンド

Menu コマンドは改訂され、以前のC.Basic独自実装から、純正互換に変更されています。アナウンスありましたし、"Casio Basicプログラミング" の "コマンドリファレンス編" にも Menuコマンドを追加しています。
http://egadget.blog.fc2.com/blog-entry-643.html

当コメントの上にある記事で、アップデート情報は全て列挙しているので、アレっと思われたら、ご覧ください(但し更新が遅れることが有るのでご了承ください)。

それとも、...ひょっとしてこの改訂以降で、内緒で変更されているってことですか?>ツル様


新Alias

これはナイスな改訂です!
これで、ソースの可読性が格段に向上しますね。

iron2様が言われるように、究極の大域変数仕様で、1文字変数しか使えない仕様は、変数管理がプログラミングの肝になってきます。

従来のプログラミング本には無い変数管理の考え方として、"予約変数" と "使い捨て変数" といった独自の切り口での変数管理方法を、Casio Basic入門で紹介していますが、結構難関のようです。

使える変数に限りがある Casio Basic では変数の使い回しが結構ポイントになり、従来の高級言語では不要な苦労ではあります。


v0.33α 入れました  Menuタイトルが17文字に

管理人様、sentaro様、iron2様、皆様

sentaro様
あれれ? Menu タイトルがいつの間にか17文字表示出来ているのですが?
聞いてないよ~! 何、このサプライズ。 アナウンスなかったですよね?
わざと?  (笑) 物凄く嬉しいんですけど!
ありがとうございました!

それで、ツルのノーマルマッシーンも時刻設定をし、見張りを開始しました!
明日の朝、時刻が狂ってたら、ドッヒャーンですね(笑)

Re:C.Basic for CG v0.33α (Alias Lbl追加版DLしました

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、早速のDLありがとうございます!

>Gosubの件も疲れからのミスかも知れません。
>今エラー無しですがエラー有りに戻す元気がない。

了解です。
Gosub関連は今まで使用頻度が少なかったためにいろんなパターンでのバグ出しが出来てないのでまだ不具合が残っている可能性はあります。(^^;
もし、また何かバグらしき挙動が出てきましたらその時はソース保存しておいてくださいませ。


>インタープリタだとprog ""にするとファイルが散らばる
>ので避けてました。コンパイラだとリンケージで一つに
>なると思いますが、prog ""+Gosub+Arias+AriasLblで再構築
>してみます。

Gosubで不具合が出なければ、あえてProgで分ける必要は無いですし、
Aliasを最大限使うと半分以下の速度まで落ちてしまう可能性はありますが、
速度重視のコア部分での変数だけ1文字変数で使うようにして
それ以外では分かりやすさ優先で問題ないと思います。(^^)

C.Basic for CG v0.33α (Alias Lbl追加版DLしました

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

sentaro様
(Alias Lbl追加版)DLしました。
ありがとうございます。
また、色々アドバイスありがとうございます。

リアルで色々険しい山があって、一つ越えたのですが
どっと疲れが出ています。

Gosubの件も疲れからのミスかも知れません。
今エラー無しですがエラー有りに戻す元気がない。

インタープリタだとprog ""にするとファイルが散らばる
ので避けてました。コンパイラだとリンケージで一つに
なると思いますが、prog ""+Gosub+Arias+AriasLblで再構築
してみます。

ぬるいと思われるでしょうが、楽しんでやりたいので
ボチボチとやります。

これからもよろしくお願いします

C.Basic for CG v0.33α (Alias Lbl追加版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
Gosubの不具合の原因がまだ掴めてません。(^^;
もし不具合の出るソースがありましたら幸いです。

で、飛び先管理をしやすくするために、
LblにもAliasを機能させるようにしてみました。
これで飛び先も少しは分かりやすくなると思います。(^^)



ツル様、
>因みに、ノーマルCG50の更なる高速化をまだ切望していないツルは、
>Ptune3 を入れておりません。今のところは燃費第一です(笑)

CG50はデフォルトで速いので、C.Basic for CGではデフォルト使用を推奨します。(^^)
もし、それ以上の速度が必要になったときにはPtune3をよろしくです。

>sentaro様がPaintのサンプルProg利用としてご紹介されたアルゴリズムについてのサイトが、とても興味深いです。ただ、管理人様のこちらでもリンク先にでています とね日記さんも興味深く、手が回らず頭が回らず目が回ります(笑)

同感です。(^^)
読み出すと止まらなくなって何も進まなくなるので、ちょっとマズイです。(^^;


>まだv0.33α 入れていません。BEEPの確認もまだです・・・

えっと、管理人様のCG50では時間の読み出し問題が解消されたっぽいのですが、
ツル様のノーマル使用のCG50でも直ったかどうかが注目の的です。(笑)
ぜひ最新バージョンでお試しくださいませ。


ってことで、

C.Basic for CG v0.33α (Alias Lbl追加版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG033.zip

・LblもAlias機能が使えるようになりました。併せてAliasVarのコマンド名称をAliasに改訂いたします。
(例)Alias A=_ABCD
(例)Alias Mat A=_ABCD
(例)Alias Lbl A=_ABCD

アルゴリズムについて紹介サイト

管理人様、sentaro様、iron2様、皆様

sentaro様がPaintのサンプルProg利用としてご紹介されたアルゴリズムについてのサイトが、とても興味深いです。ただ、管理人様のこちらでもリンク先にでています とね日記さんも興味深く、手が回らず頭が回らず目が回ります(笑)

まだv0.33α 入れていません。BEEPの確認もまだです・・・
山のような残務の中にあって、頭ではバットのスイング軌跡を考えながらニヤついているツルでした。

因みに、ツルがCG50でのグラフィックスProgの最終目標は人の顔なのでした。


時計の狂い・・内部時計のレジスタをダイレクトに・・ 関連し

管理人様、sentaro様、iron2様、皆様

>オーバークロック状態では余計そうなりやすくなっていた可能性がありますね。(^^;

因みに、ノーマルCG50の更なる高速化をまだ切望していないツルは、
Ptune3 を入れておりません。今のところは燃費第一です(笑)

C.Basic for CG v0.33α (セットアップGetKeyリスタート設定追加版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、管理人様、
>Background 位置でF2 のPICTURE でそうなりますが・・・
>SET UP画面のBackground 項目で、"None" になっている時、[F2](PICTURE) を押すと地獄の一丁目です(^^;
>これを押すと、Select Number Pict[1~20]:とポップアップが出ます。

了解です!
ここにもあったことをすっかり忘れていました!(^^;

で、このポップアップは数値を入れないと抜けられないという底なし沼仕様になっていたのでサクッと修正しました。

この背景のPict設定は元々はg1mでの仕様なのですが、純正グラフィックスコマンド使用時のみ影響するので現在のML使用だと何も影響の無いコマンドとなっております。(^^;


C.Basic for CG v0.33α (セットアップGetKeyリスタート設定追加版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG033.zip
・GetKey1/2実行中は時間計測を一時停止するように仕様変更しました。
 セットアップにて計測の一時停止または計測のリセット&リスタートを選択できます。
 関連コマンドとして
(書式) '#GetKeyC
デフォルトの計測の一時停止、継続モードです。
(書式) '#GetKeyR
GetKey1/2実行後に計時がリセット&リスタートします。

・セットアップでステータスラインが表示されてなかったのを修正しました。



管理人様、
>はい、明日のチェックが楽しみです。これで解決だとうれしいです!

時計の様子はどうでしょうか?(^^;


>そうなりますね。或いは、バッファに使っているSDRAMの特性がばらついているのか?
>どこがばらついているのか分かれば、ひょっとして、Ptune3 の高速化のヒントになるってこと、ありませんか?

今までの実装は内部時計のレジスタをダイレクトに読み込んでいたので、
高速化したCG50では読み込みウエイトが足りなくて誤ったデータを取得していた可能性が大です。
オーバークロック状態では余計そうなりやすくなっていた可能性がありますね。(^^;

ということで、Ptune3の高速化には繋がりそうにはないのですが、時計問題は一件落着だと思います。(^^)

RESTART もう怖くありません!

管理人様、sentaro様、iron2様、皆様

管理人様
お陰様で、ちゃんと区別が明快に理解できましたので、もうRESTARTは怖くありません(笑)
寝ます

Re: Re:Re: Re:時計の狂い(報告)+ SET UP/Background 脱出不能!HELP

sentaro様、ツル様、iron2様、CGユーザーの皆様


管理人のやすです。


> もし明日も1秒も狂ってなかったら、すべてはC.Basicが原因だったということになりますね。(^^;
> とにもかくにもこれで時計が狂う事件は一件落着しそうで、
> これでやっと安心して時計アプリが作成できますね。>ツル様

はい、明日のチェックが楽しみです。これで解決だとうれしいです!


> 改めて考えてみれば、fx-9860GIIやCG20では読み出しの問題がなく、CG50だけで問題が起きていたのは何かしらのハードの差異があるということになりますね。

そうなりますね。或いは、バッファに使っているSDRAMの特性がばらついているのか?
どこがばらついているのか分かれば、ひょっとして、Ptune3 の高速化のヒントになるってこと、ありませんか?



> 差分がマイナスになったら計測中に日にちが変わったことになるので、そこを調整すれば2日分の計測は可能でしょうか。

そうですね。2日といわず3日でも4日でも....(^^;



> >但し、今思いつかないような目的で、リセットが必要な場面があるかも知れない、と考えますと SET UP 画面でタイマー動作の項目を追加し、Getkey1/3でのタイマー動作を切り替えるようにするのも有りかも知れないと思ったわけです。
>
> 了解です。
> 次のアップデートで実装してみます。(^^)

ありがとうございます。



> >sentaro様はリセットと言われていますが、厳密に言えば、リセットとリスタートは異なります。
>
> あ゛…改めて考えてみればそのとおりです。
> 完全にごっちゃになってましたね。(^^;
> 大変失礼いたしました!

私はグラフ電卓にはかなり慣れているので、文脈から勝手に脳内変換していたのですが、以前からツル様が、リセットが怖いと何度か言われていたので、今後は安心してRESTARTボタンを押してもらえるようになるかもです。



> >さて、私もツル様と同じ操作で同じ現象に遭遇したことがあります。数回遭遇していますが、かなり以前のことです。それ以来、この操作は必要も無いので、近寄らないようにしていました。
>
> セットアップのPictのところは今のところ無反応なので、
> Pict[1~20]が表示されるところはPlotコマンドでの一時停止状態で[OPTN]を押した時しかないはずですが、
> どのキーを押した時か分かりますでしょうか?

SET UP画面のBackground 項目で、"None" になっている時、[F2](PICTURE) を押すと地獄の一丁目です(^^;
これを押すと、Select Number Pict[1~20]:とポップアップが出ます。

このポップアップを消そうとしても、[EXIT]でポップアップが消えれば良いのですがテンキー以外は受け付けません。[AC]も受け付けません。

で、テンキー[1]を押すとポップアップは消えますが、SET UP画面でカーソルが動かなくなり、固まってしまってRESTART以外復帰できなかったことがありました。別の機会では、SET UP画面から出られたのですが、ファイルリスト画面でカーソルが動かなくなり、って固まり、RESTART以外手が無かったこともあります。

で、今試したら、テンキー[1]を押すと、ファイルリストまで戻れたものの、ここで固まりました。

そこでRESTARTし、テンキー[9]を押してみたら([1]以外を試すのは初めてです)、全く固まりません。こうなると、テンキー[1]を押しても固まりません。

謎です....

一旦 C.Basicを抜けて、RUN-MATRIX に入り、C.Basicに戻ってみましたが、固まりません。

ひょっとして、SDRAMがクリアされるまで待つと再現するかも知れませんので、明日試してみます。

いずれにせよ、何かの条件が整ったときの初期化処理に何か答えがありそうな感じです。




Pict[1~20]が表示

,sentaro様、管理人様、、iron2様、皆様

>Pict[1~20]が表示されるところは・・・

Background 位置でF2 のPICTURE でそうなりますが・・・

Re:Re: Re:時計の狂い(報告)+ SET UP/Background 脱出不能!HELP

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>タイマー SysCall化バージョンを頂きました。
>で、これを入れてから時計を見てみると、昨晩からほぼ1日経過したところで、1秒も狂っていませんでした。

ということは…

>これは、ひょっとして、電卓内部タイマーは正常で、C.Basicでの読み出しが修正されたから?

もし明日も1秒も狂ってなかったら、すべてはC.Basicが原因だったということになりますね。(^^;
うちのCG50では正常だったので、読み出しの数値がおかしくなっていたとしたら、それは全くの想定外でした。
改めて考えてみれば、fx-9860GIIやCG20では読み出しの問題がなく、CG50だけで問題が起きていたのは何かしらのハードの差異があるということになりますね。
純正では時計サポートがありませんから、時計の確認にはC.Basicのような内部時計を読み出せるアドインが必要になります。
そこのところで読み出しを間違えていたらもう何を信じていいかわからない状態です。(^^;
今更ですが、別のアドインで時計が合っているかどうかを確認してみるべきでした。
とにもかくにもこれで時計が狂う事件は一件落着しそうで、
これでやっと安心して時計アプリが作成できますね。>ツル様


>C.Basic のタイマーは24時間で自動リセットされる仕様ですから、これをプログラムで使う場合は、プログラム内で基準となるタイミングでリセットして、その時のタイマー値との差を利用するのが、基本的な使い方だと思っています。

はい、おっしゃるとおりです。
差分がマイナスになったら計測中に日にちが変わったことになるので、そこを調整すれば2日分の計測は可能でしょうか。


>但し、今思いつかないような目的で、リセットが必要な場面があるかも知れない、と考えますと SET UP 画面でタイマー動作の項目を追加し、Getkey1/3でのタイマー動作を切り替えるようにするのも有りかも知れないと思ったわけです。

了解です。
次のアップデートで実装してみます。(^^)


>sentaro様はリセットと言われていますが、厳密に言えば、リセットとリスタートは異なります。

あ゛…改めて考えてみればそのとおりです。
完全にごっちゃになってましたね。(^^;
大変失礼いたしました!



ツル様、管理人様、
>とありましたが、たまたまSET UP 内をいじっていたら、Backgroundのところで
>ポップアップが出て、Pict[1~20]と表示されたので、ああこれか・・・
>まあいいや、分かんない! と思ったので抜けようとしましたが、AC、EXE、EXIT等が、押しても反応せず 抜けられません。

>さて、私もツル様と同じ操作で同じ現象に遭遇したことがあります。数回遭遇していますが、かなり以前のことです。それ以来、この操作は必要も無いので、近寄らないようにしていました。

セットアップのPictのところは今のところ無反応なので、
Pict[1~20]が表示されるところはPlotコマンドでの一時停止状態で[OPTN]を押した時しかないはずですが、
どのキーを押した時か分かりますでしょうか?

RESTART 脱出OK

管理人様、sentaro様、iron2様、皆様

管理人様
ありがとうございました。そういえば、裏面にはRESTARTと書いていますね。
勉強になりました。

Re: SET UP/Background 脱出不能!HELP

ツル様、sentaro様、iron2様、CGユーザーの皆様

管理人のやすです。

ツル様、こういうときの裏面のRESTARTボタンです。これを押してみてください。

sentaro様はリセットと言われていますが、厳密に言えば、リセットとリスタートは異なります。

カシオが取説で使っている言葉遣いに従えば、電池交換と同等なのはリスタートです。
リセットは、ストレージメモリ内容やメインメモリ内容など(様々なレベルがありますが)をクリアして再起動することに当たります。

従って、電池交換や裏面ボタンはリスタートなので、全然怖く有りません。ところがリセットはバックアップ前提の操作となります。

実は、私もツル様のように、用語の厳密性にはチョット拘るところがありますが、一方でテキトーなところもあって、いつも頭の中で葛藤があったりします。

リセットとリスタートについては、前から気になっていたのですが、多分今回初めて書くと思います。



> たまたまSET UP 内をいじっていたら、Backgroundのところで
> ポップアップが出て、Pict[1~20]と表示されたので、ああこれか・・・
> まあいいや、分かんない! と思ったので抜けようとしましたが、AC、EXE、EXIT等が、押しても反応せず 抜けられません。

さて、私もツル様と同じ操作で同じ現象に遭遇したことがあります。数回遭遇していますが、かなり以前のことです。それ以来、この操作は必要も無いので、近寄らないようにしていました。

但し、SET UP まわりの優先度は低いと思って、報告していませんでした。

これで再現が確認されたので、チョット見ていただけませんか?>sentaro様


SET UP/Background 脱出不能!HELP

sentaro様、管理人様、iron2様、皆様

sentaro様
先のVRAMでの中で、
> CG50ではPictを使えば20個まで仮想的に画面を増やせます。
とありましたが、たまたまSET UP 内をいじっていたら、Backgroundのところで
ポップアップが出て、Pict[1~20]と表示されたので、ああこれか・・・
まあいいや、分かんない! と思ったので抜けようとしましたが、AC、EXE、EXIT等が、押しても反応せず 抜けられません。
作業が進まず 困っております。 HELPです

Re: Re:Re:C.Basic for CG v0.33α (GetKey1/2計測リセット+楕円の回転+Paintコマンド追加版)

sentaro様、ツル様、iron2様、CGユーザーの皆様


管理人のやすです。

> とりあえず、リセットを一旦停止に変更してみました。

ありがとうございます。

電卓のタイマーは24時間で自動リセットされる仕様ですから、これをプログラムで使う場合は、プログラム内で基準となるタイミングでリセットして、その時のタイマー値との差を利用するのが、基本的な使い方だと思っています。

また、計測時でも一旦停止でも役立つと思うので、リセットよりも一旦停止の方が汎用性があって良いと感じます。

但し、今思いつかないような目的で、リセットが必要な場面があるかも知れない、と考えますと SET UP 画面でタイマー動作の項目を追加し、Getkey1/3でのタイマー動作を切り替えるようにするのも有りかも知れないと思ったわけです。

如何でしょうか?>ALL


Re: Re:時計の狂い(報告)

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。


タイマー SysCall化バージョンを頂きました。

で、これを入れてから時計を見てみると、昨晩からほぼ1日経過したところで、1秒も狂っていませんでした。

これは、ひょっとして、電卓内部タイマーは正常で、C.Basicでの読み出しが修正されたから?

1つの可能性ですが...

明日様子を見てみます。

Re:Gosubの件で

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>Gosub A と変数Aは被りますでしょうか?

同じキャラクタを使用していますが、完全に別仕様となっております。


>A~Iまで未使用大文字変数でラベル指定していましたが
>Jでループ変数中にGosub Jとすると認識しませんでした。

あり?そんなはずは?
ってことでちょこっと調査してみます!


>prog ""を使って回避できますでしょうか?

たぶん、それでだいじょうぶかと思います。
Progの方がファイル名で分かりやすく出来ますし、ローカル変数使えるのでいいかもしれませんね。


>もうなんか、変数管理限界www

AliasVar機能を使ってみてはどうでしょう?
速度が若干犠牲になりますが少しは分かりやすくなるかと思います。(^^)

Re:時計の狂い(報告)+(なんちゃってトリガー報告)+ 差し替えDLしました

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>あれ? ツルがやったのは、ただのリセットだったのですか?

んと、ただのリセットだと日時は初期化されないんですが、
2010/10/01 00:00
になるのは完全リセットなので、
内部時計は間違いなく完全に初期化されました。(^^)

この状態からまた狂ってしまうとなると、原因はやはりC.Basicからのアクセスに何かしら問題があったとしかいえません。(^^;
ということなので、今後は最新の0.33差し替え版を使ってみて下さい。


iron2様、
>最新版33aのDLしました。
>MNDL SEARCH 4.78秒 スマホSW  4.72秒
>MNDL FINE  17.46秒 スマホSW 17.53秒

>旧版32a
>MNDL SEARCH 4.82秒 スマホSW  4.74秒
>MNDL FINE  18.31秒 スマホSW  17.56秒

>Ticksは正確になりました。

一瞬、スマホスイッチという新機能が!!
と思ったらスマホのストップウオッチでの計測なんですね。(^^;

正確になってよかったです。(^^)


>fx-cg20 USB-POWER中の電池交換時計初期化無し
     裏面リセットボタン後初期設定アルカリ、Ni-MH
>どちらを選んでも時計初期化無し
>>USB-POWER中の電池交換は吉かも。

USB給電はACアダプタみたいなものですから、電池交換時のお勧め技かもしれません。


>ただ、時計がいつ狂うのかにらめっこしていないので
>わかりませんでした。
>管理人様のタイムマシン症状は経験ありません。

うちのCG20も電池交換時以外で時計が狂った経験が無いので同じ感じでしょうか。
CG10/20はfx-5800Pやfx-9860GII同様にレジューム復帰が完璧な電卓なので、そこのあたりは良く出来た子ですね。(^^)

Gosubの件で

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

MNDELVWのGosub化を進めているのですが、
Gosub A と変数Aは被りますでしょうか?
A~Iまで未使用大文字変数でラベル指定していましたが
Jでループ変数中にGosub Jとすると認識しませんでした。

現在、仕方ないのであちこちに直接記述しています。
prog ""を使って回避できますでしょうか?
progはまだ試していません。

もうなんか、変数管理限界www

コンパイラー版の暁には性能よりstatic変数とauto変数よろ~
苦しいよ~、楽しいよ~M覚醒!

これからもよろしくお願いします。

C.Basic for CG v0.33α (GetKey1/2計測リセット+楕円の回転+Paintコマンド追加版)差し替えDLしました

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

最新版33aのDLしました。
MNDL SEARCH 4.78秒 スマホSW  4.72秒
MNDL FINE  17.46秒 スマホSW 17.53秒

旧版32a
MNDL SEARCH 4.82秒 スマホSW  4.74秒
MNDL FINE  18.31秒 スマホSW  17.56秒

Ticksは正確になりました。

fx-cg20 USB-POWER中の電池交換時計初期化無し
     裏面リセットボタン後初期設定アルカリ、Ni-MH
どちらを選んでも時計初期化無し

USB-POWER中の電池交換は吉かも。

ただ、時計がいつ狂うのかにらめっこしていないので
わかりませんでした。
管理人様のタイムマシン症状は経験ありません。
初期化 2010/01/01です。

これからもよろしくお願いします。

時計の狂い(報告)+(なんちゃってトリガー報告)

sentaro様、管理人様、iron2様、皆様  こんにちは

あれ? ツルがやったのは、ただのリセットだったのですか?
ごめんなさい、電池交換で2010.10.01になるようにしていたのでしたっけ?
あ、時計バックアップ電池は無いのでしたね・・・
忘れておりました・・・ お騒がせいたしました

Re:Re: Re:時計の狂い(報告)+(トリガー報告)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>私のCG50でも、時計が恐ろしく遅れます。1日で3~14時間遅れます。

え?!またまたそれは思いっきりズレてますね。(^^;

ちなみにうちのCG50は電池交換で合わせて以来、3日間全然ズレてないのですが、
ここまで来るとハードの不具合なのかC.Basicの不具合なのか切り分けも難しいところですが、
C.Basicを使用している共通点があるので、C.Basicの不具合の可能性は高いかもですが…
一切使わないでも狂うとしたら純正OS+ハード上の問題といえますね。

としても、管理人様とツル様ともにズレまくってるわけなので、
CG50ユーザーの3人のうち2人がずれているので、ズレ発生率67%です。
そこまで確率の高い不具合となると、不具合ではなく仕様の可能性もありそうで、
ますます謎が深まりますね。(^^;


>あと、電池交換した時、時計がリセットされないことが多いのですが、7800年になることが再発しました。
>昨日は、さらに激しくタイムトリップして、8000年になりました。チョット未来を見てきたい気分になりました(^^;

も、もしかして、管理人様のCG50はタイムマシン?だったりして?(^^;


ツル様、
>只今、時計が狂うトリガーの一つを見つけました。

ぉお!

>同じく、また電池を再セットして、今度はNIーMH を選択。
>この場合も同じく、2010.10.1 00:00・・・ になりました。

これで時計は完全にリセットされたことになると思います。
この後、ずれるかどうかの確認をお願いします。(^^)


というわけで、C.Basicの可能性もありということで、ちょこっと時計関連修正してみました。

C.Basic for CG v0.33α (GetKey1/2計測リセット+楕円の回転+Paintコマンド追加版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG033.zip
・時計の読み出し/書き込みをSysCallに変更しました。

これで直るとは思えないのですが、もし直ったとしたら、今までごめんなさいです。(^^;

Re:Re: Re:時計の狂い(トリガー報告)

sentaro様、管理人様、iron2様、皆様  こんにちは

只今、時計が狂うトリガーの一つを見つけました。

関連する要素の一つと考え、ツルが使用の充電式EVOLTAが、残量はまだまだありましたが、電卓の電源を切ってから故意に取り外して再装填し、起動の電池設定にて、わざとアルカリ電池を選択しました。

すると、ご報告済み通り、日にちは合っていて、時刻が約2時間遅れ状態のままだったのが、再起動後、日時を確認したら狂っていました。

2018.1.18 16:00・・・  だったのが、2010.10.1 00:00・・・ になりました。

同じく、また電池を再セットして、今度はNIーMH を選択。
この場合も同じく、2010.10.1 00:00・・・ になりました。

>裏面のリセット押しは試されたでしょうか?
非常時しか押さないので、試したことはありません。

Re: Re:時計の狂い(報告)

sentaro様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人のやすです。

私のCG50でも、時計が恐ろしく遅れます。1日で3~14時間遅れます。

あと、電池交換した時、時計がリセットされないことが多いのですが、7800年になることが再発しました。
昨日は、さらに激しくタイムトリップして、8000年になりました。チョット未来を見てきたい気分になりました(^^;

はたして人類は生き延びているのか、はたまた宇宙へ出て行ってしまったのか...
今のままだと、人類は存続していないとする医学系の学者 (NASAの友人から聞いた話)は結構いるみたいで、生物学的な理由や技術的な理由でなくて政治的な理由だそうですが...

Re:時計の狂い(報告)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>ほぼ毎日、電波時計に合わせてセットしていますが、1日経つと狂います。
>今朝は、2018/10/01 になっていました。二日前に合わせていたのに・・・
>いつ狂っているのかも出現タイミング、トリガーが全く掴めません。

う~ん、その状況ではとても時計アプリどころではないですね。(^^;
裏面のリセット押しは試されたでしょうか?


>えー、ツルは野球は嫌いなのです。特にプロ野球が・・・
>でも、やるのは好きなのです。ボールを投げると、とてもコントロールがいいのです。ということで? FLASHゲームでのBATTING系は爽快感があって好きです。
>それを自分好み仕様で作ってみたくて挑戦中です。

なるほど了解です。(^^)
私は実際にソフトボールとかやってましたけど、バッティングセンターには結構つぎ込んでしまいました。(^^;


>VRAMは、テキスト用とグラフィックス用との2個だけですよね?

はい、2個といえば標準的には2個なのですが、
CG50ではPictを使えば20個まで仮想的に画面を増やせます。
また、行列に画面データを置くことで、メモリの許す限り仮想画面が持てます。


>テキスト用にBmpLoad出来るのでしたっけ?

Screen.T
を指定してからBmpLoadでOkです。(^^)


>片方を、描画の影響なしに出来れば具合がいいと思って考えていました。

グラフィックスを背景専用にして、実際に動く画面はテキスト画面だけにして合成すれば
背景が消されることもなくテキスト画面に自由に描画できます。



>ここ数日間の数々の差し替え版は、無理に差し替えしなくても、
>最新 C.Basic for CG v0.33α を入れると含んでいるので問題なしという理解でよろしいでしょうか?(時間がなくて・・・)

はい!問題なしです。(^^)

万が一、新バージョンが致命的なバグ有りだった場合は別ですが、
新バージョンでは従来の機能+新機能なので、以前のバージョンは実質的に役割を終えます。(^^;

時計の狂い(報告)

sentaro様、管理人様、iron2様、皆様  こんにちは

sentaro様
>そういえば、時計の狂う状況はどうでしょうか?
ほぼ毎日、電波時計に合わせてセットしていますが、1日経つと狂います。
今朝は、2018/10/01 になっていました。二日前に合わせていたのに・・・
いつ狂っているのかも出現タイミング、トリガーが全く掴めません。

で、今朝 正確に(日時を)合わせておいたのですが、只今 01:30 となっていて、約2時間遅れの表示です・・・?  日付は問題なしです。

>BATTINGゲームは何かそそりますね。(^^)
えー、ツルは野球は嫌いなのです。特にプロ野球が・・・
でも、やるのは好きなのです。ボールを投げると、とてもコントロールがいいのです。ということで? FLASHゲームでのBATTING系は爽快感があって好きです。
それを自分好み仕様で作ってみたくて挑戦中です。

背景に野球場の写真を設定して、投球されたボールを弧の軌跡で動かすのに苦労しています。軌跡自体ではなく、動かすには、合わせて消去も必要なことはお分かりだと思います。その消去により、背景にも影響が出るので格闘中です。
VRAMは、テキスト用とグラフィックス用との2個だけですよね?
テキスト用にBmpLoad出来るのでしたっけ?
片方を、描画の影響なしに出来れば具合がいいと思って考えていました。
あ、書いているんですね。はい、読みます、ごめんなさい(笑)

>楕円の描画状況はいかがでしょうか?
はい!ごめんなさい! まだ取り掛かっておりません!

ここで、ツルからの素朴な(でも重要な)質問です。

ここ数日間の数々の差し替え版は、無理に差し替えしなくても、
最新 C.Basic for CG v0.33α を入れると含んでいるので問題なしという理解でよろしいでしょうか?(時間がなくて・・・)

Re:Re:C.Basic for CG v0.33α (GetKey1/2計測リセット+楕円の回転+Paintコマンド追加版)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
楕円の描画状況はいかがでしょうか?
何か足りない機能ありましたら出来る範囲で付け足します。(^^)

>1. バッテリーインジケーターは、進捗がドンと下がりました。
>それで時間が掛かっております。表示の信頼性確保を第一に考えてもいますので、検証にも時間を割いています。
>2. カレンダーも、とうに半分ほど出来ているのですが、時間が経つと各部見直したくなったりと、都度進捗度が変わります(笑)

了解です!
そういえば、時計の狂う状況はどうでしょうか?


>3. そんな一方で、無性にBATTING ゲームを作りたくなったり、波を作りたくなったり・・・ もう過去の差し替え10回分位も出来ていない状況で困っています。

BATTINGゲームは何かそそりますね。(^^)



管理人様、
>記事とダウンロードページを更新しました。

早速にありがとうございます!(^^)


>これですが、リセットでなくて、一旦停止にして欲しいプログラムが手元に幾つかあります。

とりあえず、リセットを一旦停止に変更してみました。


>そこで、'# のモード設定で、一旦停止後 何かキーが押されたらリスタートするようにもできないでしょうか?
>おそらく SET UP項目での設定との連動なって、面倒だとは思いますが、ご一考頂ければうれしいです。

これは例えば、[F6]を押すとリセット再スタート、
それ以外のキーでは一時停止からの再スタートという感じでしょうか?



C.Basic for CG v0.33α (GetKey1/2計測リセット+楕円の回転+Paintコマンド追加版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG033.zip

・GetKey1/2実行中は時間計測を一時停止するように仕様変更しました。

Re: C.Basic for CG v0.33α (GetKey1/2計測リセット+楕円の回転+Paintコマンド追加版)

sentaro様、ツル様、iron2様、CGユーザーの皆様


管理人のやすです。


> C.Basic for CG v0.33α (GetKey1/2計測リセット+楕円の回転+Paintコマンド追加版)
> http://pm.matrix.jp/CB/CBASICCG033.zip


頂きました。ありがとございます。
記事とダウンロードページを更新しました。


> ・GetKey1/2実行後に時間計測をリセットするように仕様変更しました。

これですが、リセットでなくて、一旦停止にして欲しいプログラムが手元に幾つかあります。

そこで、'# のモード設定で、一旦停止後 何かキーが押されたらリスタートするようにもできないでしょうか?
おそらく SET UP項目での設定との連動なって、面倒だとは思いますが、ご一考頂ければうれしいです。

Re:C.Basic for CG v0.33α (GetKey1/2計測リセット+楕円の回転+Paintコマンド追加版)

管理人様、sentaro様、iron2様、皆様  こんにちは

sentaro様
ありがとうございましたっ!!!!!
お疲れ様でした!

管理人様
sentaro様に要望を叶えて頂きました。見守って頂きありがとうございます。
Progで回転はできるのでは?とのことでしたが、ご連絡の通りの実情もあり、コマンド対応となりました。お送りしましたBEATは単なるテスト用たたき台ですが、
あれも更に容易に発展が出来ることになります。

ツルの現状をご報告致します。
1. バッテリーインジケーターは、進捗がドンと下がりました。
ゴールを思いっきり先へ伸ばしたからです。
いくら既存の表示がつまらないとは言え、あのサイズで工夫しても高が知れていることを痛感しました。もう、楽しんじゃうことにしました!
それで時間が掛かっております。表示の信頼性確保を第一に考えてもいますので、検証にも時間を割いています。

2. カレンダーも、とうに半分ほど出来ているのですが、時間が経つと各部見直したくなったりと、都度進捗度が変わります(笑)

3. そんな一方で、無性にBATTING ゲームを作りたくなったり、波を作りたくなったり・・・ もう過去の差し替え10回分位も出来ていない状況で困っています。
この苦しさを楽しんでもいます。

C.Basic for CG v0.33α (GetKey1/2計測リセット+楕円の回転+Paintコマンド追加版)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様よりご要望のありました楕円の回転ですが、一応実装できましたのでバージョンアップです。(^^)
あと、Paint機能も同時に追加実装してみました。

C.Basic for CG v0.33α (GetKey1/2計測リセット+楕円の回転+Paintコマンド追加版)
http://pm.matrix.jp/CB/CBASICCG033.zip
・ML系コマンドに_Paintを追加しました。 [SHIFT][F4](SKETCH)-[F3](ML)-[F6][F6][F6]-F5](_Paint)
  http://fussy.web.fc2.com/algo/index.htm
  こちらのPaintサンプルプログラムをほぼそっくりそのまま利用させて頂いています。
(書式)_Paint x,y,Color[,確率/透過率]
(例)_Paint 100,100,1
 座標(100,100)を始点にして描画色で塗りつぶします。
(例)_Paint 100,100,0
 座標(100,100)を始点にして背景色で塗りつぶします。

・ML系コマンドの楕円描画コマンドの_Elips、_FillElipsにおいて回転された楕円の描画をサポートしました。
(書式)_Elips X, Y, Rwidth, Rheight, Color[,確率/透過率] [,回転角(度)]
(書式)_FillElips X, Y, Rwidth, Rheight, Color[,確率/透過率] [,回転角(度)]
(例)_Elips 100,100,80,40,1,,45
 座標(100,100)を中心に横罫80ドット、縦径40ドットの楕円を45度傾けて描画します。

・GetKey1/2実行後に時間計測をリセットするように仕様変更しました。

・ReadmeCG_J.txt ManualCG_J.txt 同梱しました。



ツル様、
>Paint は純正ではグラフ描画時に使うことができるコマンドのようですが、
>C.Basicでは触れていませんよね? 何か使用予定がございますか?

純正のPaint機能は使ったことがないのですが、(^^;
グラフでの塗りつぶし機能と思われるので、C.Basicでは実装予定はありませんです。

ただ、Paint機能としては意味があるので、今回ML系コマンドで実装してみました。(^^)



iron2様、
>まぁ、sentaro様の事ですから、”はい、そういうことで実装しました”
>更新です!。。。となるんじゃないでしょうか?(笑)

はい!そういうことで実装しました。(笑)

Getkey1o/2の件

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

sentaro様
>もしかして、もしかしないでも、GetKey1/2でも計測リセットした方が良さそうでしょうか?

うーん、私は長いものに巻かれてしまう派なので、判断できないのです。

また、Cbaiscプログラム内ではTicks使います。
そのため、良いのか悪いのか判断できないですけど、
一旦停止してしまう動作が同じ意味であるならば、
◢と同じ計測リセットで良い気がします。

まぁ、sentaro様の事ですから、”はい、そういうことで実装しました”
更新です!。。。となるんじゃないでしょうか?(笑)

いつもありがたいと思っています。

これからもよろしくお願いします。

Re:BmpRotate  表示速度はどうなのか

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>そのコマンドをまだ試していませんが、Bmpとして読み込んで処理するということですね? すると、一番気になるのが、表示速度です。

はい、ビットマップデータとして処理します。
ので、大きな範囲となると速度は期待できません。(^^;

管理人様の書き込みにありましたように、楕円の各座標値に回転処理することでなんとかいけそうなので、その方向で任意角度の回転楕円表示を実装してみます。(^^)

Gosub マニュアル

sentaro様

>マニュアルの説明でOkでしたでしょうか?
只今、一生懸命に把握しようとしております!
いけそうです。(笑)
マニュアルの記述に不足は無いようで、ツルの脳に不足が認められます(笑)
頑張ります!

ご対応ありがとうございます!

BmpRotate  表示速度はどうなのか

sentaro様  お世話になっております。

>ちなみにv0.32より可能になった_BmpRotateコマンドを使えば、描画した楕円を斜めにすることは一応出来ます。

そのコマンドをまだ試していませんが、Bmpとして読み込んで処理するということですね? すると、一番気になるのが、表示速度です。

実際の描画では何層にも重ね合わせで描くことがあります。
消すオブジェクトが容易に認められないうちに上書きされることが具合がいいのです、管理人様へお送りしたBEATは、そのテストも兼てのProgです。
いつもわがまま言ってごめんなさい。

Re:今日は誕生日だったりします

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

楕円調査とCG版のマニュアル改訂していたところ、書き込みが一気に増えていて焦りました。(^^;

iron2様、
MONTECHR表示の謎、無事解決で何よりです。(^^)
もしかして、もしかしないでも、GetKey1/2でも計測リセットした方が良さそうでしょうか?


管理人様、遅ればせながら、お誕生日おめでとうございます!(^^)

>Casio Basic では、自分で書くプログラムでは、文字列コマンドを使う必要性を感じなくて、全く使ったことが無いんです。
>あまり需要が無い感じがしています。さらに純正ではとても動作が遅いので、さらに使おうという気にならないのが正直なところです。

純正でのサポートは遅かったですし、遅いと余計使う気が無くなりますね。(^^;

>但し、C.Basicでは動作が速いので、今になって改めて文字列コマンドを整理しておこうという気持ちになっています。

表示系では文字列処理した方がスッキリな場合も多いので、今後は文字列が便利に使えるところは積極的に、でお願いできれば幸いです。(^^)


ツル様、
マニュアルの説明でOkでしたでしょうか?

Re:Gosub Paint Fillelips (質問)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>Gosub コマンドに続く記述で、ラベル名,1 などと記述されていますが、
>,1 部分の意味、仕様などを教えてください。どこにも説明書きは無いですよね? コピペで使ってはいますが、理解していないままの記述が気持ち悪くています。

Gosubの引数はProgコマンドの引数形式をそのまま引き継いでいるのでそれと同じ仕様です。
マニュアルにLocal~Prog~Gosubの流れで書いてありますので参照されてみて下さい。(^^)

CG版マニュアルに改訂して差し替えアップしました。
(C.Basicの変更はありません。(^^;
http://pm.matrix.jp/CB/CBASICCG032.zip


>結局、斜め楕円表示をお願いしたいです。(斜め楕円の描画というよりも、斜め楕円による上書きによる消込をしたいです)

斜め楕円の描画は計算式で求められるはずなので、それでしたら実装することは難しくは無いと思います。(^^)
まずはちょこっと楕円描画のお試しプログラムを組んで実験してみないといけないので少しお待ちくださいませ。

ちなみにv0.32より可能になった_BmpRotateコマンドを使えば、描画した楕円を斜めにすることは一応出来ます。
http://pm.matrix.jp/CB/ELIPSRT.g3m
楕円回転サンプルプログラム

re:今日は誕生日だったりします

管理人様

iron2です。

日頃、お世話になっている管理人様の年輪が
太くなられたという事で

おめでとうございます!

英気を養ってくださいまし。

Re:図形の回転

管理人様、sentaro様、iron2様、皆様

管理人様
オブジェが回転出来たら素晴らしいことになります。
以下の通りになっています。

_FElipsInRct
(説明)VRAMに楕円を描画し中を塗りつぶします。
(書式)_FElipsInRct X1, Y1, X2, Y2, Color
 (X1,Y1)-(X2,Y2)の範囲に内接する楕円を描画し、Colorで塗りつぶします。

つまり、左上と右下とを指定した矩形への描画なので、斜め対応していないということです。

Re: Re:Re: Gosub ,1 ?

ツル様、sentaro様、iron2様、皆様

管理人のやすです。

> Gosubに続く、ラベル名,1  と書かれている場合の、 ,1 の部分、
> 例に書かれている Gosub A,X,Y の、 ,X,Y の部分についてさっぱり分かりません。教えてください。


Gosub の説明の上に、以下の記述があります。これでご理解頂けるかも知れません。一度お読みになっては如何でしょうか?


-------------------------------------------------------------------------------
Local
-------------------------------------------------------------------------------
(説明)デフォルトでは小文字変数は全てグローバル変数扱いですが、任意の小文字変数をローカル変数とすることが出来ます。
    プログラム内でLocalコマンドで変数指定するとその変数はそのプログラム内だけで使われるローカル変数となります。
(例)Local x,y,x
 ローカル変数としてx,y,zを指定します。
 指定できるのは小文字変数のみで最大10個まで指定できます。
 またこの変数の順で引数付きのProgとGosubでローカル変数に代入されます。

(例)サブプログラム"TEST"内で、
   Local x,y,x
 (記述する位置はサブプログラム内であればどこでも可ですが、同じサブプログラム内で複数のLocalがある場合は最後に記述されたLocalのみが有効になります。)

   Prog "TEST",123,456,N
 サブプログラム"TEST"の実行時に、ローカル変数としてx,y,zが確保され、
 123→x、456→y、N→z、それ以外はグローバル変数となります。

ローカル変数が使えるようになったことで再帰プログラムも可能になりますが、
現状ではメモリ制限でネスト30層程度までとなっています。


-------------------------------------------------------------------------------
Prog
-------------------------------------------------------------------------------
(説明)Localコマンドを使うことで引数を記述することが出来ます。
(例)
 "MAIN"プログラム
  10→X
  20→Y
X+1→a
Y×2→b
  Prog "SUB",X,Y
  Disp Ans
Disp a
Disp b

 "SUB"プログラム
  local a,b
Dips a
Disp b
  Return a+b
-------------実行結果
10
20
30
11
40
-------------

 2つの数値の和を計算するサブプログラムを呼び出し結果を表示します。
 サブプログラム内ではa,bはローカル変数として確保され、サブプログラム内ではグローバル変数a,bにはアクセス出来ません。
 メインプログラムのa,bはグローバル変数であり、サブプログラムのa,bの影響を受けません。


-------------------------------------------------------------------------------
Return
-------------------------------------------------------------------------------
(説明)サブルーチンからメインルーチンに戻ります。返り値を指定することができます。
(例)Return 式
  返り値をAnsに代入してメインルーチンに戻ります。

 計算結果は常にAnsに代入されるので、

 式
Return

 でも同じ結果になります。

=====

取り急ぎ...

今日は誕生日だったりします

ツル様、sentaro様、iron2様、皆様


管理人のやすです。

私事ですが、今日は誕生日。

正月や 冥土の旅の一里塚
 めでたくもあり、めでたくもなし

という歳になっていますが、一応家族は祝ってくれます。

...ということで、今日はこれにて失礼致します。

Re:Re: Gosub ,1 ?

管理人様、sentaro様、iron2様、皆様

管理人様
早々にご対応ありがとうございます。
マニュアルに記載があったのを今見つけました。
すみませんでした。見落とししていました。が、やはり分かりません。

Gosubに続く、ラベル名,1  と書かれている場合の、 ,1 の部分、
例に書かれている Gosub A,X,Y の、 ,X,Y の部分についてさっぱり分かりません。教えてください。

図形の回転

ツル様、sentaro様、iron2様、皆様

管理人のやすです。

グラフィックスについてのド素人なので、的外れの恐れ大なのですが、思い切ってコメント致します。

ツル様のご要望は、図形の回転を自由に行いたいと置き換えられないか? と素人は思うわけです。
で、私としては昔懐かし高校数学ですが、2次元での回転と言えば、

x' = x*cos(θ) - y*sin(θ)
y' = x*sin(θ) + y*cos(θ)

が使えます。これを使って、回転した長方形の4点の座標を計算した上で、_ElipsInRct を使うというのは、ダメでしょうか?

あ、自分で実際にプログラムを試さずに、書いています。ごめんなさい...

Re: Gosub

ツル様、sentaro様、iron2様、皆様


管理人のやすです。

一応、C.Basic for CG の配布ファイルに含まれている ManualFX_J.txt に以下の記述があります。

-------------------------------------------------------------------------------
Gosub
-------------------------------------------------------------------------------
(説明)単一のプログラム内でサブルーチンが使えます。
(例)Gosub A
 Label Aから始まるプログラムを実行しReturnコマンドで復帰します。
(例)Gosub A,123,456
 引数もProgコマンド同様に使えます。

(例)
  10→X
  20→Y
  X+1→a
  Y×2→b
  Gosub A,X,Y
  Disp Ans
  Disp a
  Disp b
  Stop

  Lbl A
  local a,b
  Dips a
  Disp b
  Return a+b
-------------実行結果
  10
  20
  30
  10
  20
-------------

 Progコマンドでのプログラム例を、Gosubを使用するプログラムに書き換えたプログラムです。
 a,bはローカル変数として確保され、このプログラム内ではグローバル変数a,bにはアクセス出来ません。

=======

これでは分かりにくいというのとでしょうか?

どこが分かりにくいのか、何に引っかかるのか、、お聞かせ頂けませんか?
"Casio Basicプログラミング"の記事にユーザー代表の声として反映させたいと思うので...

よろしくお願い致します。



Re: Re:StrMid( コマンドリファレンスを作りました

sentaro様、ツル様、iron2様、CGユーザーの皆様、


管理人のやすです。

> 文字列コマンドリファレンスが続々ですね。

はい、これまで文字列コマンドには一切触れていなかったので、ここで一気にコマンドリファレンスでカバーしようと思っています。


> パラメータの実質最大値は255文字までとなっております。(^^;

C.Basicに関する最大文字数について、追記しておきました。
ご指摘、ありがとうございます。


> StrRightとStrLeftはStrMidで代用出来るので、汎用性のあるコマンドですね。(^^)
> 数値を文字列化するのときのStrMidの使い方は昔からの定石といえるものなのですが、

あ、そうなんですね!

これまで気合いの入ったプログラムは全てCで書いてきており、文字列コマンドはあまり使わず、自分で配列を弄って処理するスタイルでした。VBで文字列を使うことは少なく、たまに使う時はコマンドリファレンスを見ながら適当にやっていました。
Casio Basic では、自分で書くプログラムでは、文字列コマンドを使う必要性を感じなくて、全く使ったことが無いんです。

あまり需要が無い感じがしています。さらに純正ではとても動作が遅いので、さらに使おうという気にならないのが正直なところです。

但し、C.Basicでは動作が速いので、今になって改めて文字列コマンドを整理しておこうという気持ちになっています。


> >純正Casio Basic (fx-CGシリーズ)の基本色番号から対応する色の名前を出力するプログラム例
>
> 管理人様のこのパターンでの応用例も秀逸ですね。(^^)

ありがとうございます。Cの文字列処理で多様していた手法だったりします。


MONTECHR表示の謎その後解決しました

管理人様、sentaro様、ツル様、CGユーザーの皆様

sentaro様
MONTECHR表示の謎解決しました。

RefrshCtl DD:Graph time 5/128
で初期画面表示できました。

また、◢を入れた場合
RefrshCtl DD:All time 5/128
でも表示しました。

RefrshCtl DD:All を常用するため
◢をつかうことにしました。

ありがとうございます。

Gosub Paint Fillelips (質問)

管理人様、sentaro様、iron2様、皆様

sentaro様
何点か質問です。

Gosub コマンドに続く記述で、ラベル名,1 などと記述されていますが、
,1 部分の意味、仕様などを教えてください。どこにも説明書きは無いですよね? コピペで使ってはいますが、理解していないままの記述が気持ち悪くています。

Paint は純正ではグラフ描画時に使うことができるコマンドのようですが、
C.Basicでは触れていませんよね? 何か使用予定がございますか?

グラフィックスで、少しは見ごたえのあるものを描きたいと思っても、現状のコマンド群ではかなり制約があり、例えて言うと、犬の足跡ですら描画が困難です。出来る限り現状のコマンドでこなしたいと思い、そこにProg作りの楽しさもあるものの、限界を痛感しています。

ツル作成の方向キーの描画は、片手間に作った遊びではありますが、更にリアル感を出そうとは考えました。が、かなり困難です。
それで、ツルが思っていますのが、Fillelips コマンドの進化でして、中心座標、横径、縦径をセットしますが、斜めに描画出来ないことが大きな壁になっています。

そもそもRct(矩形)が菱にならないことから始まっているのかと思いますが、
菱が作れると、InRct(外接四角形への内接?)も可能になり・・・という芋づる式なのかな?と考えています。

結局、斜め楕円表示をお願いしたいです。(斜め楕円の描画というよりも、斜め楕円による上書きによる消込をしたいです)
如何なものでしょうか? かなり面倒ならば無理にお願いはしません。
現状出来る範囲で手を打つだけなので。ご見解をお願い致します。

Re:StrMid( コマンドリファレンスを作りました

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>StrMid( コマンドリファレンスを作りました。純正互換です。
http://egadget.blog.fc2.com/blog-entry-645.html

文字列コマンドリファレンスが続々ですね。
一応補足ですが、現在のC.Basicでは扱える文字列が最長で255文字なので、
パラメータの実質最大値は255文字までとなっております。(^^;


>仕様だけみれば、なんだそれだけ?と思われがちな StrMid( ですが、結構使いでがあると思っています。
>以前、sentaro様ご提案の 数値を文字列に置き換える StrMid( を使ったロジックなど、とても良い StrMid( の使い方だと思っています。これについては、UCF でもご紹介なさっていますよね!

StrRightとStrLeftはStrMidで代用出来るので、汎用性のあるコマンドですね。(^^)
数値を文字列化するのときのStrMidの使い方は昔からの定石といえるものなのですが、

>純正Casio Basic (fx-CGシリーズ)の基本色番号から対応する色の名前を出力するプログラム例

管理人様のこのパターンでの応用例も秀逸ですね。(^^)


>純正Casio Basic の3桁区切りサブルーチンを作った時、純正の指数表示について未だに分からない点があったりします。
http://egadget.blog.fc2.com/blog-entry-619.html
>指数の桁数はを決定するロジックがまだよく分かっていません。

んと、指数の桁数というとNorm1とNorm2の違いみたいな感じでしょうか?

StrMid( コマンドリファレンスを作りました

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。


StrMid( コマンドリファレンスを作りました。純正互換です。
http://egadget.blog.fc2.com/blog-entry-645.html

仕様だけみれば、なんだそれだけ?と思われがちな StrMid( ですが、結構使いでがあると思っています。
以前、sentaro様ご提案の 数値を文字列に置き換える StrMid( を使ったロジックなど、とても良い StrMid( の使い方だと思っています。これについては、UCF でもご紹介なさっていますよね!

Casio Basicプログラミングの "実用編" で紹介しようかと思っています。

なお、コマンドリファレンスでは、基本色の色番号から色の名前を表示するプログラムを紹介しました、本来は実用編に入れるべきなのでしょうが、自分でも工夫の余地があると思って貰えるように、敢えて入れました。



> 私的にはもうバイブル的に簡潔で分かりやすいので必要にして十分と思います。
> 初めてSprinft( を見る人にとっても、使用例があるので分かりやすいのではないかと思います。(^^)

ありがとございます。それでは現状で一旦OKとしますね。

純正Casio Basic の3桁区切りサブルーチンを作った時、純正の指数表示について未だに分からない点があったりします。
http://egadget.blog.fc2.com/blog-entry-619.html

指数の桁数はを決定するロジックがまだよく分かっていません。


> 現在の仕様は指数表示がCasioBasic仕様になってしまっているのですが、C.Basicのコマンドなので特に問題ないかもしれませんよね?(^^;

はい、良いと思います。


> 大変わかりやすいリファレンスと思いますので、
> CG版マニュアルの方にもそっくり取り入れたいと思います。(^^)

はい、取り入れる時に何か問題があれば、是非教えて下さい。

Re:Re: Sprintf( のコマンドリファレンス、作りました

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>記憶を頼りに色々と設定したら、アレッというのがあって、ANSI C のガイドラインを片手に順に試してみました。

さすが管理人様です。(^^)


>ということは、FX版と CG版でも異なるということですね。

はい、現状では互換仕様にはなってないです。


>従って、FX版は Casio SDK準拠、CG版は記載した書式指定子の内容になる、といった感じで書き直しました。
>Sprinft( が便利と思う方はCに馴染みがあるという前提に立てば、現在の記載内容程度でも良いかな?と詳しすぎない程度に記述量を抑えました。

私的にはもうバイブル的に簡潔で分かりやすいので必要にして十分と思います。
初めてSprinft( を見る人にとっても、使用例があるので分かりやすいのではないかと思います。(^^)


>指数表示の桁数も電卓自体の仕様に従っているようなので、ここも詳しい説明を割愛しました。

CGでのライブラリが互換動作するようになればFX版と同じになりますが、
現在の仕様は指数表示がCasioBasic仕様になってしまっているのですが、C.Basicのコマンドなので特に問題ないかもしれませんよね?(^^;


>このあたりも追記しました。
>ということで、コマンドリファレンスを差し替えました。
http://egadget.blog.fc2.com/blog-entry-640.html

お手数おかけしました。
大変わかりやすいリファレンスと思いますので、
CG版マニュアルの方にもそっくり取り入れたいと思います。(^^)

Re: Sprintf( のコマンドリファレンス、作りました

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。


> >色々と試したところ、ANSI C とチョット違うようですね。
>
> はい、そのとおりです。
> 早くも気が付かれてしまいました。(^^;

記憶を頼りに色々と設定したら、アレッというのがあって、ANSI C のガイドラインを片手に順に試してみました。

> FX版ではSDK仕様のまんまだったのですが、CG版では使えるライブラリにちょっと不具合があってそのままでは使えないので、あれこれと細工した結果、ANSI C互換が崩れております。(^^;

ということは、FX版と CG版でも異なるということですね。

従って、FX版は Casio SDK準拠、CG版は記載した書式指定子の内容になる、といった感じで書き直しました。

Sprinft( が便利と思う方はCに馴染みがあるという前提に立てば、現在の記載内容程度でも良いかな?と詳しすぎない程度に記述量を抑えました。


> 逆に、指数表示がE/eではなく純正の指数表示になったりといい面もありますが、

指数表示の桁数も電卓自体の仕様に従っているようなので、ここも詳しい説明を割愛しました。


> Sprintfコマンドは厳密な引数チェックをしないので、システムエラーになる可能性が高いコマンドなので、
> Sprintfでの表示をSprintfを使わないで他の文字関数だけで実現するというのは文字関数の使用例として良い題材になるかもしれませんね。(^^)

このあたりも追記しました。

ということで、コマンドリファレンスを差し替えました。
http://egadget.blog.fc2.com/blog-entry-640.html


Re:MONTECHR表示の謎その後 + Sprintf( のコマンドリファレンス、作りました

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>RefrshCtl DD:All time 5/128 です。

了解です。
Allの設定なので、Textコマンドもリフレッシュコントロールになる設定ですね。
それでText表示ができなかったと思います。
Graphだけの設定にすればそこのところは解消できます。(^^)


>While Getkey<>31 ←があるからかな?キャプチャの時と同じ?
>WhileEnd

この部分で計時が止まらないので、起動後にEXEを押すまでの時間が加算されてしまいます。
GetKey1/2でも止まらないので、ここは三角マークの一時停止コマンドに差し替えると良いです。
一時停止コマンド解除後から計時がリスタートするので、時間計測でのスタート用にはお薦めです。(^^)




管理人様、
>Sprintf( のコマンドリファレンスを作りました。
http://egadget.blog.fc2.com/blog-entry-640.html

早速にありがとうございます!


>色々と試したところ、ANSI C とチョット違うようですね。

はい、そのとおりです。
早くも気が付かれてしまいました。(^^;

FX版ではSDK仕様のまんまだったのですが、CG版では使えるライブラリにちょっと不具合があってそのままでは使えないので、あれこれと細工した結果、ANSI C互換が崩れております。(^^;
逆に、指数表示がE/eではなく純正の指数表示になったりといい面もありますが、
Sprintfコマンドは厳密な引数チェックをしないので、システムエラーになる可能性が高いコマンドなので、
Sprintfでの表示をSprintfを使わないで他の文字関数だけで実現するというのは文字関数の使用例として良い題材になるかもしれませんね。(^^)

re:Sprintf( のコマンドリファレンス

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

Sprintf(のCとCBasicの主な違いは
本家はコマンド内のバッファーに変換文字列を格納するのに
対して
CBasic版は戻り値で変換文字列を格納する
ということですね。

わかりやすいページありがとうございました。

これからもよろしくお願いします。

Sprintf( のコマンドリファレンス、作りました

sentaro様、iron2様、ツル様、CGユーザーの皆様


管理人のやすです。

Sprintf( のコマンドリファレンスを作りました。
http://egadget.blog.fc2.com/blog-entry-640.html


書式指定子について説明を入れましたが、間違い、追加などありましたら、ご指摘願います。

色々と試したところ、ANSI C とチョット違うようですね。

よろしくお願い致します。

MONTECHR表示の謎その後

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

sentaro様
>画面リフレッシュの設定はどうなっているでしょうか?
RefrshCtl DD:All time 5/128 です。
OFF
Grph  time5/128
それぞれ試しましたが表示は変わりませんでした。
_DispVram  ←これか、もしくは
Getkey1 ←これで起動時テキスト表示

While Getkey<>31 ←があるからかな?キャプチャの時と同じ?
WhileEnd


計測し方は、EXE起動、EXEスタート
(同時押しに近いトリプルクリックの感じ)
Fx-cg20 250MHz ←壊れてるのか?
OFF      12.34秒
Graph  Time5/128  10.50秒
ALL Time5/128 1.63秒
ALL   Time0/128 ∞   1.29秒~1.03秒(電池で変わる)
画面が出なかったのはTime0で全部描画するまで表示しなった時
のようだった。

Normalで倍速でも症状同じ
ALL    Time5/128  2.83秒 

まぁ純正にこだわるならCasicBasicで実行すればいいだけですけど
いまのマンデルブロとかExtd、ML使いまくりだし、SysCallまで。
リフレッシュは関係なさげ~。マンデルブロが悪さしてたりしてwww

これからもよろしくお願いします。



C.Basic for CG v0.32α (Menuコマンド互換化+透過率改善+ToStr(変更+Sprintf修正版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ずっと残っていたSprintfコマンドの不具合ですがやっとこ解消出来ましたのでアップデートです。
追加でML系コマンドのビットマップ描画コマンドのCGカラー対応をしました。

C.Basic for CG v0.32α (Menuコマンド互換化+透過率改善+ToStr(変更+Sprintf修正版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG032.zip
・Sprintf(コマンドのバグを修正しました。

・ML系コマンドの_Bmp表示系コマンドをCGモード対応しました。
 _Bmp
 _Bmp8
 _Bmp16
 _BmpZoom
 _BmpRotate
 _BmpZmRotate
g3mモードではデフォルト16ビットカラー描画ですが、1ビット行列を指定すると1ビットマップの描画になります。


Sprintf(コマンドのバグは、
Sprintf("%g%s",#1.234,"sec")
というような数値引数の後に文字列引数が来る場合にバグっておりました。
あと、数値の表示がちょっと変なところがあったので、そこのところを修正してあります。




iron2様、
>しかしCasio Basicが最初のプログラミング言語の場合は、
>CやC#ライキーなのは逆に違和感があるのかなぁ
>と思い。恐々心配しながらどう?
>いう感じです。

C.Basicの拡張仕様の半分はCの影響を受けているので、(^^;
というか、C.Basicの名前の通り、CとBasicの中間の言語という感じかもしれません。


>MNDLVWのmandelbrotコアの統合ができました。

コアの統合とかもうカッコよすぎです!(^^)
ファイルサイズの縮小も順調な感じでいいですね。
ま、パフォーマンスに影響する部分は速度優先で個別に最適化というのもありでしょうか。


>MONTECHR表示の謎
>久々に管理人様のMONTECHRでベンチ取ってみました。
>fx-cg20 ref 5 250MHz にて起動直後EXEスタートで1.63秒
>この高解像度でこの速度かよ!と喜んだのもつかの間

1.63秒はめちゃめちゃ速いですね!
CG50で表示を全くしないようにして、2.66秒だったので、表示更新有りだともう爆速レベルです。


>なんか起動直後何も表示しなかったり○しか表示しなったり
>したので_DispVramをAC:Qiitの後に入れたらちゃんとテキストも
>今まで通り表示しました。

もしかしたら画面リフレッシュの関係で表示残りが出ている感じがします。
んと、画面リフレッシュの設定はどうなっているでしょうか?




管理人様、
>ちょうど良い機会なので、Pol( / Rec( のコマンドリファレンスを作りました。純正と互換です。

ツル様もおっしゃってますとおり、ちょうど良いタイミングですね。
ありがとうございます。(^^)


>Menuコマンドがめでたく純正互換になったので、コマンドリファレンスを作りました。

C.Basicのカラー表示が一目瞭然ですね。
これまた早速にありがとうございます!(^^)


>計算結果が List Ans に格納されるのは、なかなか分かりにくいところですよね。

せっかく、X,Y,r,θと変数が揃っているにも関わらずの謎仕様ですよね。(^^;


>関数導入は、コードが見やすくなる利点はとても大きいですが、速度への影響がどうなるか気になる部分でもあります。

現行インタプリタでの実装であれば、今のProgと同じ程度かなと思います。
コンパイラになれば関数呼び出しはオーバーヘッドが減るのでかなり速くなりそうです。(^^)




ツル様、
>rとθとはどうするのかな?・・・と考えていたらsentaro様が直してくれるし、
>タイミング良すぎて笑いと涙とが一緒になって大変です(笑)

関連してバグが見つかったので、バルサンツルサン効果てきめんでした。(^^)


>CG50の小さな画面に合わせた、短編のショート・ショートもありですね。

CG50で電卓で短編小説とか、なかなか思いつかない発想なので、今後の進展が超!楽しみです!


>あ、その前に、日本語表示ですね(笑)

あ゛…最大の難関が…(^^;
表示だけなら日本語フォントをそっくりストレージに置いておいて、
SHIFT-JISコードの日本語テキストファイルを読み込ませて表示とかはできそうな気もしますけど、
電卓本体での日本語入力となると…ちょっと大変かもです。(^^;




管理人様、ツル様、
>人工無能

仮名文字だけでなら今すぐにでも出来そうですね。(^^)

MONTECHR表示の謎

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

久々に管理人様のMONTECHRでベンチ取ってみました。
fx-cg20 ref 5 250MHz にて起動直後EXEスタートで1.63秒
この高解像度でこの速度かよ!と喜んだのもつかの間

なんか起動直後何も表示しなかったり○しか表示しなったり
したので_DispVramをAC:Qiitの後に入れたらちゃんとテキストも
今まで通り表示しました。
ループは500回Forループです。

'ProgramMode:RUN
Cls
CoordOff
GridOff
AxesOff
LabelOff
ViewWindow (-)2.8,1.3,0,(-)1.0087,1.0087,0

0->I:0->O
Circle 0,0,1
Circle 0,0,1
Text 3,9,"C="
Text 21,3,"_pi_="
Text 153,9,"EXE:Start"
Text 174,15,"AC:Quit"
_DispVram '<-koko

While Getkey<>31
WhileEnd
Text 153,3," "
Text 153,9,"(_(-)_):Stop "
'_Lbl _1
499->N
For 0->J To N Step 1
1-2Ran#->X
1-2Ran#->Y
Plot X,Y
X^<2>+Y^<2><1=>Isz I
Isz O
Text 3,33,O
Text 21,33,4I/O

If Getkey=41:Then
Text 153,3,"EXE:Start"
While Getkey<>31
WhileEnd
Text 153,3," "
Text 153,9,"(_(-)_):Stop "
IfEnd
Next

ちょと気になったので投稿しました。

これからもよろしくお願いします。

配列変数活用 人口無能

管理人様、sentaro様、iron2様、皆様  こんにちは

管理人様
>昔々、仲間の一人が "人工無能" というプログラムを作って、それを頂いて遊>んでいたことがあります。

このお話し、殆ど同じことをツルもやっていました(笑)
当時はProgも未熟で、パターンもルールもなく、無作為に言葉を作らせていたので、でたらめさが逆に面白かったですね。
それを応用して、新語をどんどん作らせたり、回文を作らせたりと、楽しんでいました。 このみくん さんねんさんくみのこ
     こんまけ わたしのニキビ
失礼(笑)

Re: mandelbrotコア統合できました

sentaro様、sentaro様、ツル様、CGユーザーの皆様

管理人のやすです。


ひょっとして関数機能導入の際には、Gosub と関数で、オーバーヘッドがどの程度変わるかというのもポイントになりそうです。

ユーザーの分際で勝手なことを申し上げていますが、そう言えば昔々GPIB や RS-232C 接続した機器を使った計測プログラムを作っていて、計測中にユーザー入力や特定信号入力による割り込み処理を高速応答しながら、計測自体をどうやって高速化したら良いのか、しばらく検討したことを思い出しました。

開発環境はMSC Ver6 で、関数へのポインタ配列を使った明示的な (ガリガリとコード上での) 切替えが一番うまくいったような記憶があります。セマフォなどのテクニックを使わず、FIFOのスタック構造を実装しました。アセンブラを使えたら良かったのでしょうが当時使えなかったので (今でも大して使えませんが...)、MS-DOS上のCだけでの実装でした。

関数導入は、コードが見やすくなる利点はとても大きいですが、速度への影響がどうなるか気になる部分でもあります。

iron2様のMandelbrot Viewer の高速化は、C.Basic Interpreter / Compiler の良いベンチマークプログラムになるのは間違いないところでしょうね。

Re: Pol( / Rec( のコマンドリファレンス + ストリング

ツル様、sentaro様、iron2様、CGユーザーの皆様

管理人のやすです。

> と言いますか、ちょうどで素晴らしいタイミングでした。
> ツルを泣かせてどうするおつもりですか?(笑)
> rとθとはどうするのかな?・・・と考えていたらsentaro様が直してくれるし、
> タイミング良すぎて笑いと涙とが一緒になって大変です(笑)

おお、良いタイミングでお役に有ったのですね。やったぁー!

計算結果が List Ans に格納されるのは、なかなか分かりにくいところですよね。
純正Casio Basicでも同じ使い方ですが、Undocumented Casio Basic の部類に入るかもしれません。


小説プログラムのお話で思い出したのですが...

昔々、仲間の一人が "人工無能" というプログラムを作って、それを頂いて遊んでいたことがあります。
単に、入力された文字列を、ランダムに並び替えたり抜き出したりして、PCと会話している感じなのですが、なんとも間の抜けた会話になったり、たまに鋭い突っ込みが入ったりして、面白かったです。文字列操作だけの単純なものでしたが、その発想が秀逸でした。

C.Basicなら作れてしまうかも知れません!


> あ、その前に、日本語表示ですね(笑)

おっと、そうでしたね。

Menu コマンドのリファレンス作りました

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。


Menuコマンドがめでたく純正互換になったので、コマンドリファレンスを作りました。

http://egadget.blog.fc2.com/blog-entry-643.html

C.Basic for CG の拡張機能による色設定についても紹介しました。


Pol( / Rec( のコマンドリファレンス + ストリング

管理人様、sentaro様、iron2様、皆様  こんにちは

管理人様
>ちょうど良い機会なので、・・・
と言いますか、ちょうどで素晴らしいタイミングでした。
ツルを泣かせてどうするおつもりですか?(笑)
rとθとはどうするのかな?・・・と考えていたらsentaro様が直してくれるし、
タイミング良すぎて笑いと涙とが一緒になって大変です(笑)

ストリングについても進展していますが、ツルがBASICを学び始めのころに、大変興味を持ったのが文字列の扱いでした。初めての描画よりも、創造もしなかった文字列を扱うという操作に、大きな可能性を夢見ました。
ツルは、ゲームのRPGには全く関心はないのですが、ある場面のあるタイミングで、言葉が随時表示されますが、もっと凝れば、会話になってくると思います。

電卓での実現の可能性は低いと思いますが、ここ数年前から、PCやスマホなどの様々な動作を眺めながら構想を計ってきたものがあります。
それは、小説のProgです。
出回っているゲームにも、ストーリー性は重視されていると思いますが、展開と読者の判断によって流れが変わり、エンディングも各種用意されているものも既に存在しています。(マルチエンディング方式?)

例えば、推理物、殺人事件物の小説で、途中で犯人が変わる作品も面白いと思うのです。それを文字列変数は実現に大きく貢献するのではないかと思いました。1作品出来ると、5作品分くらいの見ごたえ、お得感にならないか?と
コーヒーを飲むたびに妄想に包まれてしまいます。

CG50の小さな画面に合わせた、短編のショート・ショートもありですね。
ショート・ショートも多くの作者がいて、どれもこれもアイデア勝負に思えます。星新一はじめ、夢枕獏、川又千秋・・・面白い作品が多いです。
いつか、挑戦してみたいです。

あ、その前に、日本語表示ですね(笑)

Re: Re:Pol( 、Rec( のやり方(質問)

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。

ちょうど良い機会なので、Pol( / Rec( のコマンドリファレンスを作りました。純正と互換です。

http://egadget.blog.fc2.com/blog-entry-638.html


mandelbrotコア統合できました

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

管理人様 ,sentaro様
私がぬるま湯という環境に近いイメージし易いコマンドは
ありがたいと思います。
しかしCasio Basicが最初のプログラミング言語の場合は、
CやC#ライキーなのは逆に違和感があるのかなぁ
と思い。恐々心配しながらどう?
いう感じです。
ここでいろいろご教唆していただいているので
どんな形のコマンドでも、ありがたく思います。

やっと、
MNDLVWのmandelbrotコアの統合ができました。
Ver2 4012 byte → 3720 byte コア統合→2948 byte

サーチで_Rectangle
ファインとハイファインで_Pixelを使っているため

2重ループ内でt=0=>_rect t=1=>pixel の様に
切り替る羽目になりオーバーヘッドがハイファイン
(全画面)の場合で2秒強発生しましたが、先のプチ
最適化の40%ほどでまだ、最適化の効果が残って
いるので一安心です。

いよいよこれからが本番ですが、少しづつ
がんばります。

これからもよろしくお願いします。


Re:Pol( 、Rec( のやり方(質問)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>ちょっと教えて頂きたいのですが、関数電卓では一般的なPol( 、Rec(ですが、これをProg内で同じ目的の計算をしたい場合、関数コマンドとしてあるのでしょうか?それとも計算式を記述する必要がありますか? 普段の異形計算では関数電卓をとても良く使っていて、CG50での異形計算Progを考えています。

fx-FD10Proの基本プログラムを実行できるようにC.Basicにも、
Pol( 、Rec(
関数を実装してました。

使い方は、CG50マニュアルの第2章 2-19です。

純正同様に使えると思います。(^^)


(※追記 2018/1/15 10:15 )
Pol(,Rec(確認でList Ansの表示バグに気が付きました。
バルサンツルサン、ありがとうございます!
ってことで、
またまた差し替え修正しております。(^^;
http://pm.matrix.jp/CB/CBASICCG032.zip
・行列エディタで、[OPTN]切り替えでリスト表示の時にAns,<r>,<θ>が表示されなかった不具合を修正しました。

Str( -> ToStr( 変更しました。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>たぶん、管理人様リファレンスページの更新や、すでに従来コマンド名で
>プログラムが大量にあるのではないかと、プログラムの改変が大変でしょうから
>私は今のままでいいですよ~

g1mやg3mで保存されているプログラムは中間コードで保存されているので何も変更の必要がありません。(^^)
今回のバージョンより自動的にToStr(として表示されます。
問題はテキスト形式で保存されているプログラムですが、C.Basicで内部形式に変換する時にStr(を自動的にToStr(に変換するのでこれも問題ありません。
テキストで再保存するときにはToStr(になっています。


管理人様、
>ToStr( いいですね!
>少なくとも、当ブログでは 文字列コマンドは一切触れたことが有りません。ごく最近の Casio basicプログラミングで初めて扱っているくらいです。なので、ブログから見れば、ToStr( は全く問題なく、分かり易いので歓迎気分です!

了解です!

ってことで、
Str(からToStr(への変更完了です。(^^)

C.Basic for CG v0.32α (Menuコマンド互換化+透過率改善+ToStr(変更版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG032.zip
・Str(コマンドの表記をToStr(に変更しました。
 従来プログラムでStr(を使用していてもg1m/g3m形式の場合は何も修正する必要はありません。
 テキスト保存されている場合は内部形式に変換時に自動変換されます。
 再保存の時にはToStr(表記に変わりますので以前のC.Basicでテキスト形式で読み込ませるとエラーになります。
 プログラムの保存はテキストだけでなくg1m/g3m形式での保存もお勧めします。

Pol( 、Rec( のやり方(質問)

管理人様、sentaro様、iron2様、皆様

ちょっと教えて頂きたいのですが、関数電卓では一般的なPol( 、Rec(ですが、これをProg内で同じ目的の計算をしたい場合、関数コマンドとしてあるのでしょうか?それとも計算式を記述する必要がありますか? 普段の異形計算では関数電卓をとても良く使っていて、CG50での異形計算Progを考えています。

Re: Str(コマンド名

iron2様、sentaro様、ツル様、CGユーザーの皆様

管理人のやすです。

ToStr( いいですね!

少なくとも、当ブログでは 文字列コマンドは一切触れたことが有りません。ごく最近の Casio basicプログラミングで初めて扱っているくらいです。なので、ブログから見れば、ToStr( は全く問題なく、分かり易いので歓迎気分です!

ただ、昔からの C.Basicユーザーがもし Str( を使っていたことを考えて、Str( と ToStr( が同じ機能として使えるようにして、機能追加する際には、ToStr( のみにするというのは如何でしょうか>sentaro様

Str(コマンド名

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

>あ、もしかして、Str(コマンドはより分かりやすいコマンド名ということで、ToStr(とでもした方が良さそうでしょうか? >皆様

たぶん、管理人様リファレンスページの更新や、すでに従来コマンド名で
プログラムが大量にあるのではないかと、プログラムの改変が大変でしょうから
私は今のままでいいですよ~

sentaro様も管理人様もツル様も投稿していないユーザーの皆様
が一番楽そうなのでいいですよ~

連絡まで

これからのよろしくお願いします。

Re: C.Basic for CG v0.32α (Menuコマンド互換化+透過率改善版)差し替えDLしました

iron2様、sentaro様、ツル様、CGユーザーの皆様


> Str( はftoa もしくは str変数=数値変数.tostringのように
> Exp(はatof もしくは Integer.Parse("100") のイメージで使えるのかな?


概ねそんな感じだと思います。

C++ に加えて、C# チックな例えも出てくるとは...(^^;

但し、先ほどのsentaro様のご説明によれば、Str( は現在の Dispay設定に従うという特典も付いてきます!

Sprintf( というマンマのコマンドもあるので、Cそのまんまの書式指定が使えて iron2様にはかなりぬるま湯をお楽しみ頂けるのではないでしょうか?

C.Basic では、純正の文字列コマンドは互換ですが、裏では行列で実装されています。なので iron2様にはCの(2次元)配列での文字列操作 (ポインタ操作)の感覚で弄れるのもポイント高いと思います!

一方で、Cに馴染みに無い方には最初??となると思うので、そのあたりの説明を "Casio Basicプログラミング" の "コマンドリファレンス編" でトライしようと思っています。



> png差し替えのページ拝見しました。色鮮やかな図で見とれました!

ありがとうございます。自分でも見とれてしまいました(^^;
sentaro様のアドバイスで、jpg と png の違いを調べて初めて知ったという...(゚Д゚)

これまで、何故画像が汚くなるのか気になりつつ、分からないままに jpg を使い続けていたという悲しい現実。ホント画像については、な~んにも知らないのでした...

勉強になります > All




Re:C.Basic for CG v0.32α (Menuコマンド互換化+透過率改善版)差し替えDLしました

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、早速にDLありがとうございます!
>Str( はftoa もしくは str変数=数値変数.tostringのように
>Exp(はatof もしくは Integer.Parse("100") のイメージで使えるのかな?

はい、そのような感じで捉えて頂ければ幸いです。(^^)

あ、もしかして、Str(コマンドはより分かりやすいコマンド名ということで、ToStr(とでもした方が良さそうでしょうか? >皆様
TI-Basicでは現行機ではToStringとして実装されましたが、CasioBasicはCG50のOS3.0の段階でも未サポートですね。



管理人様、早速に動作確認していただきましてありがとうございます!
>特に、Menuコマンドで背景色とタイトル文字色を別に設定できるようになったのは、とてもポイント高いですね!

ありがとうございます!
純正仕様準拠だと色変更不可なので、C.Basic的に拡張仕様を引き継ぎました。(^^)

Re: Re:Norm の動作

sentaro様、ツル様、iron2様、CGユーザーの皆様


管理人のやすです。

> C.Basic for CG v0.32α (Menuコマンド互換化+透過率改善版)差し替えです。
> http://pm.matrix.jp/CB/CBASICCG032.zip


ビットマップの透過率付きのロードの正常動作、Norm, Fix の設定保存と復帰、Menuコマンドの正常動作を確認致しました。

特に、Menuコマンドで背景色とタイトル文字色を別に設定できるようになったのは、とてもポイント高いですね!


C.Basic for CG v0.32α (Menuコマンド互換化+透過率改善版)差し替えDLしました

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

32a差し替え版DLしました。

>Str( は数値を文字列化するコマンドです。逆に文字列の数値化はExp(です。
これは知らなった。
Str( はftoa もしくは str変数=数値変数.tostringのように
Exp(はatof もしくは Integer.Parse("100") のイメージで使えるのかな?
事実ならば、ぬるま湯の私とって凄くありがたいです。

管理人様
png差し替えのページ拝見しました。色鮮やかな図で見とれました!

ツル様
質問内容がprog佳境に入った感じを受けました!
がんばってくださいね!

これからもよろしくお願いします。

Re:Norm の動作

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>Fixの問題なのか、Norm の問題なのか切り分けが出来ない状況です。

調査してみました。
結果、Normの問題でした。
プログラムでNormを使うことが無かったので、ずっと長い間露見しなかったバグですね。(^^;
ありがとうございます!

ってことで、早速の差し替えです。(^^;

C.Basic for CG v0.32α (Menuコマンド互換化+透過率改善版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG032.zip
・Normコマンドが正常に動作してなかった不具合を修正しました。

(※追記 2018/1/15 18:38 再度差し替えてます。(^^;

Re:文字列変数について

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>純正およびC.Basicの文字列変数についてまとめてみました。
http://egadget.blog.fc2.com/blog-entry-642.html

ばっちりです!(^^)


>過去のドキュメントを参考にサンプルプログラムを作りながら書いたのですが、行列初期化で割り当てられるサイズがチョット怪しいです。C.Basic for CG で実験したところデフォルトは [20, 256]になっているようですが、過去の記述では 65 になっているものもあります。

初期には64文字までということで{20,65}になっていました。
途中からは{20,256}の確保に変更していたので今の記述で合っています。


>あと、Str( コマンドが何なのか、チョット見つからなかったのですが、完全に忘れてしまっていて??になっています。

数値を文字列化するコマンドです。逆に文字列の数値化はExp(です。
Str( コマンドではFixや3桁区切り等での表示がそのまま文字列になります。
純正にはなぜか未だに存在していませんのでちょっと不便なので追加しています。


>これまで、当ブログでは文字列コマンドについて全く触れていなかったので、先ずは文字列コマンドのリファレンスから純正/C.basic 両方でカバーしてゆこうと思っています。

電卓言語としては文字列は無くても困ることは少ないですが、表示等では文字列処理でスッキリする場合も多いので、
管理人様の文字列リファレンスはとても良い参考資料+サンプルプログラム集になるのは間違い無さそうです。(^^)

Norm の動作

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。


以下を実行します。

0.001->A
Norm 1
Locate 1,1,A
Norm 2
Locate 1,2,A

結果表示は、
1.E-03
1.E-03

となります。

純正で実行すると結果表示は、

1x10-03
0.001

となります。

また、プログラムで Norm2 としても SET UP では Nrm1 と表示されます。


SET UP で Fix 2 とし
Fix (-1)→S

とプログラムしても、S=-1 になります。

Fixの問題なのか、Norm の問題なのか切り分けが出来ない状況です。

ご確認頂けませんか?

C.Basic for CG v0.32α (Menuコマンド互換化+透過率改善版)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>#があるとコメント色から外すだけで十分です。コメントを削除する時、間違って一緒に削除するミスがなくなるので、大変助かります。ありがとうございます!

とりあえずの対策ですみません。(^^;
いずれはちゃんと色付け出来るようにしたいと思います。


>アドバイスありがとうございます。色に関するプログラムなので色境界のにじみは勿体ないですね。
>...ということで、早速 pgn に差し替えて修正しまして、綺麗に見えるようになりました!

PNG化でスッキリ綺麗になりましたね。(^^)



ツル様、管理人様、
>Menuコマンド 表示文字数など(相談)

Menuコマンドは管理人様のおっしゃってますとおり、とりあえずの実装だったので、(^^;
今回、改めて純正互換+仕様で実装し直してみました。


ってことで、透過の不具合修正とともにバージョンアップです。

C.Basic for CG v0.32α (Menuコマンド互換化+透過率改善版)
http://pm.matrix.jp/CB/CBASICCG032.zip
・MenuコマンドをCGシリーズの純正互換に変更しました。
 タイトルの色はMenuコマンド直前の色指定が有効になります。
 メニュー項目はPlot/Line-Colorの色指定が有効になります。
 メニュー背景はBack-Colorで指定している色になります。

・BmpLoadの透過指定がバグっていたのを修正しました。
 透過率の指定は0~1の範囲の実数値または100%までの整数指定に変更しました。
(書式)BmpLoad("BMPファイル名"),X,Y,1,透過率(0.0~1.0)
(書式)BmpLoad("BMPファイル名"),X,Y,1,%透過率(%0~%100)
 (X,Y)座標を始点として背景と透過率で合成してロードします。
(書式)BmpLoad("BMPファイル名"),X,Y,0,透過率
 (X,Y)座標を始点として背景だけにロードします。
(例)BmpLoad("TEST"),100,50,1,%50
(例)BmpLoad("TEST"),100,50,1,0.5
 (100,50)座標よりTEST.bmpファイルを透過率50%でロードします。
(例)BmpLoad("TEST"),100,50,0,%25
(例)BmpLoad("TEST"),100,50,0,0.25
 (100,50)座標よりTEST.bmpファイルを透過率25%で背景部分だけにロードします。

・ML系コマンドのパラメータのcolor指定において透過率指定を追加しました。
 コマンドの描画色と画面を透過率で合成して表示します。
 color指定値は5になっています。color指定のあるML系コマンドで使用できます。
(書式)_Pixel x,y,5,透過率(0.0~1.0)
(書式)_Pixel x,y,5,%透過率(%0~%100)
(例)Red _Pixel x,y,5,%50
(例)Red _Pixel x,y,5,0.5
 画面の色と50%赤を合成して描画を行います。

文字列変数について

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。


純正およびC.Basicの文字列変数についてまとめてみました。
http://egadget.blog.fc2.com/blog-entry-642.html

過去のドキュメントを参考にサンプルプログラムを作りながら書いたのですが、行列初期化で割り当てられるサイズがチョット怪しいです。C.Basic for CG で実験したところデフォルトは [20, 256]になっているようですが、過去の記述では 65 になっているものもあります。

修正&追加すべきものがあれば、ご教示ください。

あと、Str( コマンドが何なのか、チョット見つからなかったのですが、完全に忘れてしまっていて??になっています。

これまで、当ブログでは文字列コマンドについて全く触れていなかったので、先ずは文字列コマンドのリファレンスから純正/C.basic 両方でカバーしてゆこうと思っています。

Re: Menuコマンド 表示文字数など(相談)

ツル様、sentaro様、iron2様、CGユーザーの皆様

管理人のやすです。

ツル様ご指摘の現象は、私のところでも再現しました。
以前、メニュー項目末尾の反転現象は解消して頂いたのですが、空白メニューについては私も未確認でした。同様の現象なように思われます。

以下は付加的な話になりますが...

私の理解では、純正Menuコマンドとの互換性重視というよりも、取り敢えず使えるように実装頂いているのが現状だと思いますが、純正仕様と同様にすることはさほど難しいものでないと推察致します。

ちなみに、純正Casio BasicでのMenuコマンドは、取扱説明書に書かれていない部分も含めて
・メニュー項目は2~9個
・タイトルは最大16文字
・メニュー項目はミニフォントで最大22文字

となっています。

タイトル文字数の最大はスグにご対応可能と思われますが、ミニフォントが使えるようになるので、いずれメニュー項目をミニフォントの対応が可能になるのではないかと...すると文字数最大も増やせると思われます。

最終的にはsentaro様の方針を尊重したいと思いますが、如何でしょうか?>sentaro様

Menuコマンド 表示文字数など(相談)

sentaro様、管理人様、iron2様、皆様

sentaro様 2点 ご相談です。
Menuコマンドのタイトル文なのですが、codeで ””内に17文字記述しても、表示が16文字までとなっており、単語が切れます。枠のサイズ的には18か19文字までは表示できると思うのですが、枠サイズ一杯までは表示できるように増やせないでしょうか?(一杯とは言っても、最端部の10ドット分くらいのマージンは構いません)

同じくMenuコマンドで、例えば1~3項目を使用し、4、5、は予備として記述は無しの””状態にしておくと、実行させてMenu表示されたときに、選択行を上下キーで移動して順次反転表示になった際、その4、5、項目行の右端に反転状態が残る現象が起こります。Progの動作に悪影響はないのですが、直したい個所には思われます。ご確認頂けますか?

Re: C.Basic for CG v0.31α (AliasVar+IsExist拡張+Textカラー修正版)差し替えです。

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。


モード設定ステートメントの色設定

> コマンド色にするにはコマンド解析が必要だったので、とりあえずコメント色から外してみました。(^^;

#があるとコメント色から外すだけで十分です。コメントを削除する時、間違って一緒に削除するミスがなくなるので、大変助かります。ありがとうございます!


RGB4b / RGB5 のプログラムライブラリ

> ちょこっと気がついた点として、紹介画像が色境界で滲んでしまってるのが惜しいので、pngが使えるならpng形式が良いかもしれませんね。

アドバイスありがとうございます。色に関するプログラムなので色境界のにじみは勿体ないですね。
...ということで、早速 pgn に差し替えて修正しまして、綺麗に見えるようになりました!
ありがとうございます。


Re:re:テキストの色分けで質問

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>>C.Basic for CG v0.31α (AliasVar+IsExist拡張+Textカラー修正版)
>で意図した動作になりました。
>ありがとうございます!

よかったです。


>おかげ様にて動作が変わり他の表示バグが露見してきました。www

すみません。(^^;
ずっと純正互換で動作しているつもりでしたけど、
外部フォントを仕込んだ時にバグが入り込んだ模様です。(^^;
今回、iron2様にこのバグの存在を見つけてくださって助かりました。
ありがとうございます。(^^)


>今日は疲れたので元気が湧いたらつづきやります。

休憩することも大切です。
プログラミングはデバッグの連続でもありますが、少しずつですね。(^^)

re:テキストの色分けで質問

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

sentaro様
>C.Basic for CG v0.31α (AliasVar+IsExist拡張+Textカラー修正版)
で意図した動作になりました。
ありがとうございます!

おかげ様にて動作が変わり他の表示バグが露見してきました。www

表示バグ潰しのいたちごっこ中で、コアの統合も顕微鏡モードの入り口も
まだですが、Ver2 4012 byte → 3720 byte コア統合でもう少し減って
顕微鏡モードで増加の予定。。。。(轟沈)

今日は疲れたので元気が湧いたらつづきやります。

これからもよろしくお願いします。

C.Basic for CG v0.31α (AliasVar+IsExist拡張+Textカラー修正版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

AliasVarでの最初の文字変更が好評で良かったです。(^^)
他言語との変数名の互換性も考えると最初からアンダーバーにしておけば良かったとちょっと反省です。(^^;


管理人様、
>IsExist 拡張機能で、Ans行列に格納されるとの説明で、Ans が抜けているので、記事では修正しておきました。

ありがとうございます。
Change_J.txtも修正しておきました。(^^)


>'# で始まるモード設定ステートメントですが、エディタではコメント文と同じ色になっていますが、これをコマンドと同じ色に変更できると見やすいと以前から思っていました。

コマンド色にするにはコマンド解析が必要だったので、とりあえずコメント色から外してみました。(^^;


>C.Basic for CG のCG向けの拡張機能をいくつか盛り込んだサンプルプログラムの集まりになっているので、いずれ部分的に切り出して、C"asio Basicプログラミング" の "基礎編"、"実用編"、"コマンドリファレンス編" にブレークダウンしようと考えていて、その第一歩で取り敢えず完成版をまとめたところです。

なかなか良いですね。(^^)
ちょこっと気がついた点として、紹介画像が色境界で滲んでしまってるのが惜しいので、pngが使えるならpng形式が良いかもしれませんね。



iron2様、
>前投稿の12%の最適化は→約10%です。

管理人様もおっしゃってますけど、C.Basicで10%はすごく大きいです。(^^)
後はアルゴリズムの変更や、あまり見えないところは計算をごまかすぐらいでしょうか。(^^;


>まとめて変更できないもんなんでしょうか?

Textコマンドはグラフィックス系コマンドなので、Plot/Line-Colorコマンドで色指定しておけばそれがTextコマンドのデフォルト色となりますので、
a=0=> Plot/Line-Color Black :a=1=>Plot/Line-Color Red
で期待通りの動作になると思っていたら、
何やらバグが潜んでいたみたいで、(^^;
そこのところを修正しました。

C.Basic for CG v0.31α (AliasVar+IsExist拡張+Textカラー修正版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG031.zip
・Textコマンドのカラー指定に不具合があったのを修正しました。
・"'#"をコメント色から外しました。

テキストの色分けで質問

管理人様,sentaro様,ツル様,CGユーザーの皆様

iron2です。

マンデブロ全画面での
ステータス表示をGosub化してます。
ここはRedだけでもいいんですが
後の事を考えてBlackと切り替え
様とするとText事に
判定を入れないと続けると2個目以降が
黒、変更前の色になります。
まとめて変更できないもんなんでしょうか?
IF a=0 THEN
Black Text 125,5,"Times",O
ELSEIF a=1 THEN
Red Text 125,5,"Times",O
IFEND
のようしても中のTextが多いとあまり文字数減らないし
可能なら先頭で変更
a=0=> Black :a=1=> Red
{ Text *,*,*,*:
  Text *,*,*,*:
Text *,*,*,*}
の様なまとめて変更はできないでしょうか?
聞いてみたいだけなので出来なくても
一様Gosubで表示系はだいぶ減らせてます。

以下にコード例を貼ります。
'----- Status Display D
Lbl D
Local a
Fix 2
Text 125,70,StrChar(" ",13),O
a=0=> Black :a=1=> Red
Text 125,80,r,O
Text 125,5,"Times",O
a=0=> Black :a=1=> Red
Text 125,165,"sec",O
a=0=> Black :a=1=> Red
Text 145,5,"Mode",O
a=0=> Black :a=1=> Red
Text 143,270,"EXE:Start",O
Text 145,60,StrChar(" ",29),O
a=0=> Black :a=1=> Red
Text 145,60," << Select S,F,H+K >> ",O
Return 0

管理人様
>10%高速化は、ロジック見直しの成果としてはとても大きいと思います。
ありがとうございます!

これからもよろしくお願いします。

Re: Re:C.Basic for CG v0.31α (AliasVar+IsExist拡張版)

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。


> C.Basic for CG v0.31α (AliasVar+IsExist拡張版)
> http://pm.matrix.jp/CB/CBASICCG031.zip


ありがとうございます。Alias と IsExist 拡張機能をさっそく試してみました。
手元ではうまく動作しています。

Alias変数名の頭は、@ よりも _ の方がそれらしいですね。C やVBのコードと同様の変数名を違和感なく使える点はなかなか良いと思います。

特に、ツル様の PARTS のように、私も手元に書きためたルーチンをそのままカット&ペーストで使う際に、Arias機能は非常に有用です。変数管理が楽になると思います。

IsExist 拡張機能で、Ans行列に格納されるとの説明で、Ans が抜けているので、記事では修正しておきました。



C.Basic専用モード設定ステートメント

'# で始まるモード設定ステートメントですが、エディタではコメント文と同じ色になっていますが、これをコマンドと同じ色に変更できると見やすいと以前から思っていました。

但し、頭の数文字しか見ていないという内部実装の事情は以前伺ったことがあり、色を変えるのは実行速度への影響や変更が面倒そうなので、これまで黙っていたのですが、取り敢えず "いつでも良いから、できたらいいな" といった感じで、優先度の低い要望として挙げますね。


MASIO C.Basic for CG バージョン

これは、私もとっても楽しみにしております>ツル様
ゆっくりノンビリで結構ですが、お待ちしております。
MASIOシリーズは、私もお気に入りプログラムの1つで、当ブログで初めて読者の作品をプログラムライブラリに収録した作品だったりします。



バッテリーメータ

これも楽しみです。アイコンデザインは、単純でも誰でもそれと分かるピクトグラム的な要素もあり、おっしゃるように既に練り込まれたものなのでデザインの難易度が高ということ、改めて認識しました。作成者の苦労が少し分る気がしました。



RGB4b と RGB5 をプログラムライブラリへ

http://egadget.blog.fc2.com/blog-entry-641.html

キー操作が分かりにくいところがあるので、絵入りでの操作方法説明が必要だと長らく思っていたのですが、やっとできました。

C.Basic for CG のCG向けの拡張機能をいくつか盛り込んだサンプルプログラムの集まりになっているので、いずれ部分的に切り出して、C"asio Basicプログラミング" の "基礎編"、"実用編"、"コマンドリファレンス編" にブレークダウンしようと考えていて、その第一歩で取り敢えず完成版をまとめたところです。



Mandelbrot 高速化

10%高速化は、ロジック見直しの成果としてはとても大きいと思います。
純正Casio Basicは元々遅いので、高速化の余地は沢山転がっていますが、C.Basicでの高速化は凄いと思います。
これを追求すると、高速化のコツが分かってくるのだろうと思います。頑張って理解しようと思います!


最適化記載の誤記

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

前投稿の12%の最適化は→約10%です。

盛り過ぎでした。(汗)

これからもよろしくお願いします。

C.Basic for CG v0.31α (AliasVar+IsExist拡張版) DLしました

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

C.Basic for CG v0.31α (AliasVar+IsExist拡張版)DLしました。

>AliasVarのプリフィックス文字の@ですが、
>すでにMatで@を使っていたので、アンダーバーに変更いたします。

これは私的にはありがたいです。
@が頭につくとPerlぽくちょとニガテかなと思っていました。(笑)
たとえば....無いけど(笑)
Stepという変数を使いたいとして

-0.75->a : 0.1->Step
For 0->x To n Step 1
x*Step+a->c
Next

だと予約語と被るのを x*_Step+a->c とする事で
被りを簡単に防げますね。CとかVBでよく使う手です。

百万遍お礼をするより生きたプログラムで使っていくこと
と思うので、利用したいシーンで使っていきます。

それとメモに挙げてますがN=100の実数版フル画像の
初期は74~75秒ですから66秒前後は12%の最適化
となると思います。

人に理解しやすい形にすると遅くなりがちでパファーマンス
重視にするとインライン直書きになり見にくくなるパターン
が多いので悩ましいところですが、できるだけ
人(自分にも)に優しい書き方にしていきたいです。
醜いアヒルはGoasubに閉じ込める。。。かな(笑)

これからもよろしくお願いします。


Re:C.Basic for CG v0.31α (AliasVar+IsExist拡張版)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

AliasVarのプリフィックス文字の@ですが、
すでにMatで@を使っていたので、アンダーバーに変更いたします。

C.Basic for CG v0.31α (AliasVar+IsExist拡張版)
http://pm.matrix.jp/CB/CBASICCG031.zip
・1文字変数を任意の英数字名の別名で使えるようにAlialVarを拡張しました。
 アンダーバーより始まる変数名が使えます。
 変数の長さは8文字以内で英数字とアンダーバーが使えます。
 変数名と行列名は独立して指定できます。
(例)AlialVar a=_abc_de
(例)AlialVar Mat a=_abcXY
(例)_abc_de+1->_abc_de
 小文字変数aを_abc_de表記で使えます。
 小文字行列aを_abcXY表記で使えます。


今回の変更により、AliasVarで置き換えられる変数名は通常の変数とMat変数名で独立した指定ができるようにしました。

(2018/01/13 23:01追記 ちょこっとバグっていたので差し替え修正です。(^^;

C.Basic for CG v0.31α (AliasVar+IsExist拡張版)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様よりリクエストのありましたファイルリストの取得が出来るようになりました。
IsExistコマンドの拡張で実装してみました。

C.Basic for CG v0.31α (AliasVar+IsExist拡張版)
http://pm.matrix.jp/CB/CBASICCG031.zip
・IsExistコマンドでファイルリストを取得できるようになりました。
(書式)IsExist("*.拡張子")->ファイル数
 Mat Ans:拡張子が"bmp"のファイルを行列に作成されます。
 リストはアルファベット順にソートされます。
(例)IsExist("*.bmp")->N
 $Mat Ans[3]
 リストの3番目のファイル名を文字列として表示します。
 N:ファイル数が返ります。

BMPフォルダにある全てのBMPファイルをリスト表示する場合のサンプルプログラム。
--------------------------
IsExist("/BMP/*.bmp")->N
N=0=>Stop
For 1-I To N
Disp $Mat Ans[I]
Next
--------------------------


iron2様、
プチ最適化、すんばらしいです!
7%といえば、昨今のCPUの1ランク分違いますから結構大きいです。(^^)
x,yループの入れ替えや割り算を減らすのは効果的ですね。
後、C.Basic的な最適化としては、パラメータ等の数値は変数アクセスの方が速いので出来るだけ変数に入れた状態で使用するのがベストです。
速度に関わらない部分では、AliasVarで複数文字名に置き換えるというのも使えます。(^^)

mandelbrotコアのプチ最適化

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

さっきのコードヒントにコアにプチ最適化しました。
ざっくり7%ほど高速化しました。

CDの式はCはxループ、Dはyループに依存します。
すでにyを外ループしてオリジナルより高速化してますが
Dの式をxループの外に出しました。
(ちょと考えればわかるはずだったんですが、見落としてました。)
あと実数版なので分率(319,215)を逆数で先に計算して
CD式中の割り算を掛け算にしました。

投稿したVer2はサーチイメージは4.9秒程度→4.65秒
ハイファインイメージは71.03秒→65.87秒
となり、REF 1-3で変わりなし、明らかに5以上でおそくなりました。

若干の高速化に成功しましたのでコア部分の共通化のオーバー
ヘッドはたぶん吸収されるはずなのでGosubのパラメータで分けるように
調整してみます。


これからもよろしくお願いします。

Visual C/C++のmandelコードのVB移植版で

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

以前壁にVBの移植を貼ったんですが、1.6秒とか1.4秒ぐらいで整数版
描画してたんですが、今日ネットをさぐってVisual c/c++ のmandelbrotコード
で複素数をfloatで置き換えたコードだったのですが、私のコードにバグが
あり真っ黒なんですがVBで0.4秒で描画しました。

並行して調査しておきます。

これからもよろしくお願いします。

C.Basic for CG v0.31α (AliasVar拡張版)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

待望久しかったところの複数文字の変数名ですが、AliasVarコマンドを拡張することでとりあえずの実装です。
変数名のプリフィックスキャラはここのところ大活躍?の”@”なので、ソースが@だらけになる可能性も出てきますが、
他のキャラにするとしたらピリオドかアンダーバーくらいしか無いのですが、どうでしょうか。

C.Basic for CG v0.31α (AliasVar拡張版)
http://pm.matrix.jp/CB/CBASICCG031.zip
・1文字変数を任意の英数字名の別名で使えるようにAlialVarを拡張しました。
 変数の長さは8文字以内で英数字とアンダーバーが使えます。
(例)AlialVar a=@abc_de
(例)@abc_de+1->@abc_de
 小文字変数aを@abc_de表記で使えます。

・ListとMatの表記を変更しようとした場合にシステムエラーになっていた不具合を修正しました。
・ファイルリストにおいてストレージメモリの残量を表示できるようになりました。


C.Basicはデバッグの都合上、単機能ごとに実装してアップデートしていきます。(^^;
次はファイルリストの実装を予定しています。



管理人様、
>これが電卓の場合結構厄介ですよね。
>私は自分の環境に合わせて Fix 0 としましたが、日頃電卓を使う時に Fox 2 にしている人にとっては、Fix 0 でなくて Fox 2 の方が良いわけです。そこで、本来はプログラムの冒頭で 現在の Fix の状態を保存しておき、プログラム終了時に保存しておいた設定に戻してあげるのが理想的です。ところが現状では Fix設定を読み出す機能は無かったと思います.

>ですよね? >sentaro様

んと、しばらく使ってないと私もすっかり使い方を忘れてしまっていたのですが、(^^;
FX版マニュアルによると、引数に(-1)を指定するとそれぞれ設定値が読み出せます。
ただ、関数としての実装ではないので、数式では使えない特別な実装になっています。
かなり初期に実装してたのでこういう仕様になってしまったと思われます。(^^;



iron2様、
>BIGネームとお二人がそういう立ち位置と被ると感じた次第です。

恐縮することばかりですが、少しでもご期待に添えるように頑張ってまいります。(^^)


>また、1ファイルのLocal変数が可能であれば使用できる
>変数は一機に増加するのと同意義ですよね。

今の仕様ではローカル変数はグローバル変数からの置き換えなので一つも増えない仕様ですが、(^^;
将来的には自由な名前で変数&関数を増やせるようにしていくつもりです。



ツル様、
>たったの数か月で、管理人様とsentaro様とのご支援により、急速に進化を成したツルは、今あらためてMASIOを作りたい欲求に駆られています。

今のツル様がMASIOシリーズをリメイクされるとしたら
グラフィックスばりばり本家並の見た目になるのでしょうか。
今では初期には無かった外字も装備されましたから、一気にバージョンアップできそうですね。(^^)


>ツルは、例の電池インジケーター作りに取組んでいます。只今進捗70%です。

お!いよいよですね。
ちなみにうちのCG50は4.45Vで電池1個になりました。
1個から真っ赤になるまではしばらく持つようです。

re:有難い添削

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

Gosub化進めていて、g3mファイルが今4012→3676
テキストは逆に増えてます。(笑)
この作業はこれはこれで楽しいかも。

ツル様へ
電池インジケーター楽しみにしています!

>生み出す苦しみと楽しさとが一体となった、有意義な日々だと思います。
はい、Mケあるようです→iron2。www

ウォーキング行ってきます~

これからもよろしくお願いします。


有難い添削

管理人様、sentaro様、iron2様、皆様  こんにちは

管理人様、sentaro様
ずっと、iron2様への添削などを見させて頂いております。
MASTER MINDのときのことを思い出しています。
たったの数か月で、管理人様とsentaro様とのご支援により、急速に進化を成したツルは、今あらためてMASIOを作りたい欲求に駆られています。
どんだけMASTER MIND好き?(笑)

管理人様の添削やsentaro様のアドバイスを頂ける環境下でProgを作れるということが、如何に恵まれていることなのか想うと、嬉しくて有難くて、涙ぐんでしまいます。

ツルは、例の電池インジケーター作りに取組んでいます。只今進捗70%です。
既存のよく見るインジケーターはどれも完成度が高いので、目新しい点を加えるのは難しいのですが、ツルなりに便利さを追求しています。
お渡し後の、皆様からの添削、ご意見を楽しみに励んでいます。

iron2様、頑張ってますね!
生み出す苦しみと楽しさとが一体となった、有意義な日々だと思います。

MNDLVW02のDL版ありがとうございます

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

おはようございます。

管理人様へ

MNDLVW02のDL版ありがとうございました。
拡大表示可能の動作に戻っています。

コードもインデントでずいぶん見やすくなりました。(笑)
プログラム終了時にはリソース開放を入れる→これ大事ですね。

私のインターフェースの基本は何がアクティブなのかが目視で
わかる様にしたいと思っています。
したがって操作のタイムラインと表示のタイムラインが一致
している事です。そういう意味ではまだ不完全な出来です。

またGosub化どこまでするかはステータス表示系は性能に
そんなに影響でないので進めるべきですが、mandel本体の
切り替え(今3個→1個にする)はパファーマンスとのトレードオフ
があり実験してからになると思います。

管理人様、sentaro様へ
以前の投稿でBIGネームとの比喩をしたのは
管理人様はCasioBasicの使い方のWEBとしては世界一わかりやすい
詳細まで踏み込んだ素晴らしいWEBを公開されていてます。
またCBaiscについてもその誕生の元のアイデアや
互換重視の基本理念があり、それに基づいたテストをされ
その標準的な使い方のWEBを更新作成されています。
これはバイブルです。そういう立場でのご発言やご指導が
なされていると感じたので、K&Rの立ち位置と見えたワケです。

また、sentaro様は現在のC.Basicインタープリターやコンパイラ
の開発に取り組まれています。これはコードの機械語翻訳機で
すから、トークン分析からCコンパイラ(埋め込みasmもしくはasで直接であるか)
に投げるまでにコードの最適化までをお考えになり、ユーザーの要望を
ユーザーコードで使えるようにしていただいているので
そのお立場での立ち位置に見えたというワケです。

BIGネームとお二人がそういう立ち位置と被ると感じた次第です。

個人的な要望の機能と互換性についてですが
これは、基本互換重視の今の路線は正しいと思います。
MLやExtdを使うとCasio Basicではありませんが、拡張
的なな強化と思えばCasio Basicが一通り使えれば同じ
感覚でコマンドが増えた思えば抵抗なく使えます。

そして、互換性重視は基本ですがコンパイラ版まで進んだ
時に、複数文字変数の可能性とローカル変数とグローバル
変数が1ファイル内で使える事と関数化が容易であれば
メリットが上回る気がしたのでちょこちょこと投稿したワケです。

変数文字数が変わらなくても、エリアスで置き換えが
可能であれば初期化のタイミングさえ気をつければ
可読性は高まります。
また、1ファイルのLocal変数が可能であれば使用できる
変数は一機に増加するのと同意義ですよね。
また、かなり凝ったロジックも作りやすくなりますよね。

いつもながら言葉足らずで混乱させてしまい申し訳ありません。
イメージをくみ取っていただけると大変ありがたいです。

なんというか私は世間一般の下のユーザーですから
理解できるところから吸収し、それぞれの成り立ちで
プログラミングスタイルがあると思うので、そこに
徐々に適用しプログラミングの幅を広げていきたい。
進化していきたいと思います。

長文失礼いたしました。
これからもよろしくお願いします。

Re: Mandelbrot viewer ver2添削ありがとうございます

iron2様、sentaro様、ツル様、CGユーザーの皆様


管理人のやすです。

昨日は遅かったので、中途半端でした。スミマセン


> (1)インデントの件はしてはいけないと思っていました。
> 自分も見にくかったですよ。脳内インデント


純正Casio Basicでは、インデントを入れるとエラーになります。
一方で、C.Basic はエラーにならないので、脳内インデントは不要なんです(^^;


> (2)Fixなど元の電卓の状態に影響のあるものは最後に
> 元に戻すようにします。


これが電卓の場合結構厄介ですよね。
私は自分の環境に合わせて Fix 0 としましたが、日頃電卓を使う時に Fox 2 にしている人にとっては、Fix 0 でなくて Fox 2 の方が良いわけです。そこで、本来はプログラムの冒頭で 現在の Fix の状態を保存しておき、プログラム終了時に保存しておいた設定に戻してあげるのが理想的です。ところが現状では Fix設定を読み出す機能は無かったと思います.

ですよね? >sentaro様

そこで、1つのやり方として、Fix 設定を解除する Fix 0 とすることを提案致しました。
もう1つの Fix 設定を解除する方法には、Norm 設定を行います。純正Casio Basic では Norm 1 か Norm 2 を実行すると、Fix と sci 設定は解除されます。C.Basic も同様です。

http://egadget.blog.fc2.com/blog-entry-106.html

Norm設定は、できるだけ指数表示をしたい場合は Norm 1、できるだけ指数表示をさせたくないときは Norm 2 とすると良いです。電卓としての初期設定は Norm 1 で桁数は10桁と純正と互換です。C.Baisc では 桁数指定を自由に設定できます。

なので、Fix設定は完全に元に戻せないので、そこは仕方ないと思います。繰り返しますが、Fix 2 を解除するには、Fix 0 か Norm 設定のどちらかをエイヤで決めるしか無いと思います。Fix 0 が正解とは言えないこと、私お好みだということ、改めて申し上げます。このあたりは、適当にするしか無く、ユーザーに委ねるしかないと思います。


> (3)全画面モードMのあとH+Kで全画面表示できていました。

はい、これについては昨晩取り急ぎ対応致しました。お騒がせしてすみません。


> (4)EXE:Startの赤は描画中は赤で終わったら元の黒にもどり
> セレクト表示も黒に戻るというものです。(元の意)
> が、Ver1ではKで抜けたらEXE:Start前に赤になるという位置にあった
> というわけです。
> 全然、管理人様変更のEXE前に赤で私も良いです。

これは、失礼致しました。どちらでも良いとのことで、修正は戻していません(^^;
今後気をつけます。


> ざっくりした性格→iron2

はい、私も人からはそう言われますが、ピンポイントで細かいとも言われます。

プログラミングについては、やりたいこととできることを天秤にかけて、できることを優先することが多いです。取り敢えず動けばOKで、次の別のプログラム作りに興味が移ってしまいます。


> 最終的にどうしたいかという目標に対して
> あるざっくりした状態に、あるざっくりした状態を派生させて
> 目標がクリアしたら、次の状態に進むをしたいだけの
> インターフェースですので、根本的なミスもありますが
> 最終仕様ではないのです。

了解です!


> 私のcg20で動いているけどcg50ではどうなのかなという感じの投稿です。

はい、CG50でもバッチリ動作しています!


> だってヨドバシであったんですが2.6万です。
> ちょと痛いっです。

かなり痛いですね。もし海外から直接調達 (セカイモンやAmazon USA, eBayなどを利用)すれば、その半額くらいで入手はできます。でもC.Basic を利用する場合は CG20 とエネループがあれば十分なように思われます。
メモリ量と省電力製を重視すれば、頑張って GC50の海外からの調達でしょうか?


> しかし、Fixの件はまずかったですが、
> ほとんどCぽいプログラムになってる
> はずだったんですがぁ。。。。
> (脳内→やったー完璧~クルクル♪)

はい、お気持ちわかります。取り敢えず未実装の関数でザクッと書いておいて、関数を細かく実装するやり方は、私も同じです。

Caso Basic や C.basic では 私は Gosub よりもサブルーチン多様の傾向がありますが、ツル様ができるだけ1つのファイルに収めたいというスタイルなのに触発されて、私も真似して最近ではサブルーチン無しでまとめようとしています。



> ちゃんと動いてると思っていても投稿時の
> コピペにごみが混入してるかもと
> 投稿が怖くなってきました。

これは100%私のミスです、ごめんなさい。


> g3mファイルをメールで送る様にします。

そのときの気分や判断で、テキスト投稿かファイル送付か、あるいはその両方の活用か、お決め頂ければ良いかと...


Re: Mandelbrot viewer ver2添削ありがとうございます

iron2様、sentaro様、ツル様、CGユーザーの皆様


管理人のやすです。

iron2様、私が不用意に改変していたため、全画面描画できないことが分かりました。

無用なご心配をおかけしました。ごめんなさい。


差し替えです。

Mandelbrot Viewer Ver 2 - MNDLVW02.g3m
https://egadget2.web.fc2.com/archives/fx-CG50/iron2/MNDLVW02.html



Mandelbrot viewer ver2添削ありがとうございます

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

管理人様添削ありがとうございました。

(1)インデントの件はしてはいけないと思っていました。
自分も見にくかったですよ。脳内インデント

(2)Fixなど元の電卓の状態に影響のあるものは最後に
元に戻すようにします。

(3)全画面モードMのあとH+Kで全画面表示できていました。
リンクできるようにしていただいたものはコードがかわっているようです。
修正前の
元のテキストをそのまま実行していただければ全画面になるはずですが
ちょと調べてみます。

(4)EXE:Startの赤は描画中は赤で終わったら元の黒にもどり
セレクト表示も黒に戻るというものです。(元の意)
が、Ver1ではKで抜けたらEXE:Start前に赤になるという位置にあった
というわけです。

全然、管理人様変更のEXE前に赤で私も良いです。

いろいろ問題はあるとは思いますが、たくさん(笑)
ざっくりした性格→iron2

最終的にどうしたいかという目標に対して
あるざっくりした状態に、あるざっくりした状態を派生させて
目標がクリアしたら、次の状態に進むをしたいだけの
インターフェースですので、根本的なミスもありますが
最終仕様ではないのです。

私のcg20で動いているけどcg50ではどうなのかなという感じの投稿です。


だってヨドバシであったんですが2.6万です。

ちょと痛いっです。

しかし、Fixの件はまずかったですが、
ほとんどCぽいプログラムになってる
はずだったんですがぁ。。。。
(脳内→やったー完璧~クルクル♪)

ちゃんと動いてると思っていても投稿時の
コピペにごみが混入してるかもと
投稿が怖くなってきました。

g3mファイルをメールで送る様にします。

申し訳ありませんでした。

もう少しエラーチェックしてから投稿します。

これからもよろしくお願いします。



Re: Re: Mandelbrot viewer ver2

iron2様、sentaro様、ツル様、CGユーザーの皆様


管理人のやすです。


Mandelbrot Viewer Ver 2 ですが、先ほど書き忘れた点について...

一番肝心のマンデルブロ描画部分ですが、できるだけ変数を用いて、描画ルーチンそのものを共通化できないでしょうか?

共通化した描画ルーチンを Gosub で呼び出せれば、今後 Viewer でパラメータを変更しても、肝心の描画ルーチンの変更が不要、或いは最小限にできるかも知れません。それだけ機能追加が楽になるし、共通部分をひとまとめにすれば、プログラムサイズも小さくなってメモリを圧迫せずに良いと思います。

如何でしょうか?

Re:Mandelbrot viewer ver2

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
Mandelbrot viewer ver2いただきました!
全体の骨格というか外堀が確実に埋まってきましたね。(^^)

プログラムリストをここに貼り付けるのは
空白やインデントが無くなってしまうのは惜しいですが、
全体を見通すには効果的ですね。
で、よく見るとタイトル表示や時間の結果表示のところとか同様の処理ブロックがいくつかありますので、ここをGosub化すると半分くらいにプログラムが短くなりそうです。(^^)


管理人様、
Mandelbrot viewer ver2修正版いただきました!
管理人様フィルターを通って整形されて出力されてきたという感じですね。(^^)

Re:Re: Re:CG50の時計 + Re: Re:複数文字変数、関数、その他 + 懐かしいOSのエミュレーション

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>と、いうことでリセットしてみましたら、今回初めてですがタイマーがリセットされませんでした。

ここがポイントなんですよね。
私も以前はリセットで時計が初期化されていたような気がするんですが、最近はリセットしても変化なしになっています。(^^;


>タイマーがリセットされないのが正しい動作だとしたら...と仮定し、今後しばらく様子をみてまた報告致します。

もし時計がズレなくなったとしたら、リセット動作に鍵があるような気がします。
今後も時計のズレ具合調査よろしくお願いいたします。


>あ、第一弾として、これは良いと思います。私は結構使わせてもらうと思います。

了解です!
一番簡単な方法とはいうものの、デバッグを含めるとそう簡単でも無さそうなので、一旦FX版で動作確認に入りますのでもう少しお待ちくださいませ。


>或いは、C.Basic側で、そのようなコマンドを作って頂くのも有り難いのですが、プログラムでできることはプログラムということで、サンプルプログラムを作って公開しようかと思っています。

ファイルリストはBMPだけでも無いと思うので、ワイルドカード込でファイルリストを取得するコマンドを新設したいと思います。(^^)


>懐かしいOSのエミュレーション

懐かしい画面が続々です。ありがとうございます!

>Windows 1.01 なんて、色使いなどCGシリーズで再現できそうな感じもします。何かの参考になるかも知れないと思います。

Windowsは3.1からなので1.01はほとんど見たことなかった画面ですが、何か懐かしさを感じるのはDOSっぽいからでしょうか。(^^)

Re: Mandelbrot viewer ver2

iron2様、sentaro様、ツル様、CGユーザーの皆様


管理人のやすです。

Mandelbrot Viewer Ver 2 頂きました。ありがとうございます。

私の好みに近いので、プログラムの見通しが格段に良くなったと感じましたた。
このまま、x と y の入力など楽に拡張できればと思います。

左上の座標を入力させ、矩形エリアのサイズは固定にするのか、
サイズは、矢印キーの右と下を押してリアルタイムで上書きした矩形のサイズを変えるとかすると、より分かり易いでしょうか?


2点ばかり気になる点がありました。

Fix 2

Fix 2 の設定をされていますが、プログラム終了時に Fix 0 を追加してみました。
...というのも、手元にある他のプログラムが Fix 2 になってしまって、整数出力にしたものが全て小数点以下2桁が .00 となってしまうので、最初はアレッと悩みました。
これについては、今後ご考慮頂いた方が良いと思いました。


EXE:Start の赤色表示

それから、Kを押した時に、EXE:Start が赤文字になって、次の操作を誘導してくれていた全バージョンが、親切に思ったのですが、今バージョンでは [EXE] を押した時に初めて赤文字になっています。

なので、ElseIf K=35 の時に

Red Text 143,270,"EXE:Start",O を追加し、

ElseIf K=31 にあった

Red Text 143,270,"EXE:Start",O をコメントアウトしてみました。

iron2様のお考えとは異なるかも知れませんが、全バージョンで気に入っていたので、提案させて頂きました。


全画面描画

ところで、今バージョンでは全画面描画が無くなっていますが、それで良いのでしょうか?


インデント

ここにTEXTで投稿頂くとインデントが無視されてしまうので(コメント欄の仕様)、電卓に転送し、インデントを付けてみると、やっと理解し易くなりました。



そこで、勝手ながら上記の2点を修正したものを、以下からダウンロードできるようにしました。

Mandelbrot Viewer Ver 2 - MNDLVW02.g3m
https://egadget2.web.fc2.com/archives/fx-CG50/iron2/MNDLVW02.html



なお、本質に関係ない細かいことですが、英単語でチョット気になったので以下のように手を入れました(赤文字部分を追加)。

'MNDLVW02
'Created by iron2
'DATE 2018.01.11_->_
'Modified
'DATE 2018.01.12_->_
'(1)Main message loop
'(2)Gosub



> これからもっとコードが長くなりそうです。
> やっぱり管理人様にメールでしょうか?

g3mファイルをメールを頂ければ、ダウンロードリンクを作ります。
インデントを付ける作業が不要で分かり易いので良いかも知れませんね。


Mandelbrot viewer ver2

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

顕微鏡はまだですが、メインメッセージループとGosub化したので
Ver2としてコードを晒します。5Kテキスト

前のVer1ではModoのMの後F,S,M+Kでしたが
Ver2ではMの後、F,S,H+Kです。⇒M、Mで連続押しの防止で
MaxSize Imageは High Fine imageとしました。

したがってMの後、モードを選んで、Kでメインループにもどって
EXEで描画します。
メインループの状態でDELを押すと終了します。

フル画像でMを押すとモードを選べるのでS,Fを選ぶと標準に戻ります。

まだまだ出来損ないですが、少しマシになりました。
x、y表示は顕微鏡のときにつかうラベルです。(今は無視してください)

'ProgramMode:RUN
'MNDLVW02
'Create by iron2
'DATE 2018.01.11_->_
'Modifi
'DATE 2018.01.12_->_
'(1)Main message loop
'(2)Gosub
'GPL3
' from TI-Planet
' https://tiplanet.org/forum/viewtopic.php?p=224371

'_(-)__(-)__(-)__(-)__(-)_ Main Progam
'Inital View
Back-Color @Black
Screen.g:_ClrVram
RGB(96,200,96)
_Rectangle -1,(-)25,384,215,1,-1
RGB(0,0,128)
Text (-)22,50,"<< MANDELBROT VIWER Ver02 >>",O
Text 0,215,"x ",O
Text 20,215,"y ",O
Text 143,270,"EXE:Start",O
Text 164,270,"DEL:Quit",O
RGB(255,255,255)
_Rectangle -5,(-)9,217,128,10,-1
Black Text 125,5,"Times",O
Black Text 145,5,"Mode",O
Black Text 145,60," << Select S,F,H+K >>",O
_DispVram

'Main MessageLoop
Do:Getkey->K
'ModeSelect M
If K=74:Then
'Active CangeMode
RGB(96,200,96)
Blue Text 145,5,"Mode",O
RGB(96,200,96)
Text 145,60,StrChar(" ",29),R
Blue Text 145,60," << Select S,F,H+K >>",O
Getkey1 'Vram Force Output
'ModeSelcte Loop
Do:Getkey->J
If J=26:Then
RGB(96,200,96)
Text 145,60,StrChar(" ",29),R
Cyan Text 145,60," << Fine Image >> ",O
J->M
_DispVram
ElseIf J=43:Then
Back-Color @Black
Screen.g:_ClrVram
RGB(96,200,96)
_Rectangle -1,(-)25,384,215,1,-1
RGB(0,0,128)
Text (-)22,50,"<< MANDELBROT VIWER Ver02 >>",O
Text 0,215,"x ",O
Text 20,215,"y ",O
Text 143,270,"EXE:Start",O
Text 164,270,"DEL:Quit",O
RGB(255,255,255)
_Rectangle -5,(-)9,217,128,10,-1
Black Text 125,5,"Times",O
Blue Text 145,5,"Mode",O
RGB(96,200,96)
Text 145,60,StrChar(" ",29),R
Cyan Text 145,60," << Search Image >> ",O
J->M
_DispVram
ElseIf J=65:Then
Back-Color @Black
Screen.g:_ClrVram
RGB(96,200,96)
_Rectangle -1,(-)25,384,215,1,-1
RGB(0,0,128)
Text (-)22,50,"<< MANDELBROT VIWER Ver02 >>",O
Text 0,215,"x ",O
Text 20,215,"y ",O
Text 143,270,"EXE:Start",O
Text 164,270,"DEL:Quit",O
RGB(255,255,255)
_Rectangle -5,(-)9,217,128,10,-1
Black Text 125,5,"Times",O
Blue Text 145,5,"Mode",O
RGB(96,200,96)
Text 145,60,StrChar(" ",29),R
Cyan Text 145,60,"<<HighFine Image>>",O
J->M
_DispVram
ElseIf J=35:Then
Break
IfEnd
LpWhile 1
ElseIf K=31:Then
Red Text 143,270,"EXE:Start",O
If M=26:Then
'_(-)__(-)__(-)__(-)__(-)__(-)_ A (MNDLF)
Gosub A->c
ElseIf M=43:Then
'_(-)__(-)__(-)__(-)__(-)__(-)_ B (MNDLS)
Gosub B->c
ElseIf M=65:Then
'_(-)__(-)__(-)__(-)__(-)__(-)_ C (MNDLH)
Gosub C->c
IfEnd 'M
IfEnd 'K
LpWhile K<>44
RGB(255,255,255)
_Rectangle -1,(-)25,384,215,1,-1
Black Text 75,65,"Also please play. See You.",O
Stop
'_(-)__(-)__(-)__(-)__(-)_ MNDLF A
Lbl A
RGB(255,255,255)
_Rectangle -5,(-)9,217,128,10,-1
100->N
10->o 'offset
10+20->r
2->j '*0.25
2.7->w
(-)1.87->h
Int (383/j)->m
Int (215/j)->n
Int ((319/j))->p
Int ((215/j))->q

Ticks->s
For (0+r)->y To (n+r)
For (0+o)->x To (m+o)
'_For _(0+o)_->_y_ To _(n+o)_ Step _2
'0_->_a
'0_->_b
((w*(x-o))/p)-(2.1-0.0)->c
((h*(y-r))/q)+(0.935-0.0)->d
4->L
SysCall(10000,N,&c,&d,&L)->i
Int ((255*i)/N)->g
RGB(1.0*g,5.0*g,8.0*g)
_Pixel x,y-24,1
Next
_DispVram
Next
Ticks->z
(z-s)*0.0078125->r
Fix 2
RGB(96,200,96)
Text 125,70,StrChar(" ",13),R
Black Text 125,80,r,O
Black Text 125,165,"sec",O
Black Text 145,5,"Mode",O
RGB(96,200,96)
Text 145,60,StrChar(" ",30),R
Black Text 145,60," << Select S,F,H+K >> ",O
Black Text 143,270,"EXE:Start",O_DispVram
Return 0
'_(-)__(-)__(-)__(-)__(-)_ MNDLS B
Lbl B
RGB(255,255,255)
_Rectangle -5,(-)9,217,128,10,-1
100->N
10->o 'offset
10+20->r
2->j '*0.25
2.7->w
(-)1.87->h
Int (383/j)->m
Int (215/j)->n
Int ((319/j))->p
Int ((215/j))->q

Ticks->s
For (0+r)->y To (n+r) Step 2
For (0+o)->x To (m+o) Step 2
'_For _(0+o)_->_y_ To _(n+o)_ Step _2
'0_->_a
'0_->_b
((w*(x-o))/p)-(2.1-0.0)->c
((h*(y-r))/q)+(0.935-0.0)->d
4->L
SysCall(10000,N,&c,&d,&L)->i
Int ((255*i)/N)->g
RGB(1.0*g,5.0*g,8.0*g)
_Rectangle x,y-24,x+1,y-23,1,1
Next
_DispVram
Next
Ticks->z
(z-s)*0.0078125->r
Fix 2
RGB(96,200,96)
Text 125,70,StrChar(" ",13),R
Black Text 125,80,r,O
Black Text 125,165,"sec",O
Black Text 145,5,"Mode",O
RGB(96,200,96)
Text 145,60,StrChar(" ",29),R
Black Text 145,60," << Select S,F,H+K >> ",O
Black Text 143,270,"EXE:Start",O_DispVram
Return 0
'_(-)__(-)__(-)__(-)__(-)_ MNDLH C
Lbl C
Screen.g:_ClrVram
100->N
0->o 'offset
0->r
1->j '*1
2.7->w
(-)1.87->h
Int (383/j)->m
Int (215/j)->n
Int ((319/j))->p
Int ((215/j))->q

Ticks->s
For (0+r)->y To (n+r)
For (0+o)->x To (m+o)
'_For _(0+o)_->_y_ To _(n+o)_ Step _2
'0_->_a
'0_->_b
((w*(x-o))/p)-(2.1-0.0)->c
((h*(y-r))/q)+(0.935-0.0)->d
4->L
SysCall(10000,N,&c,&d,&L)->i
Int ((255*i)/N)->g
RGB(1.0*g,5.0*g,8.0*g)
_Pixel x,y-24,1
Next
_DispVram
Next
Ticks->z
(z-s)*0.0078125->r
Fix 2
Red Text 125,80,StrChar(" ",13),O
Red Text 125,5,"Times",O
Red Text 125,80,r,O
Red Text 125,165,"sec",O
Red Text 145,5,"Mode",O
RGB(96,200,96)
Red Text 145,60,StrChar(" ",29),O
Red Text 145,60," << Select S,F,H+K >> ",O
Red Text 143,270,"EXE:Start",O
Red Text 164,270,"AC:Quit",O
_DispVram
Return 0

これからもっとコードが長くなりそうです。
やっぱり管理人様にメールでしょうか?

これからもよろしくお願いします。

懐かしいOSのエミュレーション

sentaro様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人のやすです。

取り敢えず、備忘録として貼り付けます。

http://copy.sh/v86/


様々な過去のOSのエミュレータです。

Windows 1.01 なんて、色使いなどCGシリーズで再現できそうな感じもします。何かの参考になるかも知れないと思います。


Re: Re:複数文字変数、関数、その他 + C.Basic for FX 1.65β マイナーアップデート

sentaro様、ツル様、iron2様、CGユーザーの皆様、こんにちは!


管理人のやすです。


> もし、今の仕様での実装的に一番簡単と思われるのは
> AliasVarで任意の文字列を変数名に置き換えることかなと思います。
> 現在のAliasVar仕様ではすでにあるコマンド名に置き換えることだけが可能ですが、これを任意の文字列でも可とするならば、
> 変数の数は現状のままで増えないですが、今の英文字1文字から任意の名前に変えられるのでソースコードが分かりやすくなる利点はありますね。

> AliasVar A=@ABC
> で、これ以降は@ABCが変数Aの代わりに使えるという感じです。


あ、第一弾として、これは良いと思います。私は結構使わせてもらうと思います。


> >BmpLoad( でBMPファイルロードの機能ですが、ワイルカードを指定し結果を例えば 指定したパス付きファイル名を List に格納...といったもは可能でしょうか?
>
> リストで文字列は扱えないので、行列に文字列格納ということになりそうですが、
> 可能か不可能かということであれば可能です。(^^)

はい、行列ですね。
ワイルドカードが使えれば、"ファイルを開く"サブルーチンが作れるので嬉しいです。
或いは、C.Basic側で、そのようなコマンドを作って頂くのも有り難いのですが、プログラムでできることはプログラムということで、サンプルプログラムを作って公開しようかと思っています。


Re: Re:CG50の時計

sentaro様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人のやすです。


> 内部のタイマーの何かカウンタ設定がずれてしまっているかもしれませんので、一応何度かリセットして様子をみて下さい。

と、いうことでリセットしてみましたら、今回初めてですがタイマーがリセットされませんでした。
タイマーがリセットされないのが正しい動作だとしたら...と仮定し、今後しばらく様子をみてまた報告致します。

もしこれでタイマーが正常になるなら、リセット動作時の何かをお調べになると、近道かも知れませんね!

Re:CG50の時計

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>私の手元のCG50の時計の様子ですが、
>あまり使わない状況で、1日で約3時間遅れました。
>割と使ったら、1日で約1時間遅れました。
>なんだか、謎な状況のままです。

ツル様のところでもズレてる報告有りましたけど、ちょっとおかしいですよね。
ただ、うちのCG50は何度かリセットしまくったというのはありますが、ここのところ全然ズレてないので、何か変な感じですよね。

内部のタイマーの何かカウンタ設定がずれてしまっているかもしれませんので、一応何度かリセットして様子をみて下さい。

Re:C.Basic for CG International Release

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>UCF で C.Basic for CG について言及なさっていますが、あそこでもリリースされるのですか?

もうすぐFX版のUCFリリースから一年になりますが、一周年でということではなくアルファ版が安定して一段落してベータ版になったらと考えています。

もしすぐにでも使ってみたいという人が現れたら、とりあえずは管理人様のリンクで…(^^)
https://egadget2.web.fc2.com/CBasic/archives/programs/CBasicCG/Versions/CBasicCG_versions.html


>このエントリーの改編履歴の英訳はかなり大変ですが、sentaro様はお手元で英語版マニュアルのご準備OKですか?

あ゛…まだです…(^^;
改編履歴はベータ版になる段階で一旦マニュアルにまとめてからと思ってましたけど、結構分量が増えてしまったので少しずつでも進めないとまずいですね。
まだ本体のバージョンアップが一段落とはいえないので、区切りが難しいです。(^^;


>お手伝いできることがあれば、なんなりと....

管理人様の英語版のC.BasicサイトのCG版をお願いできれば幸いです。(^^)

Re:複数文字変数、関数、その他 + C.Basic for FX 1.65β マイナーアップデート

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>そうか、乗算記号省略が字句解釈のネックになっていたのですね。これがなくなればさらに高速化の可能性があるというのも凄いと思います。

乗算省略を無くしたら見た目でわかる高速化出来るかといえば、ほんのわずか、1%か誤差程度でしょうか。(^^;
一番効果的なのは数式の優先順位を無くすることで、左から順番に計算するという地味な形にするのが一番早くて、それだと今の二項演算化と同様に数割速くなります。(^^;

>Casio Basicとの互換性の面ではこの仕様は維持していて欲しいところで、@ABC のような複数文字列の実装方法も捨てがたいなぁという気持ちもあります。

互換性重視でここまで来てますから、捨てがたいところではありますね。


>そこで、
>デフォルトではABCで乗算として解釈、@ABCで変数。
>さらに、SET UP か '#ExtVal (仮称) 宣言で、乗算省略禁止 & C.Basic拡張・複数文字変数対応
>...といったのはどうでしょうか?

なかなか良さげな感じだと思います。(^^)
実行モードを増やすというのはそれはそれでまた式評価の負担が増えてしまいますが、利便性向上のためには少しくらいはどうってことないですね。

もし、今の仕様での実装的に一番簡単と思われるのは
AliasVarで任意の文字列を変数名に置き換えることかなと思います。
現在のAliasVar仕様ではすでにあるコマンド名に置き換えることだけが可能ですが、これを任意の文字列でも可とするならば、
変数の数は現状のままで増えないですが、今の英文字1文字から任意の名前に変えられるのでソースコードが分かりやすくなる利点はありますね。

AliasVar A=@ABC
で、これ以降は@ABCが変数Aの代わりに使えるという感じです。



>BmpLoad( でBMPファイルロードの機能ですが、ワイルカードを指定し結果を例えば 指定したパス付きファイル名を List に格納...といったもは可能でしょうか?

リストで文字列は扱えないので、行列に文字列格納ということになりそうですが、
可能か不可能かということであれば可能です。(^^)




>UFCの下記コメント
http://community.casiocalc.org/topic/7637-cbasic-international-release/?p=61521

>Plotの謎、結構海外でも謎なんですね!

そのような感じですよね。
直感的には分かりづらい仕様なので、FX版の時はかなり苦労しました。
管理人様の鋭い探索力で助けられたのを思い出します。(^^)


>で、世界地図のプログラム KARTENWU.g1m 面白いですね。

はい、なかなか思いつかないようなアプリなので興味深いです。
CGの高解像度でも見てみたいと思いました。(^^)


>'#Mat 0 にしないとエラーになるので、最初はアレっと思いました。

エラーになった瞬間にセットアップで0に設定してました。(^^;
行列のインデックスの開始が0か1かは結構重要ポイントですね。


>で、UFCで C.Basic for FX Ver 1.65β のアップデートがアナウンスされていたので、ここでもアナウンス追加しておきました。

こちらでの私のアナウンスが遅れました。(^^;
どうもありがとうございます!

CG50の時計

sentaro様、ツル様、iron2様、CGユーザーの皆様


管理人のやすです。


私の手元のCG50の時計の様子ですが、

あまり使わない状況で、1日で約3時間遅れました。
割と使ったら、1日で約1時間遅れました。

なんだか、謎な状況のままです。

C.Basic for CG International Release

sentaro様


管理人のやすです。

業務連絡というか...

UCF で C.Basic for CG について言及なさっていますが、あそこでもリリースされるのですか?

このエントリーの改編履歴の英訳はかなり大変ですが、sentaro様はお手元で英語版マニュアルのご準備OKですか?

お手伝いできることがあれば、なんなりと....

複数文字変数、関数、その他

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。


複数文字変数

そうか、乗算記号省略が字句解釈のネックになっていたのですね。これがなくなればさらに高速化の可能性があるというのも凄いと思います。

Casio Basicとの互換性の面ではこの仕様は維持していて欲しいところで、@ABC のような複数文字列の実装方法も捨てがたいなぁという気持ちもあります。

そこで、
デフォルトではABCで乗算として解釈、@ABCで変数。
さらに、SET UP か '#ExtVal (仮称) 宣言で、乗算省略禁止 & C.Basic拡張・複数文字変数対応
...といったのはどうでしょうか?


BmpLoad(でワイルドカード利用

BmpLoad( でBMPファイルロードの機能ですが、ワイルカードを指定し結果を例えば 指定したパス付きファイル名を List に格納...といったもは可能でしょうか?
これが可能になると、リストからファイルを選んでロードするプログラムを作れるようになります。

Re:Re: Re:コンパイラー版の時にあればというのは

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>複数文字変数への対応と併せて、局所変数(ローカル変数)対応へのご検討の余地はどのような感じでしょうか?

複数文字の変数に関しては、
ABCがAxBxCとなってしまうCasioBasic互換仕様である限りは簡単ではないですが、
複数文字変数であるというプリフィックスコマンドかキャラクタを付加することで互換性を保ったまま使えるようになる可能性はありますね。
@ABC
でABCという変数名として認識させるような感じです。

もしくは、省略乗算をばっさりと切り捨てて、変数名拡張仕様バージョンとして仕様変更するならば、
ABCを変数名として解釈するような普通の言語同等に出来るようになります。
じつのところ、省略乗算はそれだけのために式評価での機能追加が必要なので若干負担の増えている機能だったりします。
この部分をばっさり切り捨てれば省略乗算の互換は失われますが、変数名や関数名の自由度が普通の言語っぽくなります。

CasioBasicで作成した従来プログラムをそのまま動かすということに関しては都合が悪いですが、
新たにC.Basicから作成するプログラムでは特に問題は無いと思われます。
というか、変数名の自由度の方が遥かに利便性は有りますし、CG対応になってアプリの守備範囲がCasioBasicを大きく越えて広がっているので、変数一文字縛りから脱皮するにはよい機会かもしれませんね。(^^)
変数名拡張でどれくらい速度低下するかはやってみないとわからないですが、CPUパワーがそれなりにあるのであまり遅くはならないかもしれません。

関数に関しても複数文字の変数が使えるようになると実装しやすくなりますね。

とりあえず、複数文字の変数が可能になるバージョンを試作してみます。
このあたりは、すぐやる課のC.Basicでもちょこっと時間かかる拡張になるかもですが、コンパイラにとっても有利なのでがんばってみます。(^^)

Re: Re:コンパイラー版の時にあればというのは

iron2様、sentaro様、ツル様、CGユーザーの皆様

管理人のやすです。


関数導入

プラ子のコードから C.Basic の移植の記事を拝見するたびに、関数と複数文字変数を使えると良いな、といつも思っていました。

さしあたり iron2様のご要望に対応するには、大域変数を仮想的に引数/戻り値として利用する Gosub を使えるかも知れないということですが、以前コメントでチラッとsentaro様が触れられていた "関数導入" は興味があります。

Casio Basic の文法上の互換性をベースに進展してきた C.Basic ですので、変数は、1文字のみでメモリ内の全てのプログラムが共有する究極の大域変数となっています。これに対して、複数文字変数への対応と関数化の検討の余地があるという趣旨でのコメントだったと思います。

複数文字変数への対応と併せて、局所変数(ローカル変数)対応へのご検討の余地はどのような感じでしょうか?
想像するに、複数文字変数への対応が、実行速度やインタープリタの逐語解釈の内部実装に最も影響を与える部分ではないか?それ故に大がかりな改造になるのではないか?と思っています。


そのような感覚を踏まえて、iron2様がコンパイラ版での対応の可能性としてコメントなさったとすれば、凄く納得です。

例えば、文字数は2つか3つに制限してスタートして様子を見るという方法もありそうな気が(勝手ながら)しています。コンパイラ版では文字数の影響が少なそうで、むしろインタープリタ動作への影響を少なくする方が難易度が高そうな気がします。


ところで、

> >アセンブラもバリバリいけるって感じなのかなぁ...
>
> Z80や68Kならそこそこ使い倒しましたけど、SHシリーズはまだまだひよっ子です。(^^;

これは、比較の対象次第というか、神様みたいな海外の方を引き合いに出したら、そうなっちゃいますが、私から見れば既に神の領域ですよ! (めっちゃレベルの低い対象でスミマセン)


> 分かりやすいフロー解説ありがとうございます!
> ループとなるとLbl~Gotoを安易に使ってしまいそうになりますが(汗)
> 管理人様仕様だと確実に高級言語を使っている感が出てきますね。(^^)

Lbl 0

・・・

E⇒Goto 0

というループ脱出方法は私もよく使います。純正 Casio Basic と異なり、C.Basic では Goto による速度低下は殆ど見られないからです。

ただし機能追加することになると、ループ脱出の方法が複数欲しくなり、複数条件から 1->E とするコードを追加するくらいなら、Do ループで Break 一発で脱出する方が楽だし美しいと思っているんです。

また、例外処理を Goto E で一カ所に飛ばしてまとめて処理するという手法も好きですので、積極的に Goto排除を試みることは無いんです。クヌース先生の主張「gotoを使った構造化プログラミング」が Casio Basic にはちょうど良いと思っています。

私が好む (=美しいコードだと思う 基準は、iron2様のご指摘のとおり K&R本の影響が大きいのかも知れません。

好みの問題にも大きく係わることは承知で申し上げると、コードの美しさとして割と意識しているのは、簡潔さ、同じ処理を複数回書かないということと同時に、コードの見やすさ・機能追加の容易さ、ということもあります。
なので、⇒ (条件ジャンプ)も好きなんです。Casio Basicコードとしての美しさと可読性を同時追求するというのが、当ブログの隠れたテーマであったりします。

楽で楽しい Casio Basic プログラミングの勧め、みたいな感じでしょうか?

あまりに Casio Basic にどっぷりつかると、たまにはPCでWindowsプログラミングがしたくなるのは、Casio Basicの制限ゆえに自分が美しいと感じるコードが書けない欲求不満によるものかも知れません(^^;

これは、チョット格好良すぎでしたね....(シツレイ シマシタ)

大域変数、関数無しのCasio Basicの話から、思いっきり脱線していましました...

Re:コンパイラー版の時にあればというのは

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

カーニハン&リッチーもケン・トンプソン&デニス・リッチーもCのその筋では超有名な方たちであること以外はあまりよくわかってないので(汗)とっても恐縮しておりますです。


iron2様、
>そこで感じた事で、prog "sub 1"
>では外部ファイルになりますよね。
>簡素に1ファイル内でサブルーチンが使えたらと感じた。

ファイル名のところがラベル(英数字一文字)になりますが、
下記の感じで一応使えるようにはなっています。
もし、期待通りに動作しない場合はバグがあるかもしれません。
また、サブプログラムのProgと違ってLocalは1ファイルのプログラム内で共通なのでローカル変数のふりをしたグローバル変数です。(^^;

------------メインプログラム

Gosub A,引数a,引数b->返値c

Stop
------------ サブルーチン
Lbl A
local a,b
...
Return c



>ということで顕微鏡モード実装しますので
>御辛抱ください→sentaro様

はい!
締め切り等は一切ありませんので、じっくり取り組まれてくださいませ。(^^)



管理人様、
分かりやすいフロー解説ありがとうございます!
ループとなるとLbl~Gotoを安易に使ってしまいそうになりますが(汗)
管理人様仕様だと確実に高級言語を使っている感が出てきますね。(^^)


>アセンブラもバリバリいけるって感じなのかなぁ...

Z80や68Kならそこそこ使い倒しましたけど、SHシリーズはまだまだひよっ子です。(^^;

コンパイラー版の時にあればというのは

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

現在マンデルビュワーver1を管理人様の指導に近い形に
修正中です。
そこで感じた事で、prog "sub 1"
では外部ファイルになりますよね。
簡素に1ファイル内でサブルーチンが使えたらと感じた。
使えるのに知らないだけのでしょうか?
もし無いなら将来使えたらうれしいです。
IF文内で関数呼び出しだけ書いて構造だけ
作って後で関数内を仕上げればほぼコピペで
作れる気がしたので。。。あぁ手抜きがバレバレだ。

これからもよろしくお願いします

Re: 今の常連の立ち位置が面白い

iron2様,sentaro様、ツル様、CGユーザーの皆様

管理人のやすです。

興味深いお話です。


> というのはCBasicはB言語を改良したC言語ぽい立ち位置で
> システムコールができる。VRAMを直接触れる。
> メッセージループは手前で作る必要があるが
> アセンブラで組むより人間よりで作れる。

純正⇒C.Basic が B⇒C に似ているということですね。
B言語についてはよく知りませんが、Bを元にCが作られたということはK&R本に書かれていて知っています。BもCも同じ人が係わっているのですよね。


> 管理人様はカーニハン&リッチーのような立ち位置のように見え

読み込んだ本の1つがK&R本(Programming Language C 第2版の原書)なので、知らないうちに影響を受けているのかも知れません。何がそう思わせるのか、自覚はさっぱりですけど...


> sentaro様はケン・トンプソン&デニス・リッチーのような立ち位置に見え

アセンブラもバリバリいけるって感じなのかなぁ...


> ツル様はフラッシュやHTML5を操りユーザーの目の一番触れる部分の
> 立ち位置に見え

この感じ、すごい分かります(^^;


> そして私は、数値や視覚化の結果がOKなら体裁は後での

このタイプ、私の身の回りに一番多いタイプです...


> 注力する視点が異なるのが面白い。

異なるキャラクターが一緒に遊ぶと、面白いんですよね!


今の常連の立ち位置が面白い

管理人様,sentaro様、ツル様、CGユーザーの皆様

iron2です。

個人的には、今の常連投稿の立ち位置が面白いと思っています。
というのはCBasicはB言語を改良したC言語ぽい立ち位置で
システムコールができる。VRAMを直接触れる。
メッセージループは手前で作る必要があるが
アセンブラで組むより人間よりで作れる。

管理人様はカーニハン&リッチーのような立ち位置のように見え
sentaro様はケン・トンプソン&デニス・リッチーのような立ち位置に見え
ツル様はフラッシュやHTML5を操りユーザーの目の一番触れる部分の
立ち位置に見え
そして私は、数値や視覚化の結果がOKなら体裁は後での
サンデープログラマー。。。(笑)

注力する視点が異なるのが面白い。

んでは、病院にいってきます~

これからもよろしくお願いします。

ご指導ありがとうございます

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

帰宅しました。

フローは頭が混乱しなようにと魚の骨図的にまとめました。

ループの最後の所の手前で一旦停止とうか
←にいくのか→にいくのかを挟めばと
(カラクリサーカスの場面展開風w)うしおととらの人が書いてる
浅はかな考えでした。
(普段からやっつけがバレバレですねwww)

管理人様のまるで六韜のような講義ありがとうございます。
あせらず構造をよく考えます。

ということで顕微鏡モード実装しますので
御辛抱ください→sentaro様

これからもよろしくお願いします。

Re: view ver1のフロー

iron2様、sentaro様、ツル様、CGユーザーの皆様

管理人のやすです。


一般論ですが、後から色々と機能を詰め込む時に役立つプログラム構造について、1つのアプローチをご紹介しようと思います。

プログラム全体は以下のようなフローなのは、ご異論の無いところだと思います。

[初期設定]
 ↓
[初期表示]
 ↓
[プログラムメイン]
 ↓
[終了処理]


で、今回ご紹介するのは [プログラムメイン] の部分です。

プログラムメインの部分を、以下のような大きなループにします。

Do

・・・

LpWhile [ループ継続条件]


で、ユーザーが何かキーを押すことで、そのキーに応じた仕事を1つだけ行って、ループが回る....

言い換えれば、ユーザーのアクション1つに対して、対応する処理を1つだけ行って、ループを回してキー所得ルーチンで止め、次のキー入力を待つ...といったようにすると機能追加が楽になります。

で、この大枠のループを Lbl 0 / Goto 0 にしないで、Do ループを使うメリットは、Break コマンドか [ループ継続条件] に合わない条件設定で、[終了処理]へ進める点にあります。

Lbl 0 / Goto 0 でも変数を使って同様に出来ますが、Doループの方がループ終了のための方法の選択しが多いので、これをお勧めするわけです。

そして、この大枠ループの中に、キー取得ループを入れます。


Do

 [キーを押す前の画面描画]
  ↓
 [キー取得ループ]
  ↓
 [押されたキーごとの個別処理]
  ↓
 [キーを押した後の画面描画]

LpWhile [ループ継続条件]

=====

さて、キー取得ループは、Getkey を使うか、C.Basicで拡張した Getkey1 を使うかの選択がありますが、本質的にどちらでも同じです。細かいところでは、キーを押している時(長押ししている時)に動きの有る描画を行いたいときは、より高速に動かせる Getkeyが良い...といった個別の判断はあると思います。Getkey1 はご存じのように省電力のメリットがあります。


キー取得の基本ループです;

Do:Getkey→K
LpWhile K=0

あとは、Kの値に応じて If文で必要な処理を書きます。
ここでは、1つキーを押した時、そのキーに応じてパラメータを変化させることに徹する(例外はありますが...)という気持ちでいると良いと思います。

If K= :Then
 ・・・
ElseIf K= :Then
 ・・・
ElseIf K= :Then
 ・・・
IfEnd

といった処理を、大枠のループの中に書きます。このように一カ所にまとめる場合もありますが、


キー入力の前の描画処理 と キー入力後の描画処理 の都合に応じて、If文をキー取得ループの戦後に振り分ける方が良いことも多いです。

或いは、マンデルブロメインの描画部分は、If文の1つの選択肢の中に書いてしまう方法もアリだと思います。むしろ今回はこの方が良いかも知れないと思います。

ユーザーの入力値に応じてパラメータを一揃いまとめる計算は、If文の1つの選択肢で行う、或いは描画開始のキー入力があれば、これも If文の1つの選択肢内で、描画させる...といったようにします。

ユーザーのアクション1つに対して、対応する処理を1つだけ行って、ループを回してキー所得ルーチンで止め、次のキー入力を待つ...といった基本構造が、機能拡張を楽にすると思うわけです。すると結果的にGotoの利用が減り、自分自身でプログラム全体を見やすくなるという効能もあります。

私のサンプルプログラム HVY8 は、If文をキー取得ループの前後に振り分けた構造になっていて、If文で入力したキーに基づくパラメータの計算を行うようにしていて、矢印キー入力を受けた処理は、キー取得ループの前に持ってきて、それ以外のキー入力に応じたIf文は、キー取得ループの後に配置しています。そして、キー取得ループの前後で、描画や出力を行うようにしています。


一般化すると、余計に分かりにくくなったかもしてませんが、基本構造のコンセプトが伝われば良いなと思います。

組み込みプログラムに例えれば、割り込み処理がキー取得ループに相当します。Windowsプログラムで例えるとWindowsメッセージの受け取りがキー取得ループに相当します。

この大枠の中で、マンデルブロ描画を、どこか適用なところに置くということです。マンデルブロ描画を中心に据えていると機能追加で苦労すると思います。


キー取得ループを中心に据えて、このループで入力待ちにして、何か入力されたら、外枠のループをゴロリと1回転させる、といったコンセプトの構造は、汎用性があって後から機能追加がし易いので、お勧めです。


当ブログで紹介している多くのプログラムの殆どが、この基本構造にしています。それくらい使える基本構造です。RGB4 や SysFunc や HVY8、RAINBO3 など最近のプログラムも全てこの基本構造です。



書き殴った感じではありますが、お役にたてばうれしいです。


C.Basic for CG v0.30α (エディタの反転文字対策+デフォルト外部フォント修正版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>ええっと、Mini Fix フォントでリバース表示させてみると、コマンドや文字の境目が白い筋になって、妙な感じになります。

今回のアップデートで白筋退治できたと思います。(^^)


>は~い、よろしくお願い致します。

ってことで、デフォルトフォントをフリーのIPAフォントで差し替えしました。(^^)
外字も同時に変更してみました。
元のフォントからするとちょっと崩れてしまいましたが、とりあえずのデフォルトフォントです。


C.Basic for CG v0.30α (エディタの反転文字対策+デフォルト外部フォント修正版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG030.zip
・デフォルトの外部フォントをIPAフォントに変更しました。
 @LFONTK0 カタカナフォント(標準)
 @MFONTK0 カタカナフォント(ミニ)
 @LFONTK1 ひらがなフォント(標準)
 @MFONTK1 ひらがなフォント(ミニ)
 @LFONTG0 外字サンプルフォント(標準)
 @MFONTG0 外字サンプルフォント(ミニ)


新しい外字になったので、10日ほど遅れましたが外字を使ったサンプルです。
http://pm.matrix.jp/CB/NEWYEAR.zip
上記のフォントを@Fontフォルダにコピーするか、プログラムと同じフォルダにコピーして実行して下さい。




>そうですね。実はCの経験の浅い方には、Sprintf( がもっとマニュアル必要かな?と、次のネタにしようと思います。フォーマットの情報を盛り込むつもりです。

じつはまだSprintf(は、引数がが複数になると2つ目以降がスルーされるというバグが残っていますので近いうちに修正します。(^^;


>BmpLoad の透過度設定ですが、透過設定するとなんだかピカソの絵とかモダンアートみたいになっちゃいます。このあたりの変更ということですね?

はい、そのとおりです。(笑)
なんか薄くならずにハイコントラストな絵になってしまうので、何か間違えてる可能性がありますので、鋭意修正いたします。
今回のアップデートではまだ未修正なので、ツル様、少々お待ちくださいませ。




iron2様、
>顕微鏡モードにどうはいるかで悩み中(笑)
顕微鏡モードは欲しいかもです。(^^)
Ver.1フロー、拝見しました。
このままコード化すれば、大まかなところは完成ですね。
あとは、細かな部分は少しずつ追加変更していけばいいと思います。
キー入力は、リアルタイム性が必要ではないのでGetkey1か2がお薦めです。

>しかし今はCBasic一本です。(^^)
>移植の移植して比べてみるというのも面白そうですが、今無理w

ありがとうございます!
C.Basicはユーザーの皆様に育てていただくアプリですので、これからもよろしくお願いいたします。(^^)
プラ子もご機嫌損ねないようにたまには可愛がってあげて下さい。(笑)

>電卓のリセットボタンでは内部時計は狂いませんでした。
了解です。
ってことは、リセットでおかしくなるというのは無さそうですね。
他の原因を探る必要がありそうです。

view ver1のフロー

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

壁にmandelbrot view ver1のフローを貼りました。
自分用なので皆様に通用するか不明ですが
だいたいあってると思います。

これからもよろしくお願いします

mandelbrot viewerインターフェースむずい(笑)

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

顕微鏡モードにどうはいるかで悩み中(笑)

というのはGetkey駆使しないと原点移動処理
拡大処理しますか?そのまま描画メインループに
戻りますか?
といった一旦停止、十字バーONOFF、NEXTDRAW
といった制御がうまく組めない
十字バーのONOFFはフリップフロップになるしw
コード書く前にざっくりしたフローから考えなと
後でめちゃくちゃになりそうwwww

CBasicは私にとって面白いですが頭が沸騰します。

今は触っていないプラ子はHPが電卓事業撤退して
もうマイナーアップデートしかないですがTIに負けたから。
野心的な商品だと今も思います。
EXPORT関数 EXPORT変数→ほんとのグローバル
コード内の関数外の変数や関数→プロシジャー内のグロバーバル
関数内変数→LOCAL変数
数々の数学関数→ほぼMaxima
そして複数文字変数
ほとんど高級言語ぽいです。
容量もフリーメモリで14MB、フリーストレージ197MB
ファイルの読み書きもOKで小型コンピュータです。
購買層も学校(Tiが支配)レベルというより現場の技術者や研究者狙いだっと
どこか聞きました。
最初ここからグラフ電卓にはいったのはSpeedもあったけど、
私のようなぬるま湯環境には抵抗が少なかったのかもしれません。

しかし今はCBasic一本です。(^^)
移植の移植して比べてみるというのも面白そうですが、今無理w

そして、いままでにまして進展遅くなりそうですが
管理人様のページ参考に今は悪戦苦闘中。
HELP投稿のとき、アドバイスお願いします。

管理人様
mandelbrot viewで遊んでいただきありがとうございます。
また、全画面時の対処法まで指導していただきありがとうございます。

スペースの件は認識していて減らしています。

sentaro様
電卓のリセットボタンでは内部時計は狂いませんでした。

CGユーザーの皆様
いろんな権のことは難しい事はわかりません。外に公開するとき
マルコピでしょとかマスコットキャラみたいに似てるやないかーとか
あると思いますが、およそこの世の人まねでないものなど無いと
思います。
たぶんですが、権利を主張していないだけで20世紀初頭までに
ありとあらゆるアイディアはいろんな分野で出尽くしていますよね。
あとはそれを工夫して改良して発展してきたんじゃないでしょうか?

まぁ、話題収束しているのに書くのは悪いと思いましたが
難しい話だね。気をつけようね。と私もおもった。

GPL3準処で、あとは創意工夫があるか、ですよね?(^^)
(企業はGPL3はコード公開なので排除の方向)

仕事終わってコメントがザーと増えてたので、つい書いてしまいました。

これからもよろしくお願いします。

Re: C.Basic for CG v0.30α (エディタの反転文字対策+StrLwr(修正版)差し替えです。

sentaro様、ツル様、iron2様、CGユーザーの皆様


> C.Basic for CG v0.30α (エディタの反転文字対策+StrLwr(修正版)差し替えです。
> http://pm.matrix.jp/CB/CBASICCG030.zip
> ・スタンダード入力モードにおいてStrLwrコマンドの入力が出来なかった不具合を修正しました。
> ・エディタの選択時のリバース表示を修正しました。
> ・外部フォント導入時に標準サイズフォントにおいてキャラクタコード0x00~0x1Fが表示されなかった不具合を修正しました。

マイナーアップデート、ありがとうございます。

ええっと、Mini Fix フォントでリバース表示させてみると、コマンドや文字の境目が白い筋になって、妙な感じになります。
今回のアップデート前はこうはなっていませんでした。なお、この現象はプロポーショナルminiフォントでは起きません。

白筋の退治は可能でしょうか?


> StrCmpはマニュアル無いと使えない系のコマンドのトップグループですから一番最初がStrCmpというのがポイント高いですね。

そうですね。実はCの経験の浅い方には、Sprintf( がもっとマニュアル必要かな?と、次のネタにしようと思います。フォーマットの情報を盛り込むつもりです。


> C.Basicでは
> "ABC">"abs"
> のような比較式が使えるようにすることもできるかな?…とか、ちょっと新たな課題が見えましたが式評価の負担が増えそうなのでとりあえず却下です。(^^;

私も却下に賛成です。


> フリーならば何も考えることも無いので、同梱のデフォルトフォントはフリーフォントで差し替えたいと思います。(^^)

は~い、よろしくお願い致します。


> >一旦 PopUpWin(0) で画面全体を待避させておいてから、白い画面で自由に入出力をさせて必要なパラメータを取得します。
> その後、PopUpWin(9) で待避させた画面を復帰させます。
>
> グラフィックス画面だけの描画だけで済んでいるプログラムの場合は、テキスト画面がそっくり空いている状況なので、
> テキスト画面で入力インターフェースを構築すれば、テキスト⇔グラフィックスを適宜切り替えることで退避復帰が必要なくなります。(^^)

おっと、そうでした。Screen コマンドでの切替ですね!




> あと、テキスト画面は実質グラフィックス画面と同等なので、凝ったインターフェース画面を作成することも可能ですし、透過すればグラフィックスが背景に透けて見えますから便利に使えるかもしれません。

BmpLoad の透過度設定ですが、透過設定するとなんだかピカソの絵とかモダンアートみたいになっちゃいます。このあたりの変更ということですね?

Re:Re:C.Basic for CG v0.30α (エディタの反転文字対策+StrLwr(修正版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>只今、ガラス越しの液体の表示に試行錯誤しております。
>透過性が欲しい場面です。あのつぶつぶの,3ではなくて・・・
>実現するととても便利に思います。

了解です!
背景との透過での合成はBmpLoadで実装仕掛けているのですが、
何か期待通りの合成結果になっていないので進展が止まっていました。(^^;
今後、画像の重ね合わせは必須かと思いますので、前向きに善処してみます。(^^)

Re:C.Basic for CG v0.30α (エディタの反転文字対策+StrLwr(修正版)差し替えです。

管理人様、sentaro様、iron2様、皆様  こんにちは

管理人様
ご丁寧な回答をありがとうございました。
失礼いたしました。関西口調怖いです・・・
よく読み、学習します。

sentaro様
>透過すればグラフィックスが背景に透けて見えますから便利に使えるかもしれません。

只今、ガラス越しの液体の表示に試行錯誤しております。
透過性が欲しい場面です。あのつぶつぶの,3ではなくて・・・
実現するととても便利に思います。

C.Basic for CG v0.30α (エディタの反転文字対策+StrLwr(修正版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様よりご報告有りましたところのStrLwrが入力できないという初歩的なバグを修正しました。
これは今の入力方法を実装したときから存在していたわけで、お恥ずかしい限りです。(^^;
実使用上、小文字化するのは使う頻度がゼロなので全然気がついてませんでした。
ありがとうございます!

C.Basic for CG v0.30α (エディタの反転文字対策+StrLwr(修正版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG030.zip
・スタンダード入力モードにおいてStrLwrコマンドの入力が出来なかった不具合を修正しました。
・エディタの選択時のリバース表示を修正しました。
・外部フォント導入時に標準サイズフォントにおいてキャラクタコード0x00~0x1Fが表示されなかった不具合を修正しました。



管理人様、
>第一弾が、StrCmp( です。
http://egadget.blog.fc2.com/blog-entry-638.html
>簡単なテストの結果、標準Cライブラリと同じだろうと判断して、大小比較の細かい説明を入れていますが、間違いがあればご指摘ください。

StrCmpはマニュアル無いと使えない系のコマンドのトップグループですから一番最初がStrCmpというのがポイント高いですね。

従来のBasicでは不等号記号を使って、
"ABC">"abs"
という風に文字列比較ができたので直感的でしたけど、純正CasioBasicの文字列コマンドはC言語的なその筋的な実装になっていますよね。
とはいえ、
"ABC"
だけで文字列表示できてしまうCasioBasicなので、後付け的な文字列処理コマンドは関数的に実装するのが一番変更箇所の少ない実装かと思います。
とか、考えていたら、C.Basicでは
"ABC">"abs"
のような比較式が使えるようにすることもできるかな?…とか、ちょっと新たな課題が見えましたが式評価の負担が増えそうなのでとりあえず却下です。(^^;


>フォントに著作権の心配をする必要があるのか、チョット調べてみましたが、微妙な感じです。
>日本では、フォントデータを著作者に無断でそのまま販売することはダメという判例があるようですが、フォント自体は著作権保護の対象でなないようです。なので、現状では国内での二時著作はOKとなります。しかし海外で作成されたフォントについては、例えばマイクロソフトによるMS明朝やMSゴシックは、訴えられる余地が残っているようです。
>さらにフォント作成業者による法的保護の動きもあり、将来どうなるかは分かりません。

万が一でも微妙な問題になるとそれはそれで困りますよね。


>では、フリーのフォントなら問題ないわけで、IPAフォントというオープンソースのフォントがあるようです。
https://ja.wikipedia.org/wiki/IPA%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88
>これなら、そのまま利用しても問題無さそうで、二次著作も問題ないと言って良いと思います。

了解です!
フリーならば何も考えることも無いので、同梱のデフォルトフォントはフリーフォントで差し替えたいと思います。(^^)



>最近、Cut & Paste を使っていて、私の手元では配色が妙な感じになっています。
[SHIFT][F8]で、エディタ画面で黒で表示されるコードが真っ白になって、見えなくなるんです。
>少し前は、薄いオレンジ色で、みづらいなと感じていたのですが、ついに真っ白で背景に紛れて全く見えなくなりました。

おそらく背景色か何かの影響だと思うのですが、フォントサイズで状況が違ってくるみたいなので、この際、反転表示をちょっと変えてみました。
反転時の背景色は黒に固定にしたので純正同様の表示に近くなったと思います。(^^)



>ところで、空白で一旦文字消去するのは、StrChr(" ",29) と29文字がちょうど良い感じですね。

ミニフォントは横幅を合わせるのがちょっと面倒ですよね。(^^;
ありがとうございます!


>一旦 PopUpWin(0) で画面全体を待避させておいてから、白い画面で自由に入出力をさせて必要なパラメータを取得します。
その後、PopUpWin(9) で待避させた画面を復帰させます。

グラフィックス画面だけの描画だけで済んでいるプログラムの場合は、テキスト画面がそっくり空いている状況なので、
テキスト画面で入力インターフェースを構築すれば、テキスト⇔グラフィックスを適宜切り替えることで退避復帰が必要なくなります。(^^)
あと、テキスト画面は実質グラフィックス画面と同等なので、凝ったインターフェース画面を作成することも可能ですし、透過すればグラフィックスが背景に透けて見えますから便利に使えるかもしれません。

Re: Re:Re: Re:フォントの著作権 + 肖像権 + 雑感

ツル様、sentaro様、iron2様

管理人のやすです。

ツル様、コメントありがとうございます。

=====
単純な描画というものは、似ているまたは同じになる必然性が高くなると思いました。現に、旭日旗同様のデザインが某国の人から世界各地で騒がれています(笑)
機能デザイン(設計)の面で見ても、机、ペン、電卓、自動車・・・あらゆるものが、
美しさや使い易さなどを求めていくと、自然界での生物の進化の収束のように似通ってきます。作者が、真似る意思はなく独創的に作ったものでも、結果として模倣と見られれば避難されます。

フォント作りの怖さをそこに感じます。

Progではどうなのでしょうか?シダやマンデなどでは、一切、利用に制約はないのですか?計算結果で表示された画面上の造形の印刷物は?
など、分からないので真剣に考えてしまいました。

色については一笑されましたが、色が、例えば5色で構成された独創的と思っていた構成が、実は著作権に触れる可能性が出てくるのではないか?と真面目に考えました。洋服も包装紙も、世に溢れるデザインには色は重要で、その組み合わせと配置については著作権が存在するものもあった筈です。

また話は変わりますが、具体的なレスはありますか?苦情はありましたか?
などと生意気な書き方を致しましたが、ツルがこちらにお邪魔することになったきっかけは、5800Pのヒンジの話しだったかと記憶しています。
あれは去年の9月頃? 考えてみれば、4か月ほどで目覚ましく進歩した自分に驚きます。(言葉に出来ない程の管理人様と皆様への感謝の念で一杯です)

それで、日頃疑問に思うのは、多くのアクセスがあるのに、投稿者の顔ぶれが極めて限定的なことです。ツルは過去に、某ブログによく通っていた時期がありました。そこでの投稿欄では、職場ではできない議論をし、とても多くのことを学ぶことが出来ました。そちらでは、国内は勿論、国外からの読者も交じって、素晴らしい情報交換と交流ができました。定番のメンバーだけで約20名程でした。

どうして投稿メンバーが増えないのか不思議なのです。
管理人様がアクセス制限を?・・・  いやいや、制限かけるなら先ずはツルにでしょ!(笑)

確か以前、投稿には勇気が必要と、どなたかのコメントがありました。
ツルは、バグトレースの頃に見ていた憧れの方々とやり取り?出来ている今を光栄に感じておりますが、他の読者一元さんも自由に見ている訳で、特に問題的発言や問題的公開があれば、即応があると思います。なので、
>具体的なレスはありますか?苦情はありましたか?
と書きましたのは、なんら皮肉や嫌味などのない、純粋な好奇心だったのです。
日頃から管理人様が管理をしている訳ですから、何も起こっていないのだろうと察する一方で、数件の指摘などが管理人様の個人メールに入っていて、それを管理人様の懐で収めつつ、やんちゃなツルへ注意を促しているのか?などと考えてしまいます。権利侵害、模倣も問題ですが、大きなポイントの一つは、それによって利益を出しているか?だと思いました。対極にあるのが個人で楽しむという行為ですが、例えば、管理人様以下4名だけで共有して楽しむのは、個人で楽しむと同格ではないのか?パスワード発行でDL者を制限すれば個人扱いにならないか?など、管理人様レベルでの考察をちょっとしてみました。

=====


意匠権

デザイン物は著作権法でなく意匠法で守られているようです。このあたりは、私自身がデザイン物を公開したことが無く、詳しく調べたり考えたりしたことがありません。

C.Basic for CG がここまで進展すると、当初は想像もしなかった事柄に触れる必要が出てきてしまったというのが正直な感想です。当初の殻をぶち破ってしまったので、その流れで色々と考え準備したいと思っています。

私が今言えることは、出来上がったデザイン物(フォントやグラフィックス作品)に応じて、判断してゆくしかなさそうだということです。


プログラムの著作権

著作権法で守られる著作物には、著述物、Webサイト、ブログ、そしてプログラムも含まれます。

なお、プログラムを作って第三者が使える状態になれば自動的に著作権は発生します(無形主義といって、国際条約であるベルヌ条約に国内法が従ったことによります)。それを放棄するかどうかは、多分根拠が示されず解釈がハッキリしないところで、著作者が自由に放棄できるとする解釈もあり、広く放棄の意思を示すことで放棄できるとする解釈もあります。著作権者が広く公開したいから著作権を放棄すると言えば良いとするクリエイティブ・コモンズといった考えもあります。要はケースバイケースだという感じです。

但し、著作者の名前や表記といった著作人格権は日本では譲渡不可能とされており、当ブログでの私の著作物の著作人格権を放棄したても出来ないのは不便なので、GPL v3 に準拠するという立場を明確にさせてもらっています。これだと著作人格権を放棄せずに自由に個人的あるいは商用的に利用してもらっても構わないという私の希望と整合性が良いのです。

これとて法律的に決して盤石ではなくて、ただの主張です。何かあればその時考えるというスタンスでしかなく、それでも"何か"が発生しにくいように、無駄かも知れないけれど自分のスタンスを明確にしておくということです。

なお、以上は私の著作物に関する私の宣言であって、投稿者によるプログラムはその著作権者の意向が優先されると私は思っています。なのでプロテクトをかけたプログラムもOKだし、お金を貰ってプロテクトを外すようなものもOKです。

繰り返しますが、プログラムを作って公開した時点で自動的に著作権は発生するという法律がある以上、ツル様の作品には自動的に著作権が発生するということです。その後どうするかは別問題ってわけです。


> シダやマンデなどでは、一切、利用に制約はないのですか?計算結果で表示された画面上の造形の印刷物は?

これらはCasio Basicプログラムであれば全く心配ありません。これらはフラクタルという数学理論による計算です。数学理論は共有され、そこに権利は発生しないものです。その理論を利用することは全く問題無いと断言できます。

プログラムは "完全コピペ" しない限り著作物として認められるものです。他人のロジックからヒントを得て、それを利用してツル様がご自分でコーディングしたら、それはツル様が創造した著作物です。

プログラムについてのご心配は全くもって不要です。ご安心ください。


> 権利侵害、模倣も問題ですが、大きなポイントの一つは、それによって利益を出しているか?だと思いました。対極にあるのが個人で楽しむという行為ですが、例えば、管理人様以下4名だけで共有して楽しむのは、個人で楽しむと同格ではないのか?パスワード発行でDL者を制限すれば個人扱いにならないか?など

著作権の土俵では、著作者の承諾のない第三者への頒布が問題になります。但し、自分の著作物を無断で使って利益を上げているから訴える場合、予め自分の著作物に関する権利関係を著作者が明確にしておかなければなりません。

著作権での訴えは親告罪です。自分の権利を侵害されたと主張して始めて争いが始まります。そして、訴える側が根拠を示す必要があります。私は当ブログの私が作ったコンテンツを利用して金儲けされても構わないと思っています。訴えないので争いになりません。広く使って貰えたらうれしいのです。私や友達が貶められるなど行きすぎたケースは話が別ですけと...

なおプログラムを投稿頂いた場合は、投稿者の意向を最優先にしたいと思っています。例えば、sentaro様の C.Basic は GPL v2 での扱いを主張されているので、それに従います。

ところで、過去に、個人的に作って仲間内で使っていたソフトが、国内の上場企業に盗用されたことがあり、代理人を介して話し合いを行い対価を頂いたことがあります。バイナリーレベルでサインを入れていたのが決定的な証拠となりました。この時は権利を行使したわけです。

民事的には何が有ろうと全てお金に換算することに違和感を感じました。仲間内の誰かが勝手に売っぱらったのかも知れないし、そうでないかも知れないのですが、真実の追究は二の次でお金をどれだけむしり取るかのえげつない駆け引きの世界です。争いに勝つための最適な土俵が、このときは著作権法だったわけです。捕れるところからどうやって最大限捕るか...弁護士ってヤクザな商売だと思いました。精神的に疲れました。

当方にその気が無くても他者からイチャモンを付けられることほど、楽しみを阻害するものはありません。それと戦うことほど疲れるものはありません。だから予備的な心配をしています。

=====

今私が分からないのは、デザイン物の扱いです。

> 美しさや使い易さなどを求めていくと、自然界での生物の進化の収束のように似通ってきます。作者が、真似る意思はなく独創的に作ったものでも、結果として模倣と見られれば避難されます。
> フォント作りの怖さをそこに感じます。

これは制作者としては当然の考えで、私もそう思うからこそ、フリーのフォント=IPAフォントがあるという情報を前のコメントで流しました。国の機関がフリーだといっているフォントですので、安心ってわけです。

まぁ、どのような作り方をするのかにも依るでしょうが、作ってから考えようというスタンスでいます。
とても独創的で普通のフォントと違う場合とか、誰がどう見ても有名なとあるフォントにそっくりといった時は、要注意かな?と思いますが、殆どはそうでないでしょうから、そんなに心配することは無いかな?

でもツル様のことだから、独自性を出したフォントが出てくれば、めっちゃ独創的 (既に似たものがある可能性)、或いは期せずして権利をガチガチに主張しているフォントそっくりな創造物が出来てしまうってことも無いこともない...独創性とデザイン性に価値のあるものですから...

私自身も独創性はある方だと思っていて (論文や特許である程度会社に貢献してきました)。アイディアは突然天から降ってくるのです。だからこそ独創的な発明に至る精神作業というか、気持ちには独特なものがあり、おそらくデザインの独創性と共通点があるかも知れないと思います。

世界初の技術だと信じて、念のために調査すると過去に誰かが既に手がけていたということは結構あります。自分が独自に考えたのに...と思っても権利にはなりません。最悪、自分の発明なのに実用化するにはお金を払う必要があるケースもあります。

デザインの世界でも同様なことがあるかも知れない...だからこその予備的に注意しましょう!という呼びかけました。


?色?

> 色については一笑されましたが、

これは、言葉の精度が悪すぎという話です。"色"自体についてはナンの権利も発生しないことは自明!


> 例えば5色で構成された独創的と思っていた構成

こう書いて頂ければデザインの話と分かります。だから、最初から上記のコメントを書いて欲しかったです。


> 洋服も包装紙も、世に溢れるデザインには色は重要で、その組み合わせと配置については著作権が存在するものもあった筈です。

デザインに著作権は発生しないようです。これはまず意匠権が相当します。他にもなんかあるのか?私が勉強したことのない範疇です。

> また話は変わりますが、具体的なレスはありますか?苦情はありましたか?

苦情や訴えがあってからでは遅いから、今話をしています。


アクティブメンバー

> どうして投稿メンバーが増えないのか不思議なのです。

お気遣い感謝です!

でも自分が楽しければ良いし、ここに来られる方々と楽しさを共有できれば良い、これが目的なので、アクティブメンバーが少なかろうと、私は一向に構いません。多くの知り合いよりも小数の友達が大切です。

勝手に情報公開していて、それを勝手に参照して頂くのは構いません。情報アクセスに対する直接の見返りは不要です。ほんの一部の方でも良いので、一緒に楽しく過ごせたらそれで良いのです。


コメントする勇気

> 確か以前、投稿には勇気が必要と、どなたかのコメントがありました。

これは、私が書いたものです。


> 日頃から管理人様が管理をしている訳ですから、何も起こっていないのだろうと察する一方で、数件の指摘などが管理人様の個人メールに入っていて、それを管理人様の懐で収めつつ、やんちゃなツルへ注意を促しているのか?などと考えてしまいます。

あ、誓ってこれは無いです。
もしも、本気で排除したいと私が思えば、黙ってコメント削除やアクセス禁止にすれば済むことですので...


メールは時々頂きますが、苦情や苦言は過去に一度もありません。
プログラム作ったから見て欲しいとか、コンテンツのプログラムを移植したけど動かないから助けてとか、ブログを見て久しぶりにプログラミングを再開したとか、そういうのが殆どです。

そして、コメント欄に書けない理由があるとか、個人的に付き合いたいとか、恥ずかしいなどの理由でコメント欄への投稿をなさらない方が多いです。世の中には色々な方がいらっしゃるので、うっかりコメントを付けたらいきなり怒られた、など普通にあります。なのでコメント欄への投稿には慎重になるものだと、君子危うきに近寄らずなのだと思います。

私自身、そうです。
うっかりコメントしたら、ブログを全部読んでからコメントしろ、と怒られたこともあります。止めときゃ良かったと思ったものです。

Re: Re:re:mandelbrot viewerインターフェースたたき台

iron2様、sntaro様、ツル様、CGユーザーの皆様

管理人のやすです。


iron2様、

mandelbrot viewer 頂いて、遊んでいます。

こうなると、親しみがわいてきます。
インターフェースも独自な感じで、とても新鮮に感じます。
S, F, M 入力後に K を入力すると EXE:Start が赤文字に変化するのが、特にお気に入りです。私もどこかで使わせて頂きたいと思います。

ところで、空白で一旦文字消去するのは、StrChr(" ",29) と29文字がちょうど良い感じですね。

ここで、お役に立つかどうか分からないのですが、2枚目のユーザーインターフェース画面で、表示や入力させる方法として、

一旦 PopUpWin(0) で画面全体を待避させておいてから、白い画面で自由に入出力をさせて必要なパラメータを取得します。
その後、PopUpWin(9) で待避させた画面を復帰させます。

RGB4 でヘルプ画面を表示させるときに使っている手法です。


Copy & Pate 作業時の色

sentaro様、ツル様、sentaro様、iron2様、CGユーザーの皆様

管理人のやすです。


最近、Cut & Paste を使っていて、私の手元では配色が妙な感じになっています。
[SHIFT][F8]で、エディタ画面で黒で表示されるコードが真っ白になって、見えなくなるんです。

少し前は、薄いオレンジ色で、みづらいなと感じていたのですが、ついに真っ白で背景に紛れて全く見えなくなりました。

SET UP での色指定を意図的に変更していないので、この色の変化の原因が、まだ分からないのですが、逆に Cut & Paste での色の指定方法もよく分からないので、質問させて頂きます。

アドバイス頂けませんか?

Re: Re:Re: BATT 残量インジケーター の融通性

ツル様、sentaro様、iron2様、CGユーザーの皆様

管理人のやすです。


> 電圧が取れるのだから、Progで融通を利かせることができたのですね。
> アイコンは左上に完全に固定されているものと思い込んでいました。


フル画面モードが実現したことから、事情がガラっと変わってしまいました。そしてタイミングの良いご要望!
すぐやる課の C.Basicが迅速に対応。この進歩はありがたいです!

iron2様がフル画面表示故に悩んで居られますが、今後我々もユーザーインターフェースに悩むことになると思います。

バッテリーアイコンについても、様々な需要が出てくると思います。


Re: Re:フォントの著作権

ツル様


> 更に考えを広げると、Progはどうか?言葉はどうか?色はどうか?と様々な活動が重苦しく思えてきます。

敢えて申し上げますが、考えを広げることは全く意味がありません。

ツル様のプログラムはツル様のものだと法律で守られます。色にについては言わすがもがなです。


> 明らかに、販売を目的にしている訳ではなく。現状、何名が我々のProgを使っているのでしょう?具体的なレスはありますか?苦情はありましたか?線引きは必要でしょうが、誰もいない無人島に壁を設ける必要はないですよね?

本心だとは思えませんが、あまりに悲しい物言いではないでしょうか?
冷静にお願いします。

私は、プログラムの著作権について数年間、有志の弁護士とともに勉強したことがあります。法律は年々変わります.国や地域でも扱いが異なります。法律のそして著作権の専門家でなければ、かりにそうであっても過去の判例を調べて、慎重に議論すべきものです。

こんな辺鄙なところであっても、いつどこで巻き込まれないとも限りません。私も結論は出せません。

だから、多少は心の隅に置いておいて欲しいという趣旨です。

よく考えて、ご理解ください。敢えて強い調子で書きました。


なお関連コメントは、いずれ消滅します...(^^;

フォントの著作権

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。


フォントに著作権の心配をする必要があるのか、チョット調べてみましたが、微妙な感じです。
日本では、フォントデータを著作者に無断でそのまま販売することはダメという判例があるようですが、フォント自体は著作権保護の対象でなないようです。なので、現状では国内での二時著作はOKとなります。しかし海外で作成されたフォントについては、例えばマイクロソフトによるMS明朝やMSゴシックは、訴えられる余地が残っているようです。
さらにフォント作成業者による法的保護の動きもあり、将来どうなるかは分かりません。

では、フリーのフォントなら問題ないわけで、IPAフォントというオープンソースのフォントがあるようです。
https://ja.wikipedia.org/wiki/IPA%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88

これなら、そのまま利用しても問題無さそうで、二次著作も問題ないと言って良いと思います。

オリジナルのフォントは世界の何処に行っても問題ないわけですが、海外製フォントの場合は、似ているとかナントカ言われる心配は残ります。


IPAフォントを電卓用に改変するのが最も安心なのは間違いないようです。

StrLwr が StrLen になります

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。

StrLwr を入力しようとすると、StrLen となるバグが見つかりました。

Casio Basicプログラミング - コマンドリファレンス編 を文字列処理コマンドから始めています。

第一弾が、StrCmp( です。
http://egadget.blog.fc2.com/blog-entry-638.html

簡単なテストの結果、標準Cライブラリと同じだろうと判断して、大小比較の細かい説明を入れていますが、間違いがあればご指摘ください。

Re:Re:Re:Re:BatteryStatu 改訂 電圧の相談 + 内部時計&バッテリー

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>はい、実はそこを知りたかったのですが、不明でしたか。

今までに電圧とバッテリ表示をじっくり比べたことがなかったので
現在のうちの手持ちのCG10/20/50で見てみると、こういう感じです。

CG10(OS3.10)5.05V 残量2個
CG20(OS3.10)4.89V 残量1個 赤
CG50(OS3.00)4.68V 残量3個
CG50(OS3.10)4.54V 残量2個

CG20がアルカリ設定になっているような結果ですが設定は充電池です。
なんだか相関性が薄いので、バッテリのしきい値は各機で個別に設定する必要があるのかもしれません。(^^;


iron2様、
>電池交換で間違いなくリセットですね。
>それ以外はPtune2でクロックアップして作業しても時間ズレに
>気がつかないです。(気がついてないだけです。)

内部時計状況ありがとうございます!
裏のリセットしたら時間もリセットされるでしょうか?


ちなみにうちのCG10/20/50はすべてリセットしても時計が初期化されないようです。
それ以外でも、SH3のfx-9860GIIも初期化されない模様です。
初期化されるのは、SH4Aのfx-9860GIIだけという不思議な状況になっています。(^^;

初期化の結果ですが
2010/10/01 00:00:00
なので、
2010/01/01 00:00:00
は間違いで勘違いしてました。(^^;

Re:Re: BATT 残量インジケーター の融通性

管理人様

電圧が取れるのだから、Progで融通を利かせることができたのですね。
アイコンは左上に完全に固定されているものと思い込んでいました。
上書きで塗りつぶすことが思い浮かびませんでした。
愛のカウンターパンチをありがとうございました(笑)

内部時計&バッテリー

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

内部時計の件、よく理解できていないですが
フリーアプリでClock(カレンダもでる)で時計合わせしてます。
電池交換で間違いなくリセットですね。
それ以外はPtune2でクロックアップして作業しても時間ズレに
気がつかないです。(気がついてないだけです。)

バッテリーアプリはツル様頼みです。(^^);;
標準で赤空表示まで使ってます(笑)

これからもよろしくお願いします。

Re:Re:Re:BatteryStatu 改訂 電圧の相談

sentaro様、管理人様、iron2様、皆様

sentaro様
>純正での各アイコン変化のしきい値がどれくらいで設定されているのか・・・
はい、実はそこを知りたかったのですが、不明でしたか。

>充電池の特性を考えると1本あたり1.1Vを切るとあっという間な感じがしますけど・・・
ツルは、赤が出ると即座に交換しますが、たぶんそこから落ちるまでは早いだろうなと予想はしていました。放電特性はアルカリ乾電池と違い、0.25どころか、1.0からの落ち込みが早いものとの認識はありました。
ただ、注意したいのは、これまで皆さんが使用してきての純正表示とのずれ具合を感じないようにはしたいです。
赤表示が早めに出ちゃうのも、使ってて落ち着きませんよね。

先ずはツルが独断で作りますので、後は利用者がcode書き換えで運用することと考えます。

Re:Re:BatteryStatu 改訂 電圧の相談

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>従来の仕様でも問題ないですよ。
>()版があっても問題はないですし。もうこのままで良いと思います(笑)

了解です!
それではBatteryStatusは今の仕様で固定することといたします。(笑)


>※0.25V設定は小さすぎるかな?と迷っていますが、何か情報やご意見はございますか?

純正での各アイコン変化のしきい値がどれくらいで設定されているのかがちょっと分からないところなのですが、
純正の表示は最後は青のバッテリ表示が無くなって全体が赤くなりますが、この表示になるともうあっという間に電源が落ちますよね。
充電池の特性を考えると1本あたり1.1Vを切るとあっという間な感じがしますけど、どうなんでしょう?

Re:re:mandelbrot viewerインターフェースたたき台

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>きめ細かな指導ありがとうございました。

いえいえ、こちらこそ新たなC.Basicアプリの登場に感謝しています。(^^)


>なかなか前に進めないですが、苦手のインターフェィスでよくここまで
>出来たと自分を褒めてるところ。(笑)

最初のC.Basicアプリとしてなかなかに良い感じですよね。(^^)


>次のVer2ではxyの位置を十字ラインの位置で設定してNEW原点に
>できるようにしたいと思います。

いよいよ、顕微鏡モード実装編突入ですね。

完成まではまだまだ紆余曲折あると思いますけど、
一度、形が出来上がって勝手が分かってくると後はもうサクサクです。
というのがC.Basicの極意でありたいと思っております。

疑問点や分かりにくいことが出てきましたら何でもよろしくお願いいたします。
完成まで徹底的にサポートさせていただきます。(^^)

Re:BatteryStatu 改訂 電圧の相談

sentaro様、管理人様、iron2様、皆様

sentaro様
従来の仕様でも問題ないですよ。
()版があっても問題はないですし。もうこのままで良いと思います(笑)

ご相談ですが、インジケーターの3段階表示ですが、あまり細かく分けてもしょうがないので、標準と同じ3段階で考えています。ニッケル水素電池は1.2V仕様ですが、充電完了時には1.4V位出ますよね、1.4Vとして4本で5.6V。1.2V4本では4.8V。
で、表示3段階のボーダーラインとして、取得Vが1.2V4本に相当する480以上を3本表示、0.25V4本に相当する100以下を1本表示とし、その間は2本で考えています。
※0.25V設定は小さすぎるかな?と迷っていますが、何か情報やご意見はございますか?

re:mandelbrot viewerインターフェースたたき台

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

sentaro様へ
>テキスト投稿時の対策方法としては、連続スペースを文字列拡張コマンドの
>StrChar(で処理すれば解決です。
>(例)Text 145,60,StrChar(" ",32),R
ありがとうございます。さっそく修正しました。

>現状のまま進化させて特に問題はないと思いますが、
>強いて挙げれば、C.Basicではファンクションキー表示が出来るので
>モードセレクトをファンクションキーで選択できるようにするのもいいかもしれま
>せんね。(^^)
ありがとうございます。最終版前にはファンクションキー選択を実装
したいと思います。

文字列のオーバーライト表示とリバース表示が現状では、フル画面の時
オーバーライトでないと□の枠が残っているので判定文を追加して
処理を分けないとダメぽいですが、まず描画位置変更と倍率変更を
なんとかしないといけないので後回しでまず、取り合えず探索ができる
状態に持っていきたいと思います。

きめ細かな指導ありがとうございました。
なかなか前に進めないですが、苦手のインターフェィスでよくここまで
出来たと自分を褒めてるところ。(笑)

次のVer2ではxyの位置を十字ラインの位置で設定してNEW原点に
できるようにしたいと思います。

これからもよろしくお願いします。

C.Basic for CG v0.30α (BatteryStatusコマンド改訂+ReadGraphバグFix版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

FX版よりありましたVRAMから直接に行列に読み込むところのReadGraph(とDotGet(コマンドですが、1ビットでしか保存できない等、ところどころでバグっていたので修正です。
これは、バッテリ表示の移動を、試しにビットマップの移動で処理しようとしてしたところでバグが発見されました。
これもバルサンツルサンのおかげですね。ありがとうございます。(^^)

C.Basic for CG v0.30α (BatteryStatusコマンド改訂+ReadGraphバグFix版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG030.zip
・ReadGraph(とDotGet(コマンドにおいて、行列の型指定で取得ビット数を1ビットか16ビットかを選択できるようになりました。
(g1mモードでのデフォルトは1ビット、g3mモードでのデフォルトは16ビットになっています。)
(例)ReadGraph(0,0,15,23)->Mat A
(例)DotGet(0,0,15,23)->Mat A
 (0,0)-(15,23)の領域を16ビットカラーで行列Aに取り込みます。
(例)ReadGraph(0,0,15,23)->Mat A.P
(例)DotGet(0,0,15,23)->Mat A.P
 (0,0)-(15,23)の領域を1ビットモノクロで行列Aに取り込みます。


今回の修正にて、バッテリアイコンの表示位置を変えるだけならば、
BatteryStatus
で表示した後に、
その画像を
ReadGraph (0,-24,15,-5)->Mat B
で行列に読み込んで
任意の位置(x,y)に
WriteGraph x,y,16,20,Mat B
書き込みます。
元の表示を背景で消去すればアイコン表示の移動はOkです。(^^)




管理人様、
>確か、fx-9860GII でも純正/C.Basic両方で、Getkey のループが回っていて、ビジーアイコンが表示されている時は、画面キャプチャができなかったと思います。

んと、Fx-Manager-PlusのScreen ReceiverだとPutDispDDのタイミングで常に転送されるようです。
Linkマネージャでキャプチャモードを選択しないといけないのでちょっとだけ面倒ですね。

>むしろ、CG50では、Getkey は無理としても、ループが回っている時でもごくたまにPCに画面が転送されることがあります。ビジー-アイコンの描画タイミングが CG20と変わっていて (恐らく省電力対応?)タイミングが合えば転送されるのだろうと想像しています。

あ、たしかにその感じはありますね。
全く転送されないのではさすがに不具合になってしまいますよね。(^^;
転送のタイミングはfx-9860GIIの時はPutDispDDのタイミングで転送されていると思ってたのですが、CG20ではそうではなくなっているということですね。
LCD転送の速度的余裕が出来たCG50ではちょっと改良された感じでしょうか。


>辞書を編纂するというとても属人的な思いや仲間達への尊敬や大切にする思いとは別に、編み出される辞書はとても淡々としていて、そこには個人の思いをできるだけ排除する。しかし万人に明確に分かる言葉の説明には、有る一定の思想や思いが不可欠だといった、一見二律背反したところにある見事なまでの調和...そんなことを感じました。

私は「舟を編む」を一度も見たことがなかったので、かなり興味が湧いてきました。


>sentaro様のコメントでの文章は、情報伝達として、時に感情を少し含ませたりして、とてもうまいと常々思っています。おそらく頭の良さと人柄の良さが反映されているものだと勝手に想像しています。
>sentaro様レベルの頭の良い文章は、私にはとても書けませんし、誤字脱字が多いのですが、まだまだ工夫の余地があると思っています。

こちらにおじゃまして以来、ただただ管理人様の大きな手のひらの上で遊ばせていただいているだけの私なので、とんでもなくもったいないお言葉で、恐縮しまくりです。
管理人様、皆様あっての私ですから、これからもよろしくお願いいたします。(^^)



iron2様、
MANDELBROT VIWER Ver0.1 いただきました!
画面構成と背景の色合いがマンデルブロ描画にピッタリでなかなかにカッコイイ画面ですよね。(^^)
起動して、キー操作で文字が重なるのであれ?って思ったら、
Textコマンドで文字列消去しているところでスペースの数が一つだけになってしまっている気配です。
これは投稿時に空白の連続が削除されてしまうためなので、
テキスト投稿時の対策方法としては、連続スペースを文字列拡張コマンドのStrChar(で処理すれば解決です。
(例)Text 145,60,StrChar(" ",32),R
コマンドの入力方法はこちらです。
[SHIFT]+[VARS]-[F6]-[F6]-[F3](ExStr)-[F6]-[F1](StrChar)

>フル画面になったからS,Fで描画すると
>背景がフル画像でそこに1/4画面で
>追加描画します。

新たな窓が開く感じがとっても◎です。(^^)


>現状のコードで改良点がありましたら
>ご指導よろしくお願いします。

現状のまま進化させて特に問題はないと思いますが、
強いて挙げれば、C.Basicではファンクションキー表示が出来るので
モードセレクトをファンクションキーで選択できるようにするのもいいかもしれませんね。(^^)



ツル様、
>BatteryStatu改訂、()で囲んで電圧取得ですか?
>BatteryStatu→V してから、Vを表示させるとちゃんと出ていましたよ?

電圧取得時にはアイコン非表示にするために、今までの表示コマンドとしての使用と、返り値を持つ関数としての使用で機能的にちょこっと分けてみました。
あ、もしかして、これって、以前の仕様でも特に問題なかったでしょうか?(^^;


>arrowkeyのように、BATTインジケータも製作開始しています。

お!楽しみです! 
私ではPtune2/3でのリアルな電圧表示くらいしか出来そうにないので、新しいインジケータに興味津々です。(^^)


>TIMEが、一晩で変わってしまいますね、数時間遅れだったのが今度は数時間進んだりしていて、色々試してますが、何がトリガーとなっているのか、また変化のパターンがまだ掴めません。このやんちゃな子をおとなしくさせる必要がどうしても出てくると思います。だって、時計作りたいもの・・・

うわ、それはちょっとやんちゃすぎるというか暴れん坊というかなんというか…
うちのCG50はなぜかここ数日は全然狂わなくなってかなりおとなしい子になっています。(^^:
リセットしても00:00:00にならないので、何か変です。
さすがに電池を抜いたら、2010/10/01 00:00:00にリセットされましが、
内部時計の状況は何やら一癖二癖ありそうな感じです。(^^:

v0.30α (BatteryStatusコマンド改訂版)差し替えです

sentaro様、管理人様、iron2様、皆様

BatteryStatu改訂、()で囲んで電圧取得ですか?
BatteryStatu→V してから、Vを表示させるとちゃんと出ていましたよ?

arrowkeyのように、BATTインジケータも製作開始しています。
運用は皆様の好みに応じてcode書き換えをお願いします。

そもそも常時表示がいいと言い出したのはツルでしたが、フル画面表示時代という、時代の変化に伴って考え方が変わって振り回してしまって申し訳なく感じています。

TIMEが、一晩で変わってしまいますね、数時間遅れだったのが今度は数時間進んだりしていて、色々試してますが、何がトリガーとなっているのか、また変化のパターンがまだ掴めません。このやんちゃな子をおとなしくさせる必要がどうしても出てくると思います。だって、時計作りたいもの・・・

mandelbrot viewerインターフェースたたき台

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

マンデルブロビュワーのインタフェースたたき台がとりあえず
形になりました。
まだ、位置指定やN指定や拡大できませんが
サーチイメージ モード S
ファインイメージ モード F
MAX イメージ モード M
の切り替えはできるようになりました。

使い方は起動するとMode selectと出てくるので
S,F,Mのどれかを押してからKを押してから
EXEを押すと描画します。

描画完了するとまたSELECT MODEの表示が
でますので
同じように例えばF押してからKを押してEXEで
ファインイメージが描画されます。

Mを押してからKを押してEXEで
フル画面が描画されます。

AC/onで終了です。

フル画面になったからS,Fで描画すると
背景がフル画像でそこに1/4画面で
追加描画します。

これはこれでかっこいい気もしますが
操作系を煮詰めてから決めたいです。

ほんとにやっつけコードで知識が乏しいせいで
バグだらけですが、とりあえず位置や拡大する
ためのお膳立てまで出来た気がします。

現状のコードで改良点がありましたら
ご指導よろしくお願いします。

'ProgramMode:RUN
'MNDLVW01
'Create by iron2
'DATE 2018.01.09_->_
'GPL3
' from TI-Planet
' https://tiplanet.org/forum/viewtopic.php?p=224371
Back-Color @Black
Screen.g:_ClrVram
RGB(96,200,96)
_Rectangle -1,(-)25,384,215,1,-1
RGB(0,0,128)
Text (-)22,50,"<< MANDELBROT VIWER Ver0.1 >>",O
Text 143,270,"EXE:Start",O
Text 164,270,"AC:Quit",O
'_Text _123,270,"(_(-)_):Stop ",O
RGB(255,255,255)
_Rectangle -5,(-)9,217,128,10,-1
Black Text 125,5,"Times",O
Black Text 145,5,"Mode",O
Black Text 145,60," << Select S,F,M+K >>",O
_DispVram
'_Getkey_ 1

Lbl 0
Lbl 1
0->K
Do
Getkey->K
LpWhile K=0
If K=26 Or K=43 Or K=74:Then
K->M
IfEnd
If K=35:Then
Goto 2
IfEnd
Goto 1
Lbl 2
'F:26,S:43,M:74
If M=26:Then
RGB(96,200,96)
Text 145,60," ",R
Blue Text 145,60," << Fine Image >> ",O
ElseIf M=43:Then
RGB(96,200,96)
Text 145,60," ",R
Blue Text 145,60," << Search Image >> ",O
ElseIf M=74:Then
RGB(96,200,96)
Text 145,60," ",R
Blue Text 145,60," << MaxSize Image >>",O
IfEnd

Red Text 143,270,"EXE:Start",O
While Getkey<>31
WhileEnd

If M=43:Then
RGB(255,255,255)
_Rectangle -5,(-)9,217,128,10,-1
100->N
10->o 'offset
10+20->r
2->j '*0.25
2.7->w
(-)1.87->h
Int (383/j)->m
Int (215/j)->n
Int ((319/j))->p
Int ((215/j))->q

Ticks->s
For (0+r)->y To (n+r) Step 2
For (0+o)->x To (m+o) Step 2
'_For _(0+o)_->_y_ To _(n+o)_ Step _2
'0_->_a
'0_->_b
((w*(x-o))/p)-(2.1-0.0)->c
((h*(y-r))/q)+(0.935-0.0)->d
4->L
SysCall(10000,N,&c,&d,&L)->i
Int ((255*i)/N)->g
RGB(1.0*g,5.0*g,8.0*g)
'__Pixel _x,y-24,1
_Rectangle x,y-24,x+1,y-23,1,1
Next
_DispVram
Next
Ticks->z
'__DispVram_
(z-s)*0.0078125->r
Fix 2
RGB(96,200,96)
Text 125,80," ",R
Black Text 125,80,r,O
Black Text 125,165,"sec",O
RGB(96,200,96)
Text 145,60," ",R
Black Text 145,60," << Select S,F,M+K >> ",O
Black Text 143,270,"EXE:Start",O_DispVram
ElseIf M=26:Then
RGB(255,255,255)
_Rectangle -5,(-)9,217,128,10,-1
100->N
10->o 'offset
10+20->r
2->j '*0.25
2.7->w
(-)1.87->h
Int (383/j)->m
Int (215/j)->n
Int ((319/j))->p
Int ((215/j))->q

Ticks->s
For (0+r)->y To (n+r)
For (0+o)->x To (m+o)
'_For _(0+o)_->_y_ To _(n+o)_ Step _2
'0_->_a
'0_->_b
((w*(x-o))/p)-(2.1-0.0)->c
((h*(y-r))/q)+(0.935-0.0)->d
4->L
SysCall(10000,N,&c,&d,&L)->i
Int ((255*i)/N)->g
RGB(1.0*g,5.0*g,8.0*g)
_Pixel x,y-24,1
'__Rectangle _x,y-24,x+1,y-23,1,1
Next
_DispVram
Next
Ticks->z
'__DispVram_
(z-s)*0.0078125->r
Fix 2
RGB(96,200,96)
Text 125,80," ",R
Black Text 125,80,r,O
Black Text 125,165,"sec",O
RGB(96,200,96)
Text 145,60," ",R
Black Text 145,60," << Select S,F,M+K >> ",O
Black Text 143,270,"EXE:Start",O_DispVram
ElseIf M=74:Then
'_RGB(_255,255,255)
'__Rectangle _-5,_(-)_9,217,128,10,-1
Screen.g:_ClrVram
100->N
0->o 'offset
0->r
1->j '*1
2.7->w
(-)1.87->h
Int (383/j)->m
Int (215/j)->n
Int ((319/j))->p
Int ((215/j))->q

Ticks->s
For (0+r)->y To (n+r)
For (0+o)->x To (m+o)
'_For _(0+o)_->_y_ To _(n+o)_ Step _2
'0_->_a
'0_->_b
((w*(x-o))/p)-(2.1-0.0)->c
((h*(y-r))/q)+(0.935-0.0)->d
4->L
SysCall(10000,N,&c,&d,&L)->i
Int ((255*i)/N)->g
RGB(1.0*g,5.0*g,8.0*g)
_Pixel x,y-24,1
'__Rectangle _x,y-24,x+1,y-23,1,1
Next
_DispVram
Next
Ticks->z
'__DispVram_
(z-s)*0.0078125->r
Fix 2
'_RGB(_96,200,96)
Red Text 125,80," ",O
Red Text 125,80,r,O
Red Text 125,165,"sec",O
'_RGB(_96,200,96)
Text 145,60," ",O
Red Text 145,60," << Select S,F,M+K >> ",O
Red Text 143,270,"EXE:Start",O
Red Text 164,270,"AC:Quit",O
_DispVram
IfEnd
If K=26:Then
ACBreak
IfEnd
0->M
Goto 0

これからもよろしくお願いします

画面キャプチャー

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。


> fx-9860GIIでは表示されている状態がそっくり全部転送されていたと思うので、CGでは転送するタイミングが限定的になってますね。

確か、fx-9860GII でも純正/C.Basic両方で、Getkey のループが回っていて、ビジーアイコンが表示されている時は、画面キャプチャができなかったと思います。

むしろ、CG50では、Getkey は無理としても、ループが回っている時でもごくたまにPCに画面が転送されることがあります。ビジー-アイコンの描画タイミングが CG20と変わっていて (恐らく省電力対応?)タイミングが合えば転送されるのだろうと想像しています。


> C.Basicの便利な使い方として、Screen Receiverへの対応は意外なポイントかもしれません。(^^)

はい、画面キャプチャーなら C.Basic !

って、妙なキャッチフレーズですが...(^^;

Re: re:サンプルプログラム - BMPファイルのロード

iron2様、sentaro様、ツル様、CGユーザーの皆様

管理人のやすです。

> >コピペでスグに使えるような ”実用編" サンプルプログラムは、こんな感じで良いでしょうか?
>
> MANDELBROT VIEWERに組み込みやすくなりました。
> いろいろSAVEしたFULL画面のスライドショー的に
> 使える気がします。

このように言って頂き、うれしいです。

万人の要求に応えるのはかなり難しいので、ある程度スタンスを決めて、ブレないようにサンプルプログラムや単体コマンドの解説を進めたいと思っています。


C.Basic for CG v0.30α (BatteryStatusコマンド改訂版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様よりATT 残量インジケーターの表示位置をというご要望有りましたので、
すぐやる課のC.Basicとしては早速に対応させていただきました。(^^)
といっても、表示位置を変えられるわけではなく、画像が変えられるわけでもなく、
管理人様よりご提案のあった、電圧読み出し時にはアイコン表示しないという改訂です。
なので、あとは要プログラミングです。(^^;

C.Basic for CG v0.30α (BatteryStatusコマンド改訂版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG030.zip
・BatteryStatusコマンドを改定しました。 [VAR]-[F3](Extd)-[F6](BatteryStatus)
(書式)BatteryStatus
 左上隅のバッテリアイコンを表示するだけのコマンドです。
 数式で使用する場合は()で囲む必要がありますがバッテリアイコンを表示せず現在の電圧x100(V)を返します。
(書式)(BatteryStatus)
 現在の電圧値x100(V)を整数値で返します。
 5.01Vの場合は501になります。



管理人様、
>最もシンプルな事例を最初に提示するように修正しました。
>段階的に追加し、最終的に LOADBMP.g3m を示します。
http://egadget.blog.fc2.com/blog-entry-636.html
>これなら、より良いと思いますが、どうでしょうか?

はい、かなり良い感じになったと思います。(^^)
あと、付け加えるならば、ファイル名の拡張子部分の”.BMP”と表示位置等のパラメータオプションは省略可能なので、
最も短い形で使える形として、
BmpLoad("/BMP/TEST.BMP"),0,0,0
 ↓ ↓
BmpLoad("/BMP/TEST")
も付け加えるとなお良いと思います。(^^)


>バッテリーを交換し時計がリセットされました。日付けが 7800/01/01 となりました。7800年になったということは少し前に報告しているので、やはり何か妙なことが起きているようです。

7800年とは、思いっきり未来にタイムスリップしてますね。(^^;
うちではそこまでの変化が起きてないので、未だに時計問題は謎なままです。


>なお、純正 Casio Basic でも Getkey では Screen Receiver でキャプチャーできなかったと思っていて、むしろ Gaekty1/2 が使える C.Basicの方が使いやすいと言えます。純正で作って画面を取得したい時、私は C.Basicで走らせて 上の方法を使って Screen ReceiverでPCに転送させています。

あ、たしかに純正でもキャプチャ出来ないようです。
fx-9860GIIでは表示されている状態がそっくり全部転送されていたと思うので、CGでは転送するタイミングが限定的になってますね。
C.Basicの便利な使い方として、Screen Receiverへの対応は意外なポイントかもしれません。(^^)


>組み込みリファレンス

とっても良い感じです。(^^)

>Manual_J.txt に記載されている内容は、C言語の経験があれば理解し易いのでしょうが、そうでないとチョット難易度が高いかも知れないと、私は感じています。これは私の思い込みかも知れませんので、他の方のご感想もお聞かせ頂きたいところではあります。

たしかにそこのあたりは、おっしゃる通りだと私自身も感じています。
マニュアルは私的な最低限の備忘録のようなところから始まっているので説明不足なところは多々ありますね。(^^;

>C.Basic拡張コマンドの?を使って、INDEX.g3m から分野別の xxx.g3m を呼び出す形にし、コマンド別の最低限のサンプルプログラム [ (書式)、(例)、キープレス ]を含んだプログラムファイルを Prog や Gosub で呼び出すようにする。
>これらは、@REF フォルダなど特定フォルダに格納するようにして、C.Basic と一緒に供給。

FX機も版にもそのまま使えますし、保守性の観点から見てもベストな形かもしれません。(^^)



ツル様、
>nest + 映画「舟を編む」

なかなかに深いお話で「舟を編む」にちょっと興味が出てまいりました。(^^)

Re: nest + 映画「舟を編む」

ツル様、sentaro様、iron2様、皆様


私も「舟を編む」を観たことが有ります。「右と言う言葉を説明してください」というシーンはとてもよく覚えています。

辞書を編纂するというとても属人的な思いや仲間達への尊敬や大切にする思いとは別に、編み出される辞書はとても淡々としていて、そこには個人の思いをできるだけ排除する。しかし万人に明確に分かる言葉の説明には、有る一定の思想や思いが不可欠だといった、一見二律背反したところにある見事なまでの調和...そんなことを感じました。

一方、e-Gadgetは、辺鄙なところで細々と私個人の思いを表現するところでした。しかし C.Basic の進展につれ、徐々に公器の意味合いが増してきていることを感じています。管理人のオレ様のオレ流、私の思いを表現するところと、それではいけない場面の使い分けを、最近感じています。

まさに「舟を編む」を思い起こされるような状況に、少しづつ変化してきているのだ...と


"Casio Basicプログラミング" を新たに立ち上げたのは、実はそんな思いからでもあります。

さらに、C.Basicの一部としてのレファレンスの話も良いタイミングで持ち上がりつつあります。

私には、e-Gadgetがうまく大きな変化を遂げる良い機会に思えてなりません。


昔はSF小説を書いたこともありますし、日常的には各種マニュアル、論文、契約書など日英両方で接することが多いですが、相手に合わせた表現、場面に応じた表現(契約書や特許などはその最たるものですね)がいかに大切か、お金にダイレクトに繋がることもあり、怖さもあります。

言葉は本当に大切ですね。文章を書くこと自体は嫌いではなく、言いたいことをやっと表現できたとき、将に「言葉を編む」を実感します。

契約書や特許は別として、読む時はどのような人が何を考えているのかを想像し、書く時は想定する読み手を頭に描くようにしています。常に相手を意識するのが、私の癖であり、おそらく仕事の上ではうまく運ぶコツだと思っています。

sentaro様のコメントでの文章は、情報伝達として、時に感情を少し含ませたりして、とてもうまいと常々思っています。おそらく頭の良さと人柄の良さが反映されているものだと勝手に想像しています。

sentaro様レベルの頭の良い文章は、私にはとても書けませんし、誤字脱字が多いのですが、まだまだ工夫の余地があると思っています。

皆様からのご意見はとても有り難いので、これからもよろしくお願い致します。

組み込みリファレンス

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。

長文です。


> コマンドのパラメータやオプションの増加に伴い、C.Basic本体でのヘルプ機能を本格的に考える時期が来たように思いますので、
> 管理人様のコマンドリファレンス+ツル様の"PARTS"プログラムを参考に取り込んでいきたいと思います。(^^)
> どのような形で実装するかはこれから詰めていかないといけないところですが、
> こうすればいいという案がありましたらどんどんよろしくお願いします。(^^)


勝手に名前を付けてしまっていますが、"組み込みリファレンス" は、ツル様が PARTSに簡単に流用できてカスタマイズしやすい形が良いように思います。個人用にカスタマイズできること、正常動作するプログラムであることが重要だと思うのです。

そこで、取り敢えずエラーを出さずに動作するプログラムの体裁にし、コメントとして説明を記述するというのはどうでしょうか?

=====

下のコメントで述べたように、リファレンスに求められるものは、ユーザーの理解レベルに応じて、例えば以下のように様々なものになると思われます。

1) コマンド単体としての使い方
2) 各種モード設定との組み合わせでのコマンドの使い方
3) 特定目的を達成するための複数コマンドの組み合わせ方

さらにツル様の PARTS がユーザーとしての究極の最終版ですね。

個人的には、1) と 2) は C.Basic同梱のドキュメントと純正の取り使い説明書を参照し、2) と 3) は自分が書きためた手元のサンプルプログラムです。

新しい追加コマンドがあると、大抵取り敢えず使ってみるためにサンプルプログラムを作っています。
何か特定の作りたいプログラムで、今まで作ったことのない機能を実現するとき、機能を試すたけのサンプルプログラムを色々と作り、最適なものを作って動作確認をしてから、目的のプログラムに組み込むことも多いです。

考えてみれば、ツル様が PARTSと言われているものは、私がこれまでサンプルプログラムとして手元で書きためたものが相当します。同じことをやっているわけです。ということは、結構皆さん同じことをなさっているのではないかと思うわけです。

それをきちんと整理しているか、適当に放置しているかの違いはあるとは思います。私の場合は、PCでフォルダに分かり易い名前を付けて、そこにガサッと放り込んでいます。ガサッと放り込めば、電卓から削除します。こうしておけば、後で見返すことも可能です。

なので、自分だけで使うプログラムも、コメントをしっかり書いています。公開しているプログラムに含まれているコメントは本来は自分のため、あとでガサッと放り込んだフォルダを検索するためのものだったりします。

このあたりはツル様も皆様も同様ではないかと思います。

=====

脱線しましたが、以上のようにツラツラ考えますと、"組み込みリファレンス" で最重要なのは、各コマンド単体での使い方ではないかと思います。そのコンテンツは、(書式) (例) でしょうね。あと意外に大切なのはキープレスです。慣れないうちは望みのコマンドがどこにあるのか分からないものです。

そして、取り敢えず正常動作する最低限のプログラムは大切で、先ずは切り貼りして使えることが重要。

この最低限のサンプルプログラムは、複数のコマンドで共有する形でも良いと思います。重複計算するとメモリの無駄になるので...
サンプルプログラムは、Progコマンドで呼び出る形が使えると思います。

=====

また、純正Casio Basicコマンドは、C.Basic添付ドキュメントにリストのみ記載されています。意外にここが抜け落ちているために使い方が分からないというケースがあると思うので、純正コマンドも含める必要性が有るのでは...

これは、少し前にツル様が DATEから年月日を抜き出したいという質問に現れていると思います。ここからは私の勝手な推測ですが、ポケコンでバリバリプログラムを作った経験があり、かつPCでの高級言語の経験の少ない場合、文字列処理コマンドの存在に気付くのに時間がかかるのではないか...

さらに、文字列処理に限って言えば、当ブログでも一言も触れていません。文字列処理はとても遠いところにあります。

e-Gadgetで純正の文字列処理のコマンドリファレンスを作らないといけないと思います。
他方、C.basic の "組み込みリファレンス"には、純正コマンドも取り入れるべきかも知れないと思うわけです。

=====

当ブログの "Casio Basicプログラミング" では、コマンド単体の簡潔なリファレンス、(書式) と (例) として意外に重要だと思うキープレス をまとめようと思っています。

"基礎編"、"実用編" はやりたいことからの逆引きですが、"コマンドリファレンス" で(書式) と (例) とキープレスを網羅した辞書的なもの (コマンド名から検索) を含めようと考えています。

これが、"組み込みリファレンス" と被ってしまうのではないかと思うのですが、むしろ被るべきだとも思います。というのも、オリジナルて提供したものを改変しおかしくなって、オリジナルが欲しくなることは必ずあるので、同じ内容を掲載したページがあって、さらにそこからダウンロードできることも大切なサポート機能だと思います。

いっそ共同して作る方法もありそうです。さしあたり純正コマンドについては私がたたき台を作れます。

また、並行して英文も作れますよね!

=====

C.Basicの使いこなしの基礎知識編として、行列と文字列に関する部分は特徴的でかつ非常に重要な部分だと感じています。

これは "組み込みリファレンス" に掲載するにはやや分量がありすぎなように思われますので、優先度は下げて考えた方が良いように思われます。

実はこのあたりは、私も完全に理解できていない内部動作ががあったりします。おいおい質問するつもりです。

Manual_J.txt に記載されている内容は、C言語の経験があれば理解し易いのでしょうが、そうでないとチョット難易度が高いかも知れないと、私は感じています。これは私の思い込みかも知れませんので、他の方のご感想もお聞かせ頂きたいところではあります。

=====

※(11:10 追記]

C.Basic拡張コマンドの?を使って、INDEX.g3m から分野別の xxx.g3m を呼び出す形にし、コマンド別の最低限のサンプルプログラム [ (書式)、(例)、キープレス ]を含んだプログラムファイルを Prog や Gosub で呼び出すようにする。

これらは、@REF フォルダなど特定フォルダに格納するようにして、C.Basic と一緒に供給。

使いこなしの共通サンプルプログラムは、別途追加供給。場合によっては e-Gadgetの"Casio Basicプログラミング" からダウンロードしてもらうのも良い。

ユーザーによっては、QRコードで所定ページへのURLを示すのも便利と感じ手貰えるかも知れません。


以上、思うところを列挙致しました。

皆様のお考えも聞いてみたいです。

Re: Re:Screen Reciveでの疑問

iron2様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

sentaro様のコメント:
> C.Basicでは無駄を省いた最小限のLCD転送処理をしているのでScreen Receiverに対応できていません。(^^;
> というのでは困ることも多いので、
> 転送したい画面を描画した後で、GetkeyではなくGetkey1かGetkey2を使って一時停止状態にすると
> システムとしての画面転送が行われるのでPCで画面キャプチャできるようになります。(^^)

私も、いつもこの方法で画面をPCに転送して使っています。

なお、純正 Casio Basic でも Getkey では Screen Receiver でキャプチャーできなかったと思っていて、むしろ Gaekty1/2 が使える C.Basicの方が使いやすいと言えます。純正で作って画面を取得したい時、私は C.Basicで走らせて 上の方法を使って Screen ReceiverでPCに転送させています。

"Casio Basicプログラミング"について

sentaro様、ツル様、iron2様、CGユーザーの皆様


管理人のやすです。


sentaro様のコメントからヒントを得て、一旦改訂したところですが、色々と自分なりに考えるべき点が見えてきました。

・コマンド単体としての使い方
・各種モード設定との組み合わせでのコマンドの使い方
・特定目的を達成するための複数コマンドの組み合わせ方

特定コマンドに対するユーザーの理解レベルに応じて、上記のような異なる要求が出て参ります。

これまでの私のやり方では、これらを1つのサンプルプログラムにちりばめる方法でしたが、それを止めてみたのが、今回の改訂版です。

すると、まとめ方にもっと工夫できそうだと分かってきました。

自分のこれまでのやり方を、何か工夫して変えてみようと思っていて、新しいスタイルを作って見ようと思います。試行錯誤にはチョット時間がかかりそうですが、スタイルが固まってくれば、一気に拡張できそうな気がしています。



Re: Re: CG50の時計

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。


昨日以下の報告と致しました。


> 私のところでは、この1日で、TIME が20時間近く遅れました。電池交換はしていません。電池残量は半分以下です。そろそろバッテリー切れです。


バッテリーを交換し時計がリセットされました。日付けが 7800/01/01 となりました。7800年になったということは少し前に報告しているので、やはり何か妙なことが起きているようです。

Re: BATT 残量インジケーター の融通性

ツル様、sentaro様、管理人様、iron2様、皆様

管理人のやすです。

BattryStatusコマンドについては、元々 システムコールでバッテリーアイコンを制御できることを sentaro様が見つけられ、それがコマンド化されたという経緯でしたよね? 

これには、内部動作をハッキングするような作業が要求されるわけで、一からコマンドを作るのとはかなり勝手が異なります。

このことを考えますと、sentaro様がパッパとツル様のご要望に応えられるかどうか分からないところです。

なお、BattryStatusコマンドは、電圧情報も得られます。

そこで、当面プログラム側で出来ることとしては、
・左上のバッテリー-アイコンに背景色を上書きする
・電圧情報に基づき、独自アイコンを好きにデザインして、好きなところに配置する

といった方法が考えられせんか?
まさにツル様の得意分野なので、是非魅力的なバッテリーアイコンと共に、サンプルコードをご提案頂けると、即記事にさせて頂きたいと思います。

なお、BattryStatusコマンド自体に対しては、アイコン非表示の機能が追加できるかどうかが、がポイントでしょうか?
これが可能になれば、プログラム側で独自アイコンを作って表示させるだけになります。

プログラムでできることはプログラムで...かも知れません。

nest + 映画「舟を編む」

管理人様、sentaro様、iron2様、皆様

過日、愛用のCASIO電子辞書の英和辞典で、たまたまnestを見たところ、
コンピュータ用語としては、
  《プログラムの中に小さな別のプログラムを組み込んで階層化する》
と書いていました。

この短い説明文が、これ以上ないほどに簡潔で明確に説明していることに、驚きと感動を覚えました。

映画「舟を編む」が好きです。なぜなら、ツルは事典が大好きだからです。
映画「舟を編む」は、国語辞典製作の映画で、「右と言う言葉を説明してください」というシーンがありますが、とても興味深かったです。
nestの事例のように、無駄なく簡潔で的を射た美しい文は、溶け込むように頭に入ります。 
『新明解国語辞典』(第4版)の語釈も好きです。
「恋愛」を引くと、「特定の異性に特別の愛情をいだいて、二人だけで一緒に居たい、出来るなら合体したいという気持を持ちながら、それが、常にはかなえられないで、ひどく心を苦しめる・(まれにかなえられて歓喜する)状態」
(『新明解国語辞典』(第4版)より引用)

因みに、お見合い結婚は、互いに相手のことを分からない状態から始まり、共に生活する中で相手の長所を知って加点していく足し算だと。恋愛は、初めに相手に100点を付けてから次第に減点していく引き算なのだと。愛は見返りを求めないが、恋は見返りを求めるものとも。  言葉もProgも楽しいですね。。

舟を編むには、辞書編集部に4名の男性が登場しますが、管理人様以下、投稿欄を賑わすメンバーと被ります。マジメ君がsentaro様かな?(笑)

BATT 残量インジケーターの投稿で、同じ表示で飽きました と書きましたが、
飽きたというより、他の表示との統一感、画面全体としてのデザイン上の問題で変えたい時がある・・・のほうが言い方としては正解でした。


BATT 残量インジケーター の融通性

sentaro様、管理人様、iron2様、皆様

sentaro様
BATT 残量インジケーターの表示位置は、0行目左端がデフォのようですが、
表示位置は自由に指定出来ませんか?
(左上だと困る場合があります。ツルは、F1押下時だけ表示するようにも工夫していますが、フル画面表示時代になった現在では、左上だけが能じゃないと思いました)

また、表示されるアイコン自体のデザイン変更はできないでしょうか?
(ずっと、これまで同じ表示で飽きました)

Re: CG50の時計 & "Casio Basicプログラミング"

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。


CG50の時計

> CG50の時計ですが、昨日にきっかり合わせていたのが今のところずれてないようなので、一時間で止まってるということは無さそうです。
> 何か止まる原因が他にありそうですが、今のところはまだ分かってません。(^^;

私のところでは、この1日で、TIME が20時間近く遅れました。電池交換はしていません。電池残量は半分以下です。そろそろバッテリー切れです。


Casio Basicプログラミング - 最初のサンプル

ついつい欲張り過ぎてしまったようです。

最もシンプルな事例を最初に提示するように修正しました。
段階的に追加し、最終的に LOADBMP.g3m を示します。

http://egadget.blog.fc2.com/blog-entry-636.html

これなら、より良いと思いますが、どうでしょうか?

Re:Screen Reciveでの疑問 + "Casio Basicプログラミング"

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

CG50の時計ですが、昨日にきっかり合わせていたのが今のところずれてないようなので、一時間で止まってるということは無さそうです。
何か止まる原因が他にありそうですが、今のところはまだ分かってません。(^^;
C.Basic動作中に原因がある可能性もあるので、今後はちょこちょこ時間が合っているかの確認をしていただけると幸いです。


iron2様、
>壁に Screen Reciveでの疑問 を貼りました。
>何か不安なので既知の問題かも知れませんが
>情報があれば教えてください。

マンデルブロビュワー、良い感じで出来つつありますね。(^^)
で、PCへの画面転送の件ですが、
C.Basicでは無駄を省いた最小限のLCD転送処理をしているのでScreen Receiverに対応できていません。(^^;
というのでは困ることも多いので、
転送したい画面を描画した後で、GetkeyではなくGetkey1かGetkey2を使って一時停止状態にすると
システムとしての画面転送が行われるのでPCで画面キャプチャできるようになります。(^^)



管理人様、ツル様、iron2様、
コマンドのパラメータやオプションの増加に伴い、C.Basic本体でのヘルプ機能を本格的に考える時期が来たように思いますので、
管理人様のコマンドリファレンス+ツル様の"PARTS"プログラムを参考に取り込んでいきたいと思います。(^^)
どのような形で実装するかはこれから詰めていかないといけないところですが、
こうすればいいという案がありましたらどんどんよろしくお願いします。(^^)



ツル様、
>今更ですが、複数行まとめてコピペも含めて、Prog作りの効率が50倍になったような感覚です!これら まとめてドン!をやる度に快感になります。
>ツルは、楽しめるProgのご提供で恩返ししますね!

まとめてドン!はたしかに爽快感ありますね。
今後もあっと驚くお楽しみProgの数々をご期待しております!(^^)


管理人様、
>コピペでスグに使えるような ”実用編" サンプルプログラムは、こんな感じで良いでしょうか?

Hello World
を表示するのが一番簡単な言語としてのCasioBasic的には、
BmpLoad一発で表示できますというのが理想ですが、
C.Basicの追加機能を活かした、IsExist(を使ったファイル存在チェックや、実際にファイルをロードしてのヘッダのチェックまで、かゆいところに手が届くサンプルになっているのがなかなか良いです。
一つ注意点として、BMPファイルを一時的にロードするにはそれだけの空きメモリが必要なので、
全画面サイズのBMPだとCG20ではメモリ不足で読み込めないので、そこのあたりの注釈は必要かと思われます。

あと、グラフィックス画面に表示するだけなら<ブロック4>だけで可というところも付け加えておけば良いかもですね。(^^)

re:サンプルプログラム - BMPファイルのロード

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

管理人様へ
>コピペでスグに使えるような ”実用編" サンプルプログラムは、こんな感じで良いでしょうか?

MANDELBROT VIEWERに組み込みやすくなりました。
いろいろSAVEしたFULL画面のスライドショー的に
使える気がします。
ありがとうございました。

これからもよろしくお願いします。

サンプルプログラム - BMPファイルのロード

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。

部品のように使えるサンプルプロブラムとして、

"BMPファイルのロード - Casio Basicプログラミング"
http://egadget.blog.fc2.com/blog-entry-636.html


※2018/01/08 17:39 記事修正、プログラムファイル差し替えました

を追加しました。これは実用編です。

ストレージメモリにある BMPファイルを呼び出して全画面モードで背景に表示するサンプルプログラムです。

これを、自作プログラムに埋め込んでも良いし、サブルーチンとして呼び出してもOKです。

ちなみに、以前作ったカラーピッカーのひな形 HV8.g3m で HAMA.bmp をロードするところを Prog "LOAFBMP" に置き換えると、自由にビットマップファイルを呼び出せます。

https://egadget2.web.fc2.com/archives/fx-CG50/ColorPicker/HVY8.html

'==Set image
_ClrScreen
_ClrVram
Screen.G
BmpLoad("HAMA")


を以下のように変更

'==Set image
Prog "LOADBMP"



コピペでスグに使えるような ”実用編" サンプルプログラムは、こんな感じで良いでしょうか?


Screen Reciveでの疑問

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

壁に Screen Reciveでの疑問 を貼りました。
何か不安なので既知の問題かも知れませんが
情報があれば教えてください。


ツル様へ
>ツルが理解出来れば皆さん理解できると思っています。だから、ツルが自分で
>分かりやすいか?という判断基準を大事にしたいと考えています。その意味で
>は図示の活用です。ツルが仕事で作る報告書などは、図と写真だらけです。

iron2も最低自分がわかる事を基準にしているつもりです。
人に伝える事の難しさは常々感じていてメモ投稿も図だらけです。(笑)
後、よくプログで参考になる事は多いのですが、後は自分で考えてみ
ぽいのが多く消化不良で苦しくむ事が多いです。

>首、手首、足首 を温めて、この冬を元気に乗り切っていきましょう! 
ありがとうございます。末端が冷えるほうなので参考になりました。

これからもよろしくお願いします。

Re:LEGO のようなプログラミング

管理人様、sentaro様、iron2様、皆様

iron2様 こんにちは。
>電卓用HELP集はユーザーが増えた時の灯台となることは間違いありません。

はい、ありがとうございました。ツルもそう確信して励んでいます。
古くからパワーポイントを良く利用していますが、先ずやりたい種別としてテーマを選ぶと、表示の配置レイアウトや配色などが概ね自動で設定されますよね。
CG50では優れた便利この上ないコマンドが用意されている恩恵を受けてはいるものの、最初から何でも設定しないと先に進まない点が改善個所かと思っています。だから極めて融通が利くのだとも認識していますが、ツルは尋常ではない程の作りたいProgの山に押しつぶされそうで、一貫している願望はただ一つなのです。「効率よく早く作りたい」だけなのです。
一つの言語を覚えなければならないのは理解していますが、今の調子では限られた時間を頑張って放出しても学習進行スピードが遅いのです。
勿論、ツル自身に問題がある訳ですが、何とか改善しなければとうんうん唸っています。後に続く若い人たちの為にも、画期的なものを残してあげたいと強く思います。例えば、文での説明以外の方法も、模索してみてはどうかと考えています。はっきり言いますと、ツルが理解出来れば皆さん理解できると思っています。だから、ツルが自分で分かりやすいか?という判断基準を大事にしたいと考えています。その意味では図示の活用です。ツルが仕事で作る報告書などは、図と写真だらけです。

iron2様のコメントは、とても力強い心の支えになりました。
ありがとうございました。
寒い日が続いております。温めるポイントは三つの首と言います。
首、手首、足首 を温めて、この冬を元気に乗り切っていきましょう! (ツル)

re:Casio Basicプログラミング & LEGO のようなプログラミング + まとめてドン

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

近年の開発環境は開発環境のインテリセンス機能
(コード補完&引数説明が3文字程度打ち込むと出る)があり
また、何々のアプリケーションを作りたいプロジェクトを作成する
とそれようの雛形が生成されます。またFormをクリックすると
Form_Loadイベントコードが自動的に生成され、そこに初期化コード
を書けばよいようになっており、それがどういう仕組みでなっているかは
別でユーザーはそこにコードを足していけばよい仕組みなっている。

正にLOGO、部品化の極地で、割と初心者でも作れてしまうっての
が流れのような気がします。
(iron2が日ごろ言うぬるま湯環境ですね(笑))

管理人様やツル様が進められている事はいま上で述べた事に近いと
思います。

ほぼすべてを網羅している逆引き大全の極意やネット上で特定のコード
をコピペしたい時に使うスキュー(花ちゃん)的な事のような感じを受け
ました。

それが管理人様のページやツル様の電卓用HELP集はユーザーが増えた
時の灯台となることは間違いありません。

いつもの様に応援きず情けないですが、がんばってくださいませ。


これからもよろしくお願いします。

LEGO のようなプログラミング + まとめてドン

管理人様、sentaro様、iron2様、皆様

プログラミングの手法としましてツルが以前書きました、プレハブ住宅を造るように、各ブロックをユニット化して組み立てるという話に触れました。その流れの中で、管理人様からLEGOのお話が出たかと思います。
ツルが脳卒中での入院時に、脳の機能確認と リハビリとして与えられたのが、LEGOブロックでの飛行機組み立て問題でした。

実はLEGOは好きではなく、その時初めて触れました。どういうものかは古くから知っていましたが、LEGOが好きになれなかった理由は、数個程度のブロックで何が作れるというのか?・・・やるならば5000個単位で用意しなければ楽しめないだろう、というのが かねてからの持論でした。更に、車やロケットや風車など、専用パーツが用意されているのも、中途半端に感じていました。先端だけ綺麗な曲面成型品で、中ほどはゴツゴツしたブロック。その組み合わせがどうしても好きになれなかったのです。
今でもLEGOは好きではないのですが、パーツを繋げて規模を大きく複雑化させながらも、創造を楽しめるツールとしては、存在を否定するものではありません。

只今、これまでとは違う趣旨のProgを作っています。
名前は"PARTS"としています。何をするものかと言いますと、実戦的なカタログ機能のようなものです。
例えば、code書き始め部分に最近書くようにしている、CG50だ、制作年月の1801だ、Tsuruだ、Verだと、ポチポチ打たないで「コピペで使うための原文」を入れています。また、全面指定色背景にするための設定や、方向キーによるオブジェクトの移動に関するcode、毎回のように記述で迷うコマンドの後ろ部分の記述見本などです。今ではProg作りに欠かせないProgとなっています。
名前、"HELP"に代えようかな・・・(笑)

管理人様が進めていらっしゃる教科書も必要なものですが、出先で作ることが多いツルには、電卓を見て分かることがツルには必要で、スマホと電卓を持ってたら、どちらかを落としそうで怖いです(笑)
PCが近くになくてもプログラム作りに集中できる状態、環境を作りたいのです。
ツルなりの自助努力などの様子を書きました。何かご参考になる点でもあれば嬉しいです。

iron2様
最初のご提案だったと思いますが、まとめてコメント化とその削除の機能。
sentaro様
今更ですが、複数行まとめてコピペも含めて、Prog作りの効率が50倍になったような感覚です!これら まとめてドン!をやる度に快感になります。
ツルは、楽しめるProgのご提供で恩返ししますね!

"Casio Basicプログラミング" を始めました

sentaro様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人のやすです。


以前ここのコメント欄で、基礎的なコマンドの使い方や、基礎的なプログラミング方法に関する情報がまとまって調べられると便利だとの話題がありました。

これまで、Casio Basic使いこなしを目的として、"Casio Basic入門"、"Casio Basicコマンドリファレンス"、"プログラムライブラリ"、"逆引きCasio Basic" を連載してきています。

ツル様や iron2 様 との最近のやりとりから気がついたのは、Casioのプログラム電卓でプログラミングを楽しもうと思われる方には、ポケコンでのプログラミング経験者が結構いらっしゃる可能性です。

これは私の視点から完全に抜け落ちていたもので、従って Casio Basic使いこなしの記事にも全く反映されていなかったことにも気付きました。

そこで、改めて高級言語といって良い Casio Basic や、さらに高機能な C.Basic を使いこなすために、コマンドの基礎的な使い方や、分かり易いプログラム構造の作り方 (=構造化プログラミング) について、より具体的かつ広く扱う解説を拡充させるために、"Casio Basicプログラミング" を始めました。

これは、"基礎編" と "実用編" の2部構成とし、以前の "逆引きCasio Basic" は "実用編" に含めます。

...ということで、ツル様やiron2様からのご質問、sentaro様の親切なコマンドの使い方の説明などを、FAQとして積極的に取り込むようにしたいと思います。

http://egadget.blog.fc2.com/blog-entry-632.html

よろしくお願い致します。


Re: Re:DATE /TIME について

sentaro様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人のやすです。


DATE / TIME の遅れについて

> もしかしたら、CG50の電源OFF後の一時間でSDRAMがメモリクリアされてしまうというハード的要因が時計機能にも影響あるのかもしれません。

そういえば、以前 電源オフ1時間で SDRAM がメモリクリアされるという話を sentaro様のコメントで読んだのを思い出しました。可能性高いですね!


> 休眠中のfx-9860GIIやCG10は無事年を越して2018年になっていたので時計は動作し続けていたようです。

私の手元の fx-CG20 と fx-9860GII で確認したら、1日もずれていませんでしたので、一般的な現象のようです。


> 電源OFF後の一時間後から時計が止まってしまうとしたら、CG50は時計は出来ない子になってしまいます。(^^;

fx-CG20 が益々出来る子になっているとも言えます!


> (※ 23:20追記  CG50を1時間以上放置後でも時間は合っていたので、それ以外の要因がありそうです。。。)

ありゃ、fx-CG50 の省電力設計が裏目に出ているかと思えば、ひょっとして C.Basic でなんとかなるのではないかと、チョット期待しています。



> 一応、fx-9860GIIもCG20も内部時計は止まらずに動作し続けるので保持する機能はありということになりそうですが、CG50では保持出来無いのかもしれません。(^^;

> あと、
> DATEコマンドとTIMEコマンドは書き込みもできますので、
> "2018/01/07"->DATE
> "12:34:56”->TIME
> で日時設定も可能です。(^^)

ありがとうございます。
記事を追記・修正しておきました。

Re:Re:DATE /TIME について

管理人様、sentaro様、iron2様、皆様

本当だ、ずれてきますね。
電波時計でこまめに直しているのですが、昨日正確に設定しておいたのが、
現在2010/10/01 になっていて、時刻も40分程ずれました。

CASIOの基本設計バグだったりして・・・
CSへ問い合わせ必要? 正確さが必要な信頼したい機能ですよね。

Re:DATE /TIME について

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>数日前に設定した DATE / TIME が大幅に狂います。リセットを行っていません。

メインで使っているCG50は頻繁にリセットになるので、時間が合っているかどうかの確認が出来ませんでしたが、
もう一台のCG50はしばらく触ってなかったんですが、思いっきり日時が狂っていました。(^^;
休眠中のfx-9860GIIやCG10は無事年を越して2018年になっていたので時計は動作し続けていたようです。

もしかしたら、CG50の電源OFF後の一時間でSDRAMがメモリクリアされてしまうというハード的要因が時計機能にも影響あるのかもしれません。
電源OFF後の一時間後から時計が止まってしまうとしたら、CG50は時計は出来ない子になってしまいます。(^^;



>なお、ツル様からDATEから年月日を取り出す方法の質問がありました。PCのBasicの経験が無く、ポケコンの経験がある方 (意外に当ブログの読者に多いタイプかも?)には、必ず疑問を持つ良い質問なので、予告していた "Casio Basicプログラミング"のネタとして使わせて頂きました。

早速にFAQ入りですね。
ありがとうございます。(^^)

あ、ちょこっと気がついた点として、

>DATE / TIMEの設定
http://egadget.blog.fc2.com/blog-entry-636.html

>但しPCなどと異なり、電卓自体に日付けや時間を保持する機能が無い。

一応、fx-9860GIIもCG20も内部時計は止まらずに動作し続けるので保持する機能はありということになりそうですが、CG50では保持出来無いのかもしれません。(^^;

あと、
DATEコマンドとTIMEコマンドは書き込みもできますので、
"2018/01/07"->DATE
"12:34:56”->TIME
で日時設定も可能です。(^^)


(※ 23:20追記  CG50を1時間以上放置後でも時間は合っていたので、それ以外の要因がありそうです。。。)

DATE /TIME について

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。

数日前に設定した DATE / TIME が大幅に狂います。リセットを行っていません。

DATE: 2018/01/06 SAT (本日は 1/7)
TIME: 03:48:36 (これを書いている時 19:26:20)

これは仕方の無いことでしょうか?

なお、ツル様からDATEから年月日を取り出す方法の質問がありました。PCのBasicの経験が無く、ポケコンの経験がある方 (意外に当ブログの読者に多いタイプかも?)には、必ず疑問を持つ良い質問なので、予告していた "Casio Basicプログラミング"のネタとして使わせて頂きました。

Casio Basicプログラミング - 目次-
http://egadget.blog.fc2.com/blog-entry-632.html


DATEから年月日を取り出す
http://egadget.blog.fc2.com/blog-entry-635.html


DATE / TIMEの設定
http://egadget.blog.fc2.com/blog-entry-636.html


Re:Ticks使い方

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>Ticks使い方で質問があります。
>Ticks使い方で質問があります。
>画面上で大まかな実行時間を表示させていますが
>使い方がまずいのか、システムでの実行時間より
>遅く表示されます。

Ticksは1/128秒単位のタイマーですが、その真実は内部時計そのものなので、0クリアすると内部時計が00:00:00になってしまいますので、0クリアしてることで誤差が生じています。
これを修正するには、0クリアではなく、時間差を計算するようにすることでズレは無くなります。

初期値をsに代入しておいて、
Ticks->s
...
...
...
Ticks-s->z

これで問題なくなると思います。(^^)
Ticksのカウントは24時間計なので、23:59:59~00:00:00でクリアされますので、この期間をまたぐ計測をすると差分がマイナスになってしまうのでそこだけは要注意です。




管理人様、
>電卓プログラミングで画像の著作権を考えることになるとは想像もしていなかったので、

ここ、本当に実感しますね。
表現力の向上は便利になる反面、制約も生まれるということで、PCの進化そのものですね。(^^;

Re: Re:パブリックドメイン BMP 画像

ツル様、sentaro様、iron2様、CGユーザーの皆様

管理人のやすです。


> >今後作成し公開するプログラムで利用するために同梱する画像は、パブリックドメインである必要があります。
>
> 了解しました。
> ソースの記載も大切ですね。これを根拠に公開してますよという証ですね。


ご賛同頂き、ありがとうございます。

今はまだ辺鄙なところで内輪で盛り上がっているだけですが、G.Basic for CG の潜在能力ゆえに今後想定外にユーザーが増えることも十分考えられること、そうなると管理人だけが気をつけるのでは追いつかなくなる可能性も考えられることから、当ブログとしての線引きをはっきりさせたいという趣旨です。

もっと言えば、一方通行で投稿頂くだけのプログラムで利用されている画像の著作権は投稿者の責任ですが、それについてコメントが付き、やりとりの中心になれば当ブログには編集著作権が発生し、一定の責任が発生するものですから、画像に関するガイドラインが必要だろうと思ったわけです。

そして、取り敢えずパブリックドメインだと明確なもの(Lenna) だけでなく、パブリックドメインと謳っているソースを明確に引用すればパブリックドメインと判断を拡張することを提案したのが、今回のBMP画像です。

これでしばらく様子をみて運用してみた上で、当ブログのガイドラインを決めようと思っています。今回の提案は、それまでの暫定的なものにしたいと思っています。


> 過去の数点は、BMPが扱えることになった喜びが先行して、無配慮でした。

電卓プログラミングで画像の著作権を考えることになるとは想像もしていなかったので、私も一緒になって喜んでおりました。そしてふと著作権を考えなければならないと気付かされました。新しいことが始まる時には、必ず通らねばならない事柄だと思うわけです。

その意味で、画像に係わるプログラムや画像自体については深くご意見やご提案を頂きたいと思っているツル様のご賛同を頂けたのは、私にとっては実に大きな事柄です。ありがとうございます。

今回の画像集に加えて、例えばカラーピッカーを完成させる場合に必要となりそうなYOKO.bmp のような画像など、追加したほうが良さそうな画像も出てくると思います。これの著作権の扱いについても、今後考えつつ進めたいと思っています。

よろしくお願い致します。


Ticks使い方

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

Ticks使い方で質問があります。
画面上で大まかな実行時間を表示させていますが
使い方がまずいのか、システムでの実行時間より
遅く表示されます。
こういう者として使用していて良いのかご教授願います。

以下にソースを貼ります。
'MANDELS8
'ProgramMode:RUN

' from TI-Planet
' https://tiplanet.org/forum/viewtopic.php?p=224371
Back-Color @Black
Screen.g
_ClrVram
RGB(96,200,96)
_Rectangle -1,(-)25,384,215,1,-1
RGB(255,255,255)
_Rectangle -5,(-)29,217,109,10,-1
RGB(0,0,0)
Text 100,5,"Times",O

100->N
10->o 'offset
2->j '*0.25
2.7->w
(-)1.87->h
Int (383/j)->m
Int (215/j)->n
Int ((319/j))->p
Int ((215/j))->q
0->Ticks
For (0+o)->x To (m+o) Step 2
For (0+o)->y To (n+o) Step 2
0->a
0->b
((w*(x-o))/p)-(2.1-0.0)->c
((h*(y-o))/q)+(0.935-0.0)->d
4->L
SysCall(10000,N,&c,&d,&L)->i
Int ((255*i)/N)->g
RGB(1.0*g,5.0*g,8.0*g)
'__Pixel _x,y-24,1
_Rectangle x,y-24,x+1,y-23,1,1
Next
_DispVram
Next
Ticks->z
Int (z/128)->r
Fix 0
Black Text 100,100,r,O
Black Text 100,110,".",O
Fix 2
((z/128)-Int (z/128))->r
r*100->r
Fix 0
Black Text 100,120,r,O
Black Text 100,160,"sec",O

よろしくお願いします。

Re:マンデルブロートビュワーを作りたいメモ(4)+ パブリックドメイン bmp 画像 + DATE情報からの数値取り出し

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、メモ(4)拝見いたしました!
整数版でも全く同じではないにしてもそれなりに結果が出ているようで良かったです。(^^)
パラメータを変えた時にどんな画像が出るのかを確認したい時とかには整数版も使えそうな感じですね。
ありがとうございます!


管理人様、パブリックドメイン bmp 画像いただきました!
これだけ揃っていれば画像をあれこれいじりたい時の素材として困ることは無さそうですね。(^^)
ありがとうございます!


ツル様、
>DATEコマンドで表示される年月日情報の内、年だけまたは月だけの数値を取り出すにはどうやれば宜しいでしょうか?

文字列なので部分的に取り出すにはStrRightとかStrMidを使えば良いです。

例えば、年月日のうちそれぞれ取り出すには、
年は、
StrLeft(DATE,4)
月は、
StrMid(DATE,6,2)
日は、
StrMid(DATE,9,2)
曜日は、
StrRight(DATE,3)
で取り出せます。(^^)

取り出した文字列を数値化するにはExp(コマンドを使って数値化します。
Exp(StrLeft(DATE,4))

時間も同様に取り出せます。


>それと、LoadやCOPY時のポップアップ表示は、ツルは不要だと考えます。
>押し間違いの危険性は皆無に思います。表示色も何度も入れ替わるので、煩わしく思いました。

了解です!
ってことで、該当箇所をコメントアウトして出なくして差し替えました。(^^)
http://pm.matrix.jp/CB/FEINT25S.zip


>あと、2・4・6・8による1行1列の移動はなかなかいいですね。
>あれは思いつかない動作でしたので、感動物です。ありがとうございました。

微妙に位置がずれていた時に一からやり直すのもアレかと思いましたので付け加えておきました。
気に入っていただけて良かったです。(^^)

DATE情報からの数値取り出し

sentaro様、管理人様、iron2様、皆様

sentaro様 こんにちは。
DATEコマンドで表示される年月日情報の内、年だけまたは月だけの数値を取り出すにはどうやれば宜しいでしょうか?
表示を見ながら打ち込まなくても、部分情報取り出しは出来るのではないか?と思いました。

FEINT まとまてくださって、ありがとうございました。
それと、LoadやCOPY時のポップアップ表示は、ツルは不要だと考えます。
押し間違いの危険性は皆無に思います。表示色も何度も入れ替わるので、煩わしく思いました。あと、2・4・6・8による1行1列の移動はなかなかいいですね。
あれは思いつかない動作でしたので、感動物です。ありがとうございました。

Re:パブリックドメイン BMP 画像

管理人様

>今後作成し公開するプログラムで利用するために同梱する画像は、パブリックドメインである必要があります。

了解しました。
ソースの記載も大切ですね。これを根拠に公開してますよという証ですね。
過去の数点は、BMPが扱えることになった喜びが先行して、無配慮でした。

パブリックドメイン bmp 画像

ツル様、sentaro様、iron2様、皆様

管理人のやすです。


画像処理の研究目的ならば、個人的に利用する限りは自由に使えます。しかしそれを配布すれば著作権の問題が発生します。
従って、今後作成し公開するプログラムで利用するために同梱する画像は、パブリックドメインである必要があります。


Lenna の画像ですが、全身の元画像から2種類切り出し、それぞれについて 384x216 と 384x192 の2通り準備しました。

これだけでは寂しいので、Public Domain を謳っている画像から、384x216 と 384x192 の2通りのbmp画像を作りました。


C.Basic for CG で利用可能なパブリックドメイン bmp イメージ
https://egadget2.web.fc2.com/archives/fx-CG50/Public_Domain/BMP_images.html



これらは、Lenna を除き、全てソースを記載し、そのページで public domain と謳っていることを担保に公開してみました。

作業を始めた時はスグできると思ったのですが、結構時間がかかってしまいました(^^;

マンデルブロートビュワーを作りたいメモ(4)

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

マンデルブロートビュワーを作りたいメモ(4)がいつもの
半分ですができたので壁に貼りました。

確認よろしくお願いします。

あと暇を見つけて、また、暇つぶしサンプルトライします。

ちょと具合が思わしくなく、以前のような連投はできない
ですが(そのほうがお行儀が良いという話もありますが(汗))

また皆様には、操作系の事まとまりましたら相談したいので
その時はよろしくおねがいします。

これからもよろしくお願いします。

Re:FillRectによる不完全消去解決+FEINTにGosub?

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>話しは変わりFEINTですが、今は何待ち状態でしょうか?

んと、実使用での不具合が出るかどうか、テスト中という段階です。(^^;
せっかく作成したフォントが登録できてないとか、全部パーになるようなことがあれば安心して使えないので、そこのあたりですね。


>ところで、些細な用件なのですが、FEINTに関する各種SB Progを メインルーチンにGosubで組み込んでしまうのは何か支障が出ますか?
それぞれ短いので、一緒にしたら?と思っていました。

追加機能別に分けていただけなので、Gosubで問題ないと思います。(^^)


(※追記) 一つにまとめてみました。(^^)
http://pm.matrix.jp/CB/FEINT25S.zip
(※追記 17:03  差し替えしています。(^^;)
(※追記 18:55  再度差し替えしています。(^^;)

FillRectによる不完全消去解決+FEINTにGosub?

sentaro様、管理人様、、iron2様、皆様

sentaro様
_Rectangleソリューション!ありがとうございました!

話しは変わりFEINTですが、今は何待ち状態でしょうか?
ツルで止まっているのだったでしょうか?
ところで、些細な用件なのですが、FEINTに関する各種SB Progを メインルーチンにGosubで組み込んでしまうのは何か支障が出ますか?
それぞれ短いので、一緒にしたら?と思っていました。

Re:描画LineのFillRectによる不完全消去

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>様々座標値を変えながら挑戦しているのですが、左右にちょこっと残ります。

これはFillRectが純正仕様のコマンドなので、描画範囲が純正仕様(1,1)-(379,187)に制限されているから起きる現象です。
これを解消するには仕様制限の無いMLコマンドにはMLコマンドでということで、
_Rectangleコマンドを使えば解決できます。

_Rectangle -5,5,400,52,0,0,0
でOkです。(^^)

描画LineのFillRectによる不完全消去

sentaro様、管理人様、、iron2様、皆様

sentaro様
ここ2週間、解決出来ずに困っている事例があります。
先ず全面黒背景(Screen.G)にし、MLコマンドのLineにて -5,10,400,50, のように左右端からはみ出す勢いで線を描画します。(線は描画出来ます)
その線を、FillRect -5,5,400,52, のように、線を描いた領域よりも大きな領域にして塗りつぶしを試みても、左右端に若干の描画(数ドットずつ)が残ってしまいます。
(上に記載のような横1本線ならまだしも、実際に困っているのが、比較的細かい三角状のギザギザ描画なので、消えずに残る分が目立ち困っています)

様々座標値を変えながら挑戦しているのですが、左右にちょこっと残ります。
線に対して線での重ね塗りつぶしは作成Progの性質上不可で、どうしてもFillRectで完全に消したいのです。clsなどもダメです。消してはならない描画部分も表示中なので、狙った範囲のみをFillRectで消したいのです。
描画制限座標を超えた指定をしないようにすることは難しく、何とか出来ないでしょうか?
わがままツルからのお願い。

Re: Locate の座標について質問

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>同じサイズの文字表示になるということは、当然(言わなくても)21列x8行の座標になりますよ という理解をすれば良いのですね?

マニュアルの説明不足ですみません。(^^;
んと、Locateはテキスト系コマンド、
そしてLocateYXはグラフィックス系コマンドなので
それぞれ座標系が違います。

テキスト系は21x8行の単位ですが、
グラフィックス系は1ドット単位なので指定できる座標はTextコマンドと全く同じになります。

ちなみに、純正ではTextコマンドは(1,1)-(379,187)の範囲が有効です。
ちょっとややこしいところですが、これは実画面では(3,3)-(381,189)になっています。
ということで、C.Basicではステータスラインまで含めて
(-2,-26)-(381,189)
までの指定が出来るようになっています。

LocateYXでは、純正に存在しないコマンドなので、
テキストのLocateと座標を合わせるために、
(0,-24)-(383,191)
までの指定が可能です。

と、仕様上はそうしているつもりだったのですが、
現在のC.Basicではこの仕様を微妙に満たしてませんでしたので、差し替え修正です。
バルサンツルサン、ありがとうございます!(^^)

C.Basic for CG v0.28α (3ピンから音が出るかも試練版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG030.zip
・Textコマンドの表示位置が純正互換よりも1ドット右下にずれていたのを修正しました。



>はい、試練なんですね!(笑)りょ(笑)了解(笑)です
>ありがとうございました。(SHRAPのポケコンを思い出します)

はい、試練です。(笑)
一応、CG20とCG50からPCの音声入力に繋いで
PCのFFTアナライザで見るとそれなりに音が出ているのが確認できますが、
周波数が合っているのかどうかちょっと分からないのでまだ要調整です。(^^;

ポケコンの圧電ブザーを繋ぐとそこそこ大きな音が出そうですがまだ試していません。(^^;

Locate の座標について質問

sentaro様、管理人様、、iron2様、皆様

sentaro様
アドイン版 Casio Basic Interpreter (& Compiler) ver 1.6 ベータ版 マニュアル に記載されているLocateについての説明は以下の通りです。

LocateYX
(説明)グラフィック画面にLocateと同じサイズの文字表示が出来ます。
    座標指定はTextコマンドと同じくY座標が先になります。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

で、ツルが現在取り組んでいるcodeにて、Screen.G に続き、RGB(ー,ー,ー)Locate 8,2,"---"のフォームで記述すると、8列目2行目から表示されます。
(ーーーは実際は数値文字が入っています)
その後に続くText文では約400✕200座標での扱いとなりますが、

同じサイズの文字表示になるということは、当然(言わなくても)21列✕8行の座標になりますよ という理解をすれば良いのですね?
同じScreen.Gではあるが、Locateによるテキスト文字は固定ピッチだから21列8行で指定できることになり、Textによるミニフォント文字は可変幅なので物理座標扱いなんだと、この理解が正しいですか?
まだやったことがないのですが、標準サイズのテキスト文字と、ミニフォントとの混在同時表示は可能なのですか?少し混乱しています。


Re:世界スタンダードのテストイメージ- Lenna

管理人様、sentaro様、iron2様、皆様

管理人様
安心して使用できる画像を探していただき、ありがとうございました。
興味深い写真です。第一印象は、1960年代のフランスを舞台とした映画「ジャッカルの日」のワンシーンを彷彿とさせる古めかしさがあり、1970年頃、在日米軍横須賀基地内の売店(PX)で、米兵にお金を渡してPenthouse を買ってきてもらったツルの若き日を思い起こさせてくれます。同時に、さすが学会の、芸術に縁遠い年寄り役員が選定しただけの写真だ・・・とも。あー、また乱暴粗野無礼なことを書いてしまっている。
ツルも、パブリックドメインのフリー写真から選定しようと、1000枚程検討してみましたが、あらゆる権利関係で安心できる「素敵な素材」はほぼなく、作ろうかと考えていました。


sentaro様
>これで著作権問題はクリアですね。(^^)
はい、しかし、この写真を何にどのように活用するかは全く見通しが立ちません。ツルにしては珍しく、アイデアが浮かんでこないという問題が・・・
ただ、逆に、画質が粗いので、レタッチの練習用にはいいかもしれません。
(いえ、ツルの練習ではなくて・・・ ツルは一応、写真レタッチでは、日本では20万人の中には入ると思いますので(笑))

>3ピンからオンオフ信号くらいはすぐに出せそうな感じです。(^^)
はい、ちゃんと以前にお聞きしてました!

(3ピンから音が出るかも試練版)
はい、試練なんですね!(笑)りょ(笑)了解(笑)です
ありがとうございました。(SHRAPのポケコンを思い出します)

C.Basic for CG v0.30α (3ピンから音が出るかも試練版)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、お待たせしました。
3ピン出力から矩形波ですが出力できるようになりました。
周波数と長さが設定できますが、若干誤差があるかもしれません。(^^;


C.Basic for CG v0.30α (3ピンから音が出るかも試練版)
http://pm.matrix.jp/CB/CBASICCG030.zip
・Beepコマンドを追加しました。[SHIFT]+[VARS](PRGN)-[F6]-[F4](I/O)-[F6]-[F5](Beep)
(書式)Beep 周波数、継続時間(ms)
 3Pin出力より指定周波数の矩形波を出力します。
(例) Beep
 1KHzの矩形波を0.5秒間、3Pinより出力します。
(例) Beep 440,1000
 440Hzの矩形波を1秒間、3Pinより出力します。

Re:世界スタンダードのテストイメージ- Lenna

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、レナさんの画像ありがとうございます!
これで著作権問題はクリアですね。(^^)

>それを fx-CG用に 383x191 にトリミングしました。

んと、CG画面は384x216が最大で、上一行を省いた標準画面が384x192なので、微妙に1ドット少ないかもです。(^^;
384x216のフル画面用もあってもいいかもですね。


ツル様、
>音に無縁なCG50ですが、お気に入りの音楽のリズムに合わせてカラー表示がされるメトロノームのようなものを作っていまして、

お!またまた新しいアプリ登場ですね!


>近い将来、sentaro様がCG50と音との融合を図ってくださるでしょうから、それまでは我慢のツルでいます。

3ピンからオンオフ信号くらいはすぐに出せそうな感じです。(^^)

世界スタンダードのテストイメージ- Lenna

ツル様、sentaro様、iron2様、CGユーザーの皆様

管理人のやすです。

やっと見つけました、以前コメントしていた著作権の心配の無いテストイメージ!

電気情報通信の学会で有名なレナさんの美人画像です。

383x191 にトリミングした画像2枚 + 標準画像(tiff)です。
https://egadget2.web.fc2.com/archives/fx-CG50/TSURU/lenna.html

元々は、Playboy誌に掲載された全身画像ですが、頭の部分の512x512だけがテストイメージとして使われたそうです。

それを fx-CG用に 383x191 にトリミングしました。

但し、色合いはかなり偏っています。

Re:カラーピッカーとカラーテンプレート

管理人様、sentaro様、iron2様、皆様

>そうか、あの位置に描画させるのは、意図的だったのですね!

意図はありましたが、悪意ではないです。
音に無縁なCG50ですが、お気に入りの音楽のリズムに合わせてカラー表示がされるメトロノームのようなものを作っていまして、画面の左側にドラムを表示、
右側に例の方向キーを表示して、方向キーの操作でドラムを叩いたり表示のテンポを変えられるProgを作っていたために右下表示にしているだけなんです。
近い将来、sentaro様がCG50と音との融合を図ってくださるでしょうから、それまでは我慢のツルでいます。
そのドラムを叩く操作の時に、画面の方向キーを押してしまいました(笑)

管理人様もお気を付けください・・・
ツルの注意喚起が、すでに手遅れだった人も居るようなので(笑)

カラーピッカーとカラーテンプレート

ツル様、sentaro様、iron2様、皆様

管理人のやすです。


虹のテンプレートですが、

> あの管理人様の虹の描画は、虹の各色がRGBでどんな数値によって描かれるものなのか確かめる為のProgだということを理解している上で述べますが、

> あのまま進化させて、カラーパレットとして完成を目指していらっしゃるのでしょうか?

おっしゃるように、単なる実験プログラムです。というよりも、自分が色彩に関する知識が殆ど無いものですから、取り敢えず教材プログラムを作ってみて、それでジックリと色彩についての理解を深めようという趣旨です。

プログラムに描画させてみて、改めて "きれだなー" とか、"フムフム、RGBではこうなってるのか!" とかやっと肌感覚に近づけるといった感じで、何度も何度も眺めています。

で、実現するかどうかは別として、汎用サブルーチンとして自由に呼び出して RGB値を取得してメインルーチンに戻すようなツールにできたら良いかな?といった感覚で、カラーテンプレートを作って見たいと考えています。


> 以前申し上げましたが、カラーパレットとしては、ペイントのカラーパレットが上手くまとまっている完成形だと思います。

そこで、アドバイス頂いたペイントのパレットを 電卓で表示運用してみたいな、と思います。先ずは丸っきり真似ができるかどうか、やってみようと思います。

的確なツル様の方向付け、大変ありがとうございます。


ついでに申し上げると、カラーピッカーは好きなBMPを読み込んで、目的の座標のRGB値を取得するツールが完成形のイメージです。これについては、ツル様ご提案のカーソルセンター付近を拡大するというアイディアは秀逸だと思っており、この方向で実装してみたいと思っています。


実際の虹を再現するには、おそらくある程度の計算が必要だと思います。プログラミング以前に最大の難関はどう計算するか? 私なりのアプローチはこんな感じです。しかし色彩については全くの素人なので、徐々に勉強して何か思いつくまでは手も足も出ないのは確定です。こういうのは何かきっかけがあって、ヒントもあって、ヨッシャやるか、となるまでには1年か2年か、かかるかも知れないです。現実は、忘れ去っていることとは思いますが...


> 世の中の、目で見えているもの全てと言ってもいいくらい、明るさも色調もグラデーションになっています。グラデーションのあるものをレタッチするのに必要なのはカラーパレットよりもスポイトです。

有用なアドバイス、ありがとうございます。
スポイトを実現するには、吸い取りたい領域を指定して、その範囲のRGB値を行列で取り出せば良さそうですね。
あとはその行列からその領域の色を再現すると、貼り付け可能....
スポイトも汎用ルーチンにできれば、役立ちそうですね!

先ずは単純な領域コピーで形にして、その後で必要ならば色々な加工機能を追加すれば良いでしょうか?


・・・話が振り出しに戻る・・・CG50に画像レタッチは必要か?

おそらく不要かと...だって頑張っても液晶を見る角度で色彩が大きく変わってしまうのですから...

ただし、スポイト機能まで持ったカラーピッカーや Windows Paint仕様のカラーテンプレートは、オーバースペックながらあれば間違い無くお役立ちツールになりそうだとは思います。

まぁ、どなたかがサクッと作って下さっても良くて、有り難く使わせて頂きますが、取り敢えず、C.Basic for CG のサンプルプログラムの位置づけで (将来の記事ネタとして)、ボチボチと進めてみます(^^;


カレンダー作りの予定をツルに聞かれましたでしょうか?

はい!
ミニフォント使いこなしのためのサンプルプログラムに良いと思います。



> arrowkey での方向キー表示に気を付けてください!
> ツルは、LCDを指で押してしまいました!(笑)


そうか、あの位置に描画させるのは、意図的だったのですね!

Re:Character Select の活用 + 虹+DATE/ TIME+MENU枠+FEINT

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>1. FEINTにて作成した外字ですが、それがアルファベットの場合は書体に関係なく外字とは呼ばずに、アルファベットというくくりでの呼称、扱いとお考えでしょうか?

以前よりあるカナ文字は電卓上では使われていないコードを使っているので、C.Basicだけで使える文字です。外字はそこのところを拡張したのでカナと一緒に全部外字のくくりです。
アルファベットの場合は、本体内蔵のフォントを切り替えるものなのですが、これもC.Basic上だけで有効なので、外字でもよいのですが、一応外部拡張フォントというくくりになるかと思っています。
外字はC.Basicだけで使える文字、拡張フォントは純正フォントに替えて追加で使える拡張フォントセットという感じでしょうか。
現段階では、エディタの表示ではアルファベットは全部一緒に切り替わりますが、プログラムでの表示ではワープロみたいに1文字ずつ文字フォントを切り替えることも一応可能になったという段階です。


>2. まだFEINTは正式に運用を始めていませんので、予想の範囲を出ないのですが、標準以外の作成された文字、記号などは、Character SelectとしてF1からF6までのキーにて表示される画面内からの選択になることは今後も変わらないと思いますが、codeにフォントbmpを記述して予め対象ファイルを選択する方式が面倒な感じがしています。
既に管理人様と触れている点かと思いますが、Character Selectの画面は、もっと上下スクロールで運用しても構わないと思うのです。標準ではCharacter数が少なすぎて、もったいない気がします。

Character Selectの画面で選択できるキャラクタは純正互換で作成してありますが、表示キャラクタを増やすことは簡単です。(^^)
外字や拡張フォントは数文字であればプログラム内で定義することで使えますが、
アルファベット全部とか、数字全部を切り替えたい場合には、フォントセットのBMPを作成した方が面倒がなく便利かと思っています。
このあたりは実使用の段階でこうした方がいいという案がありましたら、お願いします。
まだフォント仕様は確定ではなく暫定仕様なので今後より使いやすいように改良していきたいと思っています。(^^)


>3. IMPUCTフォントのような、汎用性の少ない種類は個々にbmpファイル化でよいのではないか。

それって、1キャラクタ分ずつということでしょうか?
使用する箇所が少なければ、使用する分だけの文字や画像を用意してそこだけBMP表示でというのもありですね。


>4. 日本語表示もやりたいとは思いますが、そもそも、PC(Win)からフォントが持ってこれるのですか?それが出来ても、CG50用に手直しが必要なのは、ドット数が違うから?
(サンプルの漢字が乱れているのは、変換がテスト版だから?)

PCから持ってくる方法ですが、Windowsのフォントを大きさを合わせて元になるBMP画像に重ねて差し替えるという、一応手作業です。(^^;
サンプルの漢字はCG内蔵の24x24ドットフォントを縦横ディザ縮小してドット数を合わせただけなのでそれなりです。(^^;
どちらにしてもCG用のフォントサイズにピッタリ合うような補正が出来てないので、フィット感がいまいちです。(^^;



>・・・話が振り出しに戻る・・・CG50に画像レタッチは必要か?

側にPCがあれば必要はないかもしれないけど、電卓しか無い時にちょこっとレタッチしたいという場合があれば、その手のアプリがあれば嬉しいという感じでしょうか。
純粋にプログラムとして実現するものなので、機能追加や改造が自由に出来るというのはプログラミング的にはポイント高いかもしれません。
グラフィックスは目に見える変化があるので、プログラミング題材としても面白そうです。(^^)


>DATE/ TIME はツルも、?な部分でした。やんちゃな子でした(笑)

うわ、ツル様の電卓でもおかしな数値に?(^^;
再現性があれば確実にバグなので、バグらしき挙動がありましたら
即効性のバルサンツルサンお待ちしております!(^^)


>もう今は黒枠になり、縁起でもない・・・(笑)

あ、一応、Plot/Line-Colorで指定している色が、枠の色になっております。(^^;
文字部分は直前の色指定コマンドです。


>なお、IMPUCTは好きですが、全表示が一斉にIMPUCTだと変ですね。部分的にIMPUCTだからIMPUCTがあるのであって、この辺りは別途ご相談したいです。

たしかに、それはそうかもしれません。(^^;
今のIMPUCTはフォントの切り替え用サンプルフォントなので、通常モードで違和感なく使えるフォントセットを3つくらいは揃えたいところですね。


>※FEINTは大詰めになってきた感がありますね。
>早くフォント製作に入りたく思います。引き続き、よろしくお願いいたします。

実使用上、より使いやすいように、改良、サポートコマンド化の実装を進めていきますので、
こうした方が、というところがありましたらどんどんお願いします。(^^)


>arrowkey での方向キー表示に気を付けてください!
>ツルは、LCDを指で押してしまいました!(笑)

すでに手遅れです。(笑)

Character Select の活用

sentaro様、管理人様、iron2様、皆様

sentaro様
過去にご説明済みの部分もあるかと思いますが、再確認の意味でもご質問させて頂きます。

1. FEINTにて作成した外字ですが、それがアルファベットの場合は書体に関係なく外字とは呼ばずに、アルファベットというくくりでの呼称、扱いとお考えでしょうか?
2. まだFEINTは正式に運用を始めていませんので、予想の範囲を出ないのですが、標準以外の作成された文字、記号などは、Character SelectとしてF1からF6までのキーにて表示される画面内からの選択になることは今後も変わらないと思いますが、codeにフォントbmpを記述して予め対象ファイルを選択する方式が面倒な感じがしています。
既に管理人様と触れている点かと思いますが、Character Selectの画面は、もっと上下スクロールで運用しても構わないと思うのです。標準ではCharacter数が少なすぎて、もったいない気がします。
3. IMPUCTフォントのような、汎用性の少ない種類は個々にbmpファイル化でよいのではないか。
4. 日本語表示もやりたいとは思いますが、そもそも、PC(Win)からフォントが持ってこれるのですか?それが出来ても、CG50用に手直しが必要なのは、ドット数が違うから?
(サンプルの漢字が乱れているのは、変換がテスト版だから?)

取り急ぎ、以上です。

虹+DATE/ TIME+MENU枠+FEINT

管理人様、sentaro様、iron2様、皆様

新年開始早々、投稿がスパートですね!
もう、読んで理解するのに遅れ気味です(笑)
活気があって大変よろしいことです。

管理人様
昨年暮れでしたか、虹の描画が無理だのクレヨンだのと、随分と乱暴な書き方をしてしまったことをお詫び致します。何度かCG50での虹の描画を試したのですが無理でした。正確に申し上げますと、ツルには無理でした。

管理人様が虹のカラーパレット風を試作されて、画面幅一杯の表示を見ますと、色の連続変化がとても綺麗に感じ、この調子で描けなくはないだろうと予感はさせるものの、この電卓の小さな画面で、弧を描いて、7色連続の寸法を5~10mm程度に抑えながらの自然な虹の描画を狙いましたがツルには無理でした。
そんな、虹すら描けないという、ツルにとっては打ち負かされた思いのときに書いた投稿でした。読み手の受け取り方を考えないで投げやりに書いてしまいました。

あの管理人様の虹の描画は、虹の各色がRGBでどんな数値によって描かれるものなのか確かめる為のProgだということを理解している上で述べますが、
あのまま進化させて、カラーパレットとして完成を目指していらっしゃるのでしょうか?
以前申し上げましたが、カラーパレットとしては、ペイントのカラーパレットが上手くまとまっている完成形だと思います。あのパレットが手軽に使えるのは、マウスによる操作が可能だからという点もあるかと思います。マウスが使えないCG50に、カラーパレットの必要性については検討が必要な点かと思っています。
更に申し上げると、カラーパレットと言うのは、レタッチ作業が多い人でも使う頻度はとても少ないのではないかと思っています。
(必ず使うとすれば、レタリング、POPで、単色背景のキャンバスにお絵かきをする場合に、描画色を選ぶ時だと思います)

世の中の、目で見えているもの全てと言ってもいいくらい、明るさも色調もグラデーションになっています。グラデーションのあるものをレタッチするのに必要なのはカラーパレットよりもスポイトです。現在のピッカーがRGB値を得るだけだとすれば、スポイトは画像の中から任意の点の色情報を抜き出し、即座に描画するペンやブラシ、スプレーなどに情報を伝えて次の工程の描画に反映させるツールです。スポイトでの色調選択と、画像の一部分のコピペ。これらの繰り返し作業で元のグラデーションに近い描画を再現させることで、違和感を低減させます。グラデーションに関係のない世界がマンガ(≒アニメ)の世界だと思います。
  ピッカーでの情報を描画コマンドに反映させればスポイトになりますね。

・・・話が振り出しに戻る・・・CG50に画像レタッチは必要か?

カレンダー作りの予定をツルに聞かれましたでしょうか?
逼迫しておりませんので春です。(笑) 逼迫してますのが、視力検査です。

sentaro様
DATE/ TIME はツルも、?な部分でした。やんちゃな子でした(笑)
解決のようですね。 ありがとうございました。

MENU枠は赤枠だった時に、丁度、視力検査Progを作っていたので、実は具合が良かったのです。と言うのが、総合病院に多くの科目があるように、視力検査だけの単体Progではなく、健康に関する各種Progを、MENU表示を使ってまとめるべく現在も作業中だから、赤枠がとても具合が良かった。
もう今は黒枠になり、縁起でもない・・・(笑)

FEINTにつきましては引き続きご支援いただき、とても嬉しいです。
なお、IMPUCTは好きですが、全表示が一斉にIMPUCTだと変ですね。部分的にIMPUCTだからIMPUCTがあるのであって、この辺りは別途ご相談したいです。

※FEINTは大詰めになってきた感がありますね。
早くフォント製作に入りたく思います。引き続き、よろしくお願いいたします。

iron2様
BALL ありがとうございました。
全面を黒背景にして描画させるととても綺麗です。
描画色を変えながら楽しんでいます。
ーーーーーーーーーーーーーーーーーーーーーー

皆様へ

arrowkey での方向キー表示に気を付けてください!
ツルは、LCDを指で押してしまいました!(笑)

Re:Re: Re:MENUコマンド:枠の描画色について

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>但し、既に入れ違いでコメントしたように、MENU コマンドに直接色指定しない場合、文字色が Plot/Line-Color の影響を受ける点について、Locate も Plot/Line-Color直後の1回だけ同様の影響を受けるのですが、これはどうなさいますか?

んと、それはPlot/Line-Colorが純正仕様準拠に失敗していたバグでした。(^^;
ご報告感謝です!

MENUコマンド自体はMLコマンド仕様になっていたので、今のままだとML系コマンドになってしまいますので、
純正コマンド同様にコマンド後にデフォルト=黒に戻しておくのが正解のような気がしますね。(^^)

ってことで、そこのあたり修正した0.29α差し替えておきます。
http://pm.matrix.jp/CB/CBASICCG029.zip
・Plot/Line-Color直後のテキスト表示系コマンドが色変更の影響を受けていたのを修正しました。
・Menuコマンドで色指定がコマンド終了後にデフォルト=黒に戻るように修正しました。

(*追記 23:53 再アップしてます。(^^;

Re: Re:MENUコマンド:枠の描画色について

sentaro様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人のやすです。

入れ違いに、コメントをアップしてしまいました。

> MENUコマンドの動作状況を調べてみたところ、
> 枠の色はPlot/Line-Colorで指定された色が有効になっていて、
> 文字の色はコマンド直前での色指定で変わるようになっていました。
> 最初に移植修正した際にそういう風にしていた模様です。(^^;

この仕様は、私は良いと思います。

但し、既に入れ違いでコメントしたように、MENU コマンドに直接色指定しない場合、文字色が Plot/Line-Color の影響を受ける点について、Locate も Plot/Line-Color直後の1回だけ同様の影響を受けるのですが、これはどうなさいますか?


ファイルリストでの[OPTN]キー
マニュアルに載っていない暫定的なお気に入りのショートカットキー
[SHIFT]+[↑] お気に入りの↑移動
[SHIFT]+[↓] お気に入りの↓移動

これも便利ですね!

MENUコマンドの色について

sentaro様、ツル様、iron2様、CGユーザーの皆様、こんにちは!


管理人のやすです。

実は、MENUコマンド以外でも、色指定していない 純正FX版やC.Basic FX版用のプログラムで、グラフィックス出力が全て赤くなっていることが分かりました。グラフィックス出力の色指定が残っていたようです。
試しに、Plot/Line-Color で色指定すると、その色になります。

一応対処は出来たのですが、ここから MENU コマンドの仕様についての質問です。

例えば、MENUコマンドの直前に Plot/Line-Color Blue とすると、MENU コマンドの枠が青になりますが、メニュー項目の文字も青くなります。

ふと思い出したのは、Plot/Line-Color の後で最初に実行される Locate による出力のみ指定色で出力され、2つめ以降の Locate には色指定の影響が無いという現行バージョンの特性で、100%再現性があります。これはこれで使い勝手があるかも知れないと思って、これまで敢えて報告していませんでした。

これを思い出し、MENUコマンドの内部実装は、Locate の内部実装と共通しているかも知れないと考え、

以下のようにしてみたところ、枠だけ青で、メニューコマンドの文字は黒になりました。

Plot/Line-Color Blue
Locate 1,1,""
MENU .....

多分内部実装について、私の推測が当たっているのかも知れませんね。

さて、Plot/Line-Color ですが、仕様として Locate には一切影響を与えないとした方が良いと思いますが、何かお考えがあって最初のLocateにだけ色指定が影響されるようにしておられるのでしょうか?

Re:MENUコマンド:枠の描画色について

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>MENUコマンドを C.Basicで実行すると、以前は青色で枠が描画されていたのですが、なんと赤になってしまいます。

MENUコマンドの動作状況を調べてみたところ、
枠の色はPlot/Line-Colorで指定された色が有効になっていて、
文字の色はコマンド直前での色指定で変わるようになっていました。
最初に移植修正した際にそういう風にしていた模様です。(^^;

現状は見た目からはFX互換なのでCG非互換、色指定も非互換なのですが
とりあえず、このままでも問題はないでしょうか?(^^;


>ファイルリストでの[OPTN]キー
>マニュアルに載っていない暫定的なお気に入りのショートカットキー

[SHIFT]+[↑] お気に入りの↑移動
[SHIFT]+[↓] お気に入りの↓移動

もあります。(^^)


>Ver 0.29 に更新時か、電池交換かはっきりしないのですが、年が 7800 になっていました。今後異常があれば、報告致します。

年の設定は0~9999までいけるので、7800は有り得ない数値ではないですね。
どこかで何かバグってるのかもしれません。
開発中はリセット度々なので日付を合わせることも少なくなってバグの確認が難しいので、
もしまたおかしくなりましたら、よろしくお願いします。


>RGB4a、RGB4b、RGB5

早速にいただいております!(^^)

MENUコマンド:枠の描画色について

sentaro様、ツル様、iron2様、CGユーザーの皆様、こんにちは!


管理人のやすです。

MENUコマンドを C.Basicで実行すると、以前は青色で枠が描画されていたのですが、なんと赤になってしまいます。
何か他のプログラム実行の影響かと思って、MENUコマンドの直前で、

・Back-Color White を実行してみる

・Screen.G:_ClrVram を実行してみる

・Screen.T:_ClrVram を実行してみる

を試みたのですが、枠は赤のままです。

どうも、C.Basic内部で枠の色が決まってしまっている感じがしますが、ご調査願えませんか?

Re: Re:C.Basic for CG v0.29α の種々動作について

sentaro様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人のやすです。

ご回答ありがとうございます。

ファイルリストでの[OPTN]キー
マニュアルに載っていない暫定的なお気に入りのショートカットキー


ファイルリストでの[SHIFT][EXIT]キー
ファイルリストの再読込&リセット。さらにフォルダ内に移動していた場合はルートに戻る
※これは便利ですね!


DATE / TIME リセットのタイミング
電卓のリセット時。リセットすると2010/01/01 00:00:00になる。

以上、すっきりしました。ありがとうございます。


ところで、
> セットアップやDATE/TIMEコマンドを使って変更した以外で変わってしまった場合は、バグの可能性有りです。(^^;

Ver 0.29 に更新時か、電池交換かはっきりしないのですが、年が 7800 になっていました。今後異常があれば、報告致します。


Re: [SHIFT]+[OPTN]のキーコード修正。

sentaro様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人のやすです。


> >[SHIFT]を押した直後に[OPTN]を押しても効きません (C.Basicの仕様)

> これは修正するのは無理かと思っていたら、CGシリーズでは[SHIFT]+[OPTN]のキーコードが出てくるのがわかったので、無事修正出来ました!

> 管理人様がこの部分を気に留めてくださらなかったら気が付かなかったかもです。

素晴らしい!ありがとうございます\(^_^)/

助かります。

ってことで、無事動作することを確認致しました。


ところで、RGB4a 以降で、背景色のRの値の更新にバグがありました。値更新の直前に3桁を空白で上書きクリアしているのですが、文字色をカーソルキーで連続変更するとき、背景色のRの値がチカチカするのを抑制するところでバグがあり、背景色のクリアが効かないケースがあったのを修正しました。一文字 "+" を打ち忘れたので、Orであるべきところが And になってしまっていたという...

そこで、RGB4a、RGB4b、RGB5を差し替えました。

Check RGB Color Ver 1.4a - RGB4a.g3m
https://egadget2.web.fc2.com/archives/fx-CG50/RGB/RGB4a.html
※ Getkey1でなくてGetkeyを使っているので、RGB値の連続変化とヘルプのスクロールがスムーズで速いです。


Check RGB Color Ver 1.4b - RGB4b.g3m
https://egadget2.web.fc2.com/archives/fx-CG50/RGB/RGB4b.html
※ Getkey でなくて Getkey1 を使っているので、省電力です。但しRGB値の連続変化とヘルプのスクロールが少しでもスムーズになるように、長押し関係のユーザー設置絵変数 W、s、w を調整しました。


Check RGB Color Ver 1.5 - RGB5.g3m
https://egadget2.web.fc2.com/archives/fx-CG50/RGB/RGB5.html
※ Getkey1を使って省電力版になっています。
※ Casio fx-CGシリーズの 16 bit カラーに対応。
  R: 0~248 (8刻み)、G: 0~252 (4刻み)、B: 0~248 (8刻み)
  但し、直接キー入力する場合は、1刻みのRGB値を入力可能。


fx-CG20 では、省電力版 RGB4b か RGB5 がお勧めです。
私は個人的に RGB4a が好きなのでこれを使っています。

Re:Re: Re:Re: C.Basic for CG v0.29α (純正ASCIIフォント差し替え可能になった版)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>ここで提案ですが、ミニフォントや外字などが一通り出来た後の話ですが、C.Basic の SET UP でキャラクタセットの切り替えが出きると使いやすくなると思いますが、如何でしょうか?

はい、そのようにするつもりでいます。(^^)


>キャラクタ一覧のファンクションキーは、一番右の[F6]のみが余っています。これを例えば Fonts といった表示にしておき、[F6] (Fonts)を押すと外字キャラクタセットが表示されるような仕様はどうでしょうか?

今のところは、C.Basicシステムに登録された外字とカナだけが表示されるようになっていますが、この部分でフォントを実際に表示しながら切り替えできるようにしてもよさそうですね。。


>取り敢えず、IMPACT の標準とミニフォント、そしてカナを国内版では暫定デフォルトとしておくというのはどうでしょうか?

はい、揃えられるならば5種類以上をデフォルトフォントとして揃えたいところですが、
カナも平仮名はもちろんですし、よく使われる漢字等も外字セットでいくつか入れておきたいところですよね。
フォントはWindows等のフォントから借りてくればそれなりに作成できそうですが、
CGシリーズに合わせたフォントデザインはツル様にお願いしないといけないところですね。(^^)

Re:C.Basic for CG v0.29α の種々動作について

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>ファイルリストが表示されている時の動作
>・[OPTN]を押すとお気に入り登録のポップアップが現れます。
>・[SHIFT][EXIT]を押すと File Reading ポップアップが現れます。
>これらは、想定通りの動作でしょうか?

はい、
[OPTN]はお気に入りのショートカットとして[OPTN]を利用しています。
何か、機能が追加になる場合は、変更する可能性もあったのですが、今のところはそのままです。
[SHIFT][EXIT]はファイルリストの再読込&リセットとなっています。
フォルダ内に移動していた場合はルートに戻ります。


>DATE、TIME コマンドは、SET UP での設定を読み出すようになっています。SET UP での TIME 表示が最近のバージョンから有効になっていることに気がつきました。

0.29よりセットアップの割り込み解禁で、時計表示がリアルタイムで動くようになりました。


>ところが、SET UP において、DATE と TIME を一度設定しても、気がつくと妙な値に変わっています。DATE TIME 値が変わるのは、本来の予定としてどのような時なのでしょうか?
>電池交換時なのか、MENU で C.Basic を抜ける時なのか?

リセットすると2010/01/01 00:00:00になります。
電池交換でもリセットされた場合は同様です。
セットアップやDATE/TIMEコマンドを使って変更した以外で変わってしまった場合は、バグの可能性有りです。(^^;

[SHIFT]+[OPTN]のキーコード修正。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、RGB4b&RGB5いただきました!

>RGB4b と RGB5 は、スグに長押しのスキップ状態になってしまう問題があったので、修正して差し替えました。

確認しました。(^^)

>なお、RGB4b は省電力ですが、[SHIFT]を押した直後に[OPTN]を押しても効きません (C.Basicの仕様)。もう一度[OPTN]を押してください。

これは修正するのは無理かと思っていたら、CGシリーズでは[SHIFT]+[OPTN]のキーコードが出てくるのがわかったので、無事修正出来ました!
管理人様がこの部分を気に留めてくださらなかったら気が付かなかったかもです。
どうもありがとうございます。(^^)


ってことで、v0.29α差し替え修正です。
あと、フォントのセーブにおいてファイル名に付加される番号がおかしくなっていたのもこっそり修正しました。(^^;

C.Basic for CG v0.29α (純正ASCIIフォント差し替え可能になった版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG029.zip
・GetKey1/2/3において、[SHIFT]+[OPTN]を[OPTN]と判定出来るようになりました。

C.Basic for CG v0.29α の種々動作について

sentaro様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人のやすです。

ファイルリストが表示されている時の動作

・[OPTN]を押すとお気に入り登録のポップアップが現れます。

・[SHIFT][EXIT]を押すと File Reading ポップアップが現れます。

これらは、想定通りの動作でしょうか?


DATE/ TIME

DATE、TIME コマンドは、SET UP での設定を読み出すようになっています。SET UP での TIME 表示が最近のバージョンから有効になっていることに気がつきました。ところが、SET UP において、DATE と TIME を一度設定しても、気がつくと妙な値に変わっています。DATE TIME 値が変わるのは、本来の予定としてどのような時なのでしょうか?
電池交換時なのか、MENU で C.Basic を抜ける時なのか?

ツル様がカレンダーを作って見たいと言われていますが、仮に今日を表示させたい時は、DATE 機能がどういうものか知っておく必要がありそうです...というか、私の手元のプログラムでも、DATE と TIME を使って機能追加したいと思うものがあるもので...このあたりのご予定をお聞かせ頂けませんか?


Re: Re:Re: C.Basic for CG v0.29α (純正ASCIIフォント差し替え可能になった版)

setaro様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人のやすです。

フォント差し替え方法について、ありがとうございます。

ここで提案ですが、ミニフォントや外字などが一通り出来た後の話ですが、C.Basic の SET UP でキャラクタセットの切り替えが出きると使いやすくなると思いますが、如何でしょうか?

キャラクタ一覧のファンクションキーは、一番右の[F6]のみが余っています。これを例えば Fonts といった表示にしておき、[F6] (Fonts)を押すと外字キャラクタセットが表示されるような仕様はどうでしょうか?

取り敢えず、IMPACT の標準とミニフォント、そしてカナを国内版では暫定デフォルトとしておくというのはどうでしょうか?
キャラクタセットの解除と新たなキャラクタセットの登録の機能も必要でしょう。

こうなれば、外字作成もはかどる思うのですが、如何でしょうか?

RGB4b / RGB5 差し替え

ツル様、sentaro様、iron2様、CGユーザーの皆様


管理人のやすです。

RGB4b と RGB5 は、スグに長押しのスキップ状態になってしまう問題があったので、修正して差し替えました。


Check RGB Color Ver 1.4b
https://egadget2.web.fc2.com/archives/fx-CG50/RGB/RGB4b.html


Check RGB Color Ver 1.5
https://egadget2.web.fc2.com/archives/fx-CG50/RGB/RGB5.html
※ Casio fx-CGシリーズの 16 bit カラーに対応。
  R: 0~248 (8刻み)、G: 0~252 (4刻み)、B: 0~248 (8刻み)
  但し、直接キー入力する場合は、1刻みのRGB値を入力可能。



なお、RGB4b は省電力ですが、[SHIFT]を押した直後に[OPTN]を押しても効きません (C.Basicの仕様)。もう一度[OPTN]を押してください。


ということで、RGB4a と RGB5 をお勧めします。

Check RGB Color Ver 1.4a
https://egadget2.web.fc2.com/archives/fx-CG50/RGB/RGB4a.html


Re:整数のSyscall版について

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>こうなりませんでしょうか
>((a^2+b^2)/l)<L

はい!
ということで、式変更した整数SysCallを10002番で追加してみました。(^^)

(例)SysCall(10001,N,c,d,4000000,1000)
       ↓      ↓
(例)SysCall(10002,N,c,d,4000,1000)

http://pm.matrix.jp/CB/CBASICCG029.zip (差し替えです)

Re:Re: C.Basic for CG v0.29α (純正ASCIIフォント差し替え可能になった版)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、
>具体的に、ASCIIキャラクタに差し替えるには、どのような操作をすれば良いのか、教えて頂けませんか?

んと、
まずはこの4つのフォントをフォントセットを@Fontフォルダ、もしくはカレントフォルダに転送しておきます。
これだけ転送しておけばとりあえずフォント切り替え実験が出来ます。

 @LFONTA0.bmp (ASCII標準フォント純正)
 @MFONTA0.bmp (ASCIIミニフォント純正)
 @LFONTA1.bmp (ASCII標準フォントIMPACT)
 @MFONTA1.bmp (ASCIIミニフォントIMPACT)

プログラムで切り替えるには、
BmpLoad(@A1)
この一行でA1フォント=IMPACTに切り替わります。
LocateやText等で切り替わった表示になります。

元に戻すには純正フォントをデフォルトとしてロードすれば良いので、
BmpLoad(@A0)
です。

エディタ表示でもフォントを切り替えるにはセットアップで設定します。


ちなみに
C.Basicでのデフォルトフォントファイルは
 @LFONTA.bmp (ASCII標準フォント)
 @MFONTA.bmp (ASCIIミニフォント)
となっていますので、
 @LFONTA1.bmp (ASCII標準フォントIMPACT)
 @MFONTA1.bmp (ASCIIミニフォントIMPACT)
この2つのフォントを
 @LFONTA.bmp (ASCII標準フォント)
 @MFONTA.bmp (ASCIIミニフォント)
にリネームしてコピーしておくと 起動時からフォントがIMPACTになります。

フォントファイルが何も存在しない場合は純正フォントとなります。

仕組みとしては、末尾に数字の付かないファイルがC.Basicのデフォルトフォントファイルとなっています。
起動時はこのファイルを自動的に読み込みます。
起動後は、末尾に0~9を付けたフォントファイルが切り替えて使えるファイル名になっています。

最初はちょっと分かりにくいかもですが、慣れると簡単だと思います。(^^)

整数のSyscall版について

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

お正月中いろいろ時間をかけてためしたのですが
整数のSysCall(10001,N,c,d,4000000,1000)
の最後の1000の可変ですがそのまま1000の単位でいれると

While (i<N) And ((a^<2>+b^<2>)<4000000)
のAndの後ろの判定がおかしい挙動です。
こうなりませんでしょうか
((a^2+b^2)/l)<L

While中a,bの所はl*1000で

時間かかりすぎて検証がまだなんで
壁のVB仮想環境で虫取り中です。
なにか勘違いでしたらすみません。
連絡まで

これからもよろしくお願いします

Re: C.Basic for CG v0.29α (純正ASCIIフォント差し替え可能になった版)

sentaro様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人のやすです。


> 昨年末より外部フォントを使えるようにバージョンアップを進めて参りましたが、
> 標準搭載のフォントであるところの英数字、いわゆるASCIIキャラクタの差し替えが出来るようになりました。(^^)

具体的に、ASCIIキャラクタに差し替えるには、どのような操作をすれば良いのか、教えて頂けませんか?

C.Basic for CG v0.29α (純正ASCIIフォント差し替え可能になった版)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

昨年末より外部フォントを使えるようにバージョンアップを進めて参りましたが、
標準搭載のフォントであるところの英数字、いわゆるASCIIキャラクタの差し替えが出来るようになりました。(^^)

C.Basic for CG v0.29α (純正ASCIIフォント差し替え可能になった版)
http://pm.matrix.jp/CB/CBASICCG029.zip
・フォントデータのセーブが不安定だった不具合を修正しました。
・英数字のASCIIキャラクタのフォント差し替えが出来るようになりました。
 デフォルトでのファイル名は外字同様にそれぞれ、
 @LFONTA.bmp (ASCII標準フォント)
 @MFONTA.bmp (ASCIIミニフォント)
 となっております。
 コードで0x20~0x7Eまでの95キャラクタの差し替えが可能です。
 サンプルフォント(デフォルト、IMPACTを同梱しました。)

・フォントデータを読み出すGetFontにおいて、デフォルトの内蔵フォントを読み出す@オプションを追加しました。
(書式)GetFont(@”フォントキャラ”)->Mat A
(書式)GetFontMini(@”フォントキャラ”)->Mat A
(例)GetFont(@"A")->Mat A
 内蔵フォント"A"のビットマップデータ(18x24)が1ビット行列Mat A[18,24]に入力されます。

・エディタのフォントを外部フォントに切り替えられるようにしました。セットアップより変更できます。

・外部フォントの切り替えを行うための、BmpLoadにFontロードオプションを追加しました。
 外部フォントがそれ以降使用されます。
(書式)BmpLoad @G[フォントファイル番号]
(書式)BmpLoad @K[フォントファイル番号]
(書式)BmpLoad @A[フォントファイル番号]
 フォントファイル番号は0~9が指定できます。
(例)BmpLoad @A1
 @LFONTA1.bmp (ASCII標準フォント)
 @MFONTA1.bmp (ASCIIミニフォント)
 のフォントファイルが外部ASCIIフォントとして読み込まれます。

・フォントファイルのセーブにおいて0~9までのオプションを追加しました。
・BmpSaveにフォントデータのセーブ機能を追加しました。
(書式)BmpSave @G[フォントファイル番号]
(書式)BmpSave @K[フォントファイル番号]
(書式)BmpSave @A[フォントファイル番号]
(例)BmpSave @G2
 @LFONTG2.bmp (外字標準フォント)
 @MFONTG2.bmp (外字ミニフォント)
 現在の外字フォントファイルを外字フォント2としてセーブします。



今回のバージョンアップは外字と同様の仕組みなので目新しいところは何も無いのですが、
差し替える初期フォントがひとつも無いのでは動作確認も出来ないので、(^^;
とりあえず、PCからIMPACTフォントをそっくり借りてきてサンプルフォントその1としています。
その0は標準のデフォルトフォントとなっております。
@Fontフォルダに入れておいて下さい。

 @LFONTA0.bmp (ASCII標準フォント純正)
 @MFONTA0.bmp (ASCIIミニフォント純正)
 @LFONTA1.bmp (ASCII標準フォントIMPACT)
 @MFONTA1.bmp (ASCIIミニフォントIMPACT)


プログラムでフォントを切り替えるサンプルプログラムはとりあえずこの一行だけでIMPACTに切り替わります。
BmpLoad(@A1)

フォントを切り替えた後に、セットアップでエディタのフォントを切替ると、エディタがIMPACTに切り替わります。
IMPACTフォントのデザイン調整が全然足りてないので、そこのあたりはツル様、ひとつよろしくお願いいたします。(^^)

元のフォントに戻すには、
BmpLoad(@A0)
です。

フォントは今のところ0~9までの10種類使えます。
同様に外字もカナも10種類になります。



>FEINT
フォントは標準とミニで1セットなので、標準フォントとミニフォントの切り替えをワンタッチで出来るようにしてみました。
http://pm.matrix.jp/CB/FEINT24S.zip
[SHIFT]ミニフォントに切り替えます。
[ALPHA]標準フォントに切り替えます。
[EXE]ツル印表示から再スタートしますが編集データは破棄しません。


管理人様、RAINBO3いただきました!
縦いっぱいに広がると綺麗ですね。
今の横移動に縦移動の変化を加えるとさらに色が広がって65536色フルカバーできそうな感じですね。(^^)


ツル様、お年玉いただきました!
画面にカーソルキーが出てきてびっくり!
ちょこっとゼビウスのラスボスっぽいところがすごいです。(^^)
シンプルながらその描画方法にはちょっと唸ります。


iron2様、壁の100倍整数版見ました。
100倍までいけると1000倍もって期待してしまいますね。(^^)

ツル様からのお年玉

ツル様、sentaro様、iron2様、CGユーザーの皆様

管理人のやすです。


ツル様からお年玉を頂きました。ありがとうございます>ツル様

https://egadget2.web.fc2.com/archives/fx-CG50/TSURU/ArrowKey.html

1つのMLコマンドの後に

_DispVram:Getkey1

を追加して、1つづつ描画の様子を見てみると、なるほどこうするんだ、とよく分かりました。

面白いですね。



[修正] プログラム始め : RAINBO3 と RGB4b / RGB5

ツル様、sentaro様、iron2様、CGユーザーの皆様

管理人のやすです。


昨年の私の最大の勘違いは、fx-CGシリーズがフルカラーだと思い込んだことでした。
フルカラーは、24 bit カラーを指し、R、G、B それぞれが 0~255 の 8 bit (256階調) で、16,777,216 色で表示でき、PCなどではこれが普通です。

なので、fx-CGシリーズでも当然そうなんだと思い込んでいました。ところが実際は、16 bit カラーで、つまり 65,536色しかありません。人の目が色度の違いに最も敏感な G だけ 6 bit (64階調) で、R と B は 5bit (32階調)になっています。

fx-CGシリーズ 16 bit カラーでは、
・R:0~248(8刻み)
・G:0~252(4刻み)
・B:0~248(8刻み)
とかなり粗くなっています。

これを反映させたのが、昨年末に作成した RAINBO2.g3m でした。

虹色の順に色を並べると、RGB 値がどうなるのか調べてみたプログラム Ver. 2
https://egadget2.web.fc2.com/archives/fx-CG50/Rainbow/Rainbow2.html
※プログラム内のキャプッションを修正しただけの差し替え版


これは、左か右へ描画しっぱなしなので、左カーソルと右カーソルで行きつ戻りつしてRGB値をそのときのX座標を表示するように変更してみて、16 bit カラーでの虹風カラーパレットの様子を楽しめるようにしました。

今年最初のプログラミングです。

虹色の順に色を並べると、RGB 値がどうなるのか調べてみたプログラム Ver. 3
https://egadget2.web.fc2.com/archives/fx-CG50/Rainbow/Rainbow3.html

(fx-CG50 高精細カラー液晶 16ビット65536色に対応したバージョン)

 - 右矢印を押し続けると、虹色が順に表示される (変更)
 - 現在描画している位置を示すマーカーを追加し、マーカーの位置のX座標を表示 (変更)
 - 左矢印 でマーカーを移動させると、その線のRGB値を表示する (変更)
 - RGB(r, g, b)の値をリアルタイムで表示
 - RGB値が大きく切り替わるところで減速する
 - R と B は32階調 0~248、Gは64階調 0~525 が fx-CG50 の仕様、これに合わせた


単なる自己満足プログラムですが、RAINBO2.g3m からプログラム構造をチョコッと変更し、新年のウォーミングアップです。


実は、この 16bitカラーは、16 bitカラーの飛び飛びの値の間の RGB値を設定しても色が変わらないことを RGB4a.g3m で確認できます...というか、私はこれで実際に確認して納得しました。

なお、RGBa は作成当時の C.Basic が 省電力のために Getkey1 を使うとフル画面表示ができなかったので、Getkeyを使っていました。そこで、Getkey1 を使って省電力バージョンにした RGB4b.g3m を公開します。

Check RGB Color Ver 1.4b
https://egadget2.web.fc2.com/archives/fx-CG50/RGB/RGB4b.html



新年のウォーミングアップついでに、16 bitカラーのRGB値のみを指定するバージョンも作りました。

Check RGB Color Ver 1.5
https://egadget2.web.fc2.com/archives/fx-CG50/RGB/RGB5.html
※ Casio fx-CGシリーズの 16 bit カラーで取り得る RGB値のみになるように変更しました。
  R: 0~248 (8刻み)、G: 0~252 (4刻み)、B: 0~248 (8刻み)
  但し、直接キー入力する場合は、1刻みのRGB値を入力可能。


これは、あまり意味が無いかも知れないのですが、fx-CGシリーズが 16 bitカラーであることを思い起こす意味はあるかな?と思います。


以上、プログラミング始めでした!

Re: RAINBOW + Minifont

ツル様、sentaro様、iron2様、CGユーザーの皆様

管理人のやすです。


FEINT

ツル様やsentaro様のご説明で、FEINT はプロツールだとストンと理解できました。
ミニフォントや新しいフォント(外字) 作成のプロ用ツールなので、しばらくはツル様のお仕事の成果をユーザーとして楽しみにお待ちしております。

但し、FEINTは 18x18 や 18x24 のモノクロビットマップ作成ツールとして、ユーザーも自分のプログラム専用に作成できるという側面もあるので、使い込めるようになりたいと思います。


レインボウ

理科や科学は、その面白さや生活に役立つことを教わると、子供も興味を盛りますよね。娘さんはラッキーだと思います。
私は化学が専門でしたが、その面白さを他人に伝える難しさをいつも感じています。一般に退屈な暗記科目と思われ、これは全くの誤解だと思います。数学や物理の専門教育を受けた方は理論にピタッと当てはまらない混沌としたものだと思われる傾向があるようですが、実はそこにパズルのような面白さがあるのですが...


HSL

> 結論から言いますと、RGBだけで満足の行く虹の表現は無理です。クレヨンで虹を描くレベルしか出来ないと思います。
そのため、綺麗な描画にはHSLが重要となります。

HSLという単語は、以前 sentaro様へのコメントで書かれたのを見た時まで知りませんでした。ググってみると、
https://ja.wikipedia.org/wiki/HLS%E8%89%B2%E7%A9%BA%E9%96%93

こんなページが出てきました。

RGBとHSLは、互いに変換可能だと書かれているので、HSLが無ければ虹を描画できないという訳ではなさそうですが、RAINBOW2.g3m のように単純にRGBを順に変化させるだけでは色相だけを変化させたことになることが理解できました。

これでは、自然界の虹色を描画できそうになることは分かりました。

仮に虹が7色で構成されるとして、の色の切り替わり近傍で、彩度と輝度を変化させれば、綺麗な虹になりそうですね。

私には全く新しい知識なので、もう少し理解を進めたいと思っています。


ミニフォント

カレンダーなどミニフォントが活きるプログラムは多いですね!
カラーピッカーでもミニフォントを使いたいと思っています。

> そこで登場するのがMinifontによるカレンダーなのです。

サンプルプログラムとしてとても有益だと思いますので、公開して頂けると私だけでなく多くの方の参考になると思います。


Re:マンデルブロートビュワーを作りたいメモ(3)+ BALL

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、メモ(3)拝見いたしました!
各パラメータの違いによる画像の変化と速度の具合が一目瞭然によくわかります。
整数演算に比較すると実数演算はかなり重いものの10倍まで差が開いていないので、実数演算でもそんなに遅くはないといえるかもしれません。
逆に言えば、整数演算にしても劇的には速くならない上に、x40でドット絵になってしまうと今のアルゴリズムでは整数版は全体像を見るくらいしか使い道が無さそうですね。
アルゴリズム変更無しで考えると整数と実数は上手く棲み分けする必要がありますね。
とっても細かな検証をありがとうございました!


そして、BALLも早速にいただきました!
何が出てくるのかとちょっとドキドキでしたが、
何か右の方にちょこんと縦棒?が出ただけで…
あり?って思ったら、角度単位がDegになってたのをRadにしたら
5秒後に無事まあるい球体が出てきて、10秒で完全体に!
この画像を見ると、CGシリーズの画面の細かさを改めて感じます。(^^)
この球体がグリグリと動かせるようになるのも今後のC.Basicの課題のひとつになりそうです。


皆様、今年一年、大変お世話になりました。
これからもよろしくお願いいたします。

今年最後の暇つぶしサンプル

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

今年最後の暇つぶしサンプル
BALLを贈ります。
遅いですが、球に見えます。

'BALL
'ProgramMode:RUN
'Christmas Tree
ClrGraph
Back-Color @Black
Screen.g
_ClrVram
100->c
192->a
108->b
3.141592654/180->r
RGB(0,0,255)
For (-)90->w To 90 Step 10
c*cos (w*r)->x
c*sin (w*r)->y
For 0->h To 360
x*sin (h*r)->z
x*cos (h*r)->e
y*cos (30*r)+z*cos (60*r)->f
_Pixel a+e,b+f-24,1
Next
Next
_DispVram

For 0->h To 180 Step 10
For (-)90->w To 270
c*cos (w*r)->x
c*sin (w*r)->y
x*sin (h*r)->z
x*cos (h*r)->e
y*cos (30*r)+z*cos (60*r)->f
_Pixel a+e,b+f-24,1
Next
Next
_DispVram

あと2時間で2018年
今年は皆様に出会い、
又たいへんお世話になり
感謝しています。

年明け後、改めて挨拶させていただきます。

これからもよろしくお願いします。



マンデルブロートビュワーを作りたいメモ(3)

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

ちょと画像データ多くが作業に時間がかかりました。
壁に貼りましたので御精査お願いします。

管理人様、sentaro様
私の弱い心と甘えを受け止めていただきありがとうございました。
(何年かぶりにポロポロとつたうものがありました。)
チャレンジする時に今の問題は見えてたのが
甘く査定してた分もあり勢いでテーマにした感はあります。

ほんとに一歩一歩なんですが、これからも
ご指導よろしくお願いします。

sentaro様
ニューバージョンいただきました。
整数版の問題は悩んでる所なので
また少しお時間ください。

これからもよろしくお願いします。

Re:FEINT23S 良い仕上がりです! + RAINBO2.g3m

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>FEINT23S 動かしてみました。 良い仕上がり ですね!

ありがとうございます!
元々のツル様が作成された時点で完成度が高く、C.Basicの支援機能追加したぐらいでしたので、ほぼ100%ツル様の成果ですね。(^^)
その機能追加も、プログラムが管理人様仕様なので追加変更も簡単でしたし、言うことなしです。はい!(^^)

私的にツル様のプログラム記述であれ?って思ったところの、
F=1=>RGB(50,180,190)Text 29,0," "
=>コマンド後の記述ですが、これは
F=1=>RGB(50,180,190)
Text 29,0," "
これと同じ動作になるものとばかり思ったんですけど、そうではなくて、
RGB(50,180,190)Text 29,0," "
この部分が一つのコマンド群として認識されてることが新たな発見でした。

改めて、=>の仕様を確認すると、判定結果でコロンか改行までを読み飛ばすので、コマンド間にコロンを挟まないのがポイントですね。
これはC.Basicの裏技的な使用法発見かもしれません。(^^)


>アルファベットは、外字に含めて扱うものと思っていました。
>再定義というのは、独立した専用ファイルを用意するということですね?

はい!
そういうことになります。

外字はデフォルトで32文字分しか無いので、それで足りない場合は、カナ文字部分を再定義する必要があります。
カナ文字は外字の一部をカナとして使っているだけなので、差し替えできます。
それで数的には足りるとは思いますが、
エディタのリスト表示等の文字も変えてみたいという場合は、システムフォントを再定義するしか無いので、
外字同様に再定義したBMPファイルを用意する形になります。

>標準外のフォントで作成した場合、フォント種毎に用意が必要になりますか?
>1種類当たり、26文字ですよね?

アルファベットだけでもいいとは思うんですが、
文字コードでいうと、0~127までのASCIIキャラ127キャラ分になります。


>将来的に考えると、種類としては10種類にはなると思われます。数字も含めて。
>(8セグメントのデジタル数字も作りたい)

10種類Okです!
というかフォントBMPファイルの数だけ種類は増やせるようになると思います。(^^)



管理人様、RAINBO2、いただきました!
Gの幅が増えて階調がわかりやすくなりましたね。(^^)
これで6万色表示のカラーピッカーが完成!と思ったんですが、
よくよく考えると、横幅384ドットなので虹色バーだと最大384色しか表示できません。(^^;
6万色は32x64x32の65536色、つまり256x256なので、
2次元画像にしてやっとすべての6万色表示が出来ることになります。
幸い、256x256の画像は表示できますから、CGの液晶で6万色カラーピッカーが作成できそうです。
ツル様がおっしゃっておられたところのWindowsのカラーパレットの形ですね。


>現在の GetRGB( は、このままの仕様で問題ないですね!

了解です。(^^)

Re: Re:今年最後のプログラム - RAINBO2.g3m にアップデート

sentaro様、ツル様、iron2様、CGユーザーの皆様

管理人のやすです。

> 虹色のカラーバーはRGB値が順に増減しているので、RとBの変化を32階調、Gのところだけ64階調で変化するようにすればCGシリーズの6万色をフルカバー出来そうですので、カラーピッカーとして使えそうに思います。(^^)

fx-CG50 の液晶は、24ビットフルカラーでなくて、16ビットカラーなので、それに合わせた仕様に変更してみました。


虹色の順に色を並べると、RGB 値がどうなるのか調べてみたプログラム Ver. 2
(fx-CG50 高精細カラー液晶 16ビット65536色に対応したバージョン)

https://egadget2.web.fc2.com/archives/fx-CG50/Rainbow/Rainbow2.html

 - 右矢印や何か他のキーを押し続けると、虹色が順に表示される

 - RGB(r, g, b)の値をリアルタイムで表示

 - RGB値が大きく切り替わるところで減速する

 - R と B は32階調 0~248、Gは64階調 0~252 が fx-CG50 の仕様、これに合わせた

お恥ずかしいのですが、fx-CG50 の 65536色 16ビットカラーを、やっとハッキリと認識しました。起動時にグラフィックスモードにし、実際に RGB4a の2つの丸の色の違いを確認すれば、一目瞭然でした。

自分で作って、気がつかなかったことが分かるなんて、自分で言うのも妙ですが、結構なお役立ちプログラムですね!

ここで分かることは、RGB値は、R と B は、0~248 (8 刻み)、G は 0~252 (4 刻み) のみで設定色が変化し、それ以外の設定値に対しては、色の変化が無いことです。

なので、以前 GetRGB( の仕様について、私が的外れのことを申し上げていたこと、しっかりと認識しました。

現在の GetRGB( は、このままの仕様で問題ないですね!


FEINT23S 良い仕上がりです!

sentaro様、管理人様、iron2様、皆様

sentaro様
FEINT23S 動かしてみました。 良い仕上がり ですね!
終着駅が見えてきましたね!
code書き換えありがとうございました。
コメントアウトを増やし、後日見ると作った本人が分からなくなるという困った問題(笑)へも対処したつもりでしたので、より理解しやすくなっていたと思います。
この先は書き換えがないように留意いたします!
表示まで2.3にして頂き、お心遣いがとてもうれしいです。

>アルファベットも外字&カナ同様に再定義可能にするという手・・・
アルファベットは、外字に含めて扱うものと思っていました。
再定義というのは、独立した専用ファイルを用意するということですね?
標準外のフォントで作成した場合、フォント種毎に用意が必要になりますか?
1種類当たり、26文字ですよね?
将来的に考えると、種類としては10種類にはなると思われます。数字も含めて。
(8セグメントのデジタル数字も作りたい)

RAINBOW + Minifont

管理人様

Progの話しではないので恐縮ですが、虹についてです。
虹については、娘が中学の時に夏休みの自由研究のテーマが虹でした。
光については日頃より、可視光透過率だ光害(ビルの窓ガラスの反射光による悪影響など)で騒いでいたツル父さんの知識とテーマが合致して、中学生としては十分なレポートが出来ました。ま、結論から言いますと、RGBだけで満足の行く虹の表現は無理です。クレヨンで虹を描くレベルしか出来ないと思います。
そのため、綺麗な描画にはHSLが重要となります。

Minifont の活用でツルが真っ先に思ったのは、Minifontにょるカレンダー作成です。カレンダーなんて、身の回りに溢れていて、わざわざ作るものでもないのですが、カレンダーのアルゴリズムが面白くて、自分で間違いのない結果を表示させたいだけなのですが、5800Pの時から、9860GⅡでも作成を考えていました。
ツルが作るのなら、著名人の生年月日を入れて年齢をパッと表示する機能を加えます。世界の主な出来事も、今から何年前のことか出せるようにもしたいです。そんなそんなお肉をいっぱい付けた骨格を作りたいです。
CG50では、カラー表示が出来るので、土日を青赤にしての表示も、なかなかいいです。が、テキスト表示では文字が大きいと感じました。そこで登場するのがMinifontによるカレンダーなのです。
視力検査、心電図?、トレーラー、花火、MASIO、水面・・etc・が終わったらカレンダーを作りたいです。

Re:FEINT + RAINBOW

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

FEINT2.3Sに標準フォントでカーソル移動でエラーになっていた初歩的バグが見つかりましたので差し替えです。
これは最初の行列の確保ミスでした。(^^;

差し替えついでに、
2,4,6,8キーで1ドットスクロールを追加しました。
位置を微調整する場合に使えるかと思います。(^^)

http://pm.matrix.jp/CB/FEINT2S.zip



ツル様、
>フォントでは、Winに内蔵の数あるフォントの中でも、ツルのお気に入りはIMPUCTです。是非、CG50で作りたいです。

アルファベットも外字&カナ同様に再定義可能にするという手もありますがいかがいたしましょう?(^^)
一度フォントのフォーマットが固まると、キャラ増設する手間は大したことはありませんので…。


>とてもとても嬉しいです。よかったー! FEINT23では、FillRectによる記述を何度もチャレンジし、結局諦めて円にしました。決してツル印として表示させたい拘りがある訳ではありません(笑)
 
CG版移植時にg1mモードでの確認だけだったので発見が遅れました。
バルサンツルサンのおかげですね。(^^)


>あの円はツル印なんですか?

はい!ツル印以外には見えません!(^^)


>年末最後の最後にバルサンツルサン発動出来てよかったです。

まだまだバルサンツルサン発動の機会はいっぱいあると思います。よろしくお願いいたします。(^^)


>ツルはただ今、視力検査Prog作成中。

お!これはまた面白そうなアプリが!
PCでの視力検査は見たこと有りますが、電卓ではおそらく史上初ではないでしょうか?


>その後、心電図Progもやりたいのですが、矢印ボタンに指を乗せて、体の微弱電流を検出出来ませんか?(笑)

はい!出来ます!
と言いたいところなのですが、出来ません。(笑)
テンキーを同時押しでのタイミングで指先の微弱動作を測定することは出来るかもしれませんが…。


>LCDの上で卵焼き作れませんか?(笑)

母さんが作ります。(笑)

ペイントのカラーパレット

管理人様

Windowsに標準搭載の描画ソフト”ペイント”の色の編集で出てくるカラーパレットがありますね。あれは基本的ながら使い易いです。ご参考にしてください。

FEINT + RAINBOW

管理人様、sentaro様、iron2様、皆様

>FEINT は奥が深そうで・・・

sentaro様がおっしゃってますように、ただのドットエディタです。が、外字制作欲求のあるひと(ツル)には、無ければ発狂するくらい欲しいものです。

>このソフトの行き先、ユーザーとしてFEINTを使えば今後どのようなことができるようになるのか?

例えばですが、作成、登録、読込、修正が出来れば完成なので、現状はほぼ完成と言えると思います。元は、CG50で使えるフォント、Characterのレパートリーを増やしたいが始まりでしたし、奥は深くないですよ?・・・

ツルはFEINTを使って、グラフィックス版MASIOのタイトル表示等に使いたいです。また、人物のシルエットに作り、しゃがんだり立ったり、歩いたり走ったり、更に手間を掛けて、ラジオ体操をさせたいです。自作プログラムでの画面内を、人が歩き回ると楽しいと思います。

フォントでは、Winに内蔵の数あるフォントの中でも、ツルのお気に入りはIMPUCTです。是非、CG50で作りたいです。ツルは昔からレタリングもやっており、印鑑も彫ります。そんなことで、フォントには一家言あり、人類の最初の芸術はフォントだと思っています。だから、簡単なツールではあるが、FEINTは重要な位置づけでありますです。(あ、ズルが出ちゃった)

RAINBOW見ました。
ピッカーについては、先の投稿で語らせて頂きました。ProgでやれることはProgでやるように、PCでやるべきことはPCで良いと思います。CG50がいくら高性能とは言え、画像のEDITORはやはりPCの世界だと思います。
CG50では、せいぜいYOKO画像程度に対する加工くらいでしょう。とは言え、手元の電卓の画面で、YOKO画像の夜空に星が瞬き、窓の明かりが明滅し、道路では車の明かりが流れ、観覧車のイルミネーションが変化したら壮観だと思います。なので、ピッカー+PAINT機能が合体して進化しての先はそこまでだと思います。それを超えるならPCですが、PCでは明かりを動かすことがツルには出来ませんので、その意味でCG50(powered by sentaro母さん)は凄いと感じるのです。
RAINBOWの進化と活用については、CG50に画像EDITORとしての働きをどの程度やらせるのかと言うコンセプトによりますね。

sentaro様
>FillRectのバグを修正・・・
とてもとても嬉しいです。よかったー! FEINT23では、FillRectによる記述を何度もチャレンジし、結局諦めて円にしました。決してツル印として表示させたい拘りがある訳ではありません(笑) あの円はツル印なんですか?
年末最後の最後にバルサンツルサン発動出来てよかったです。

ツルはただ今、視力検査Prog作成中。
その後、心電図Progもやりたいのですが、矢印ボタンに指を乗せて、体の微弱電流を検出出来ませんか?(笑)
LCDの上で卵焼き作れませんか?(笑)

Re:今年最後のプログラム - RAINBOW.g3m

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

管理人様、RAINBOW.g3mいただきました!
一気に表示されずに、じわじわと表示が進むのが趣があって面白いです。
虹色のカラーバーはRGB値が順に増減しているので、RとBの変化を32階調、Gのところだけ64階調で変化するようにすればCGシリーズの6万色をフルカバー出来そうですので、カラーピッカーとして使えそうに思います。(^^)


>fx-CG50は、液晶の視野の違いで見える色合いが変わりますが、虹色を見てみると、上下だけでなく左右の角度の微妙な違いで虹色の見え方が大きく変化することが改めて明確に分かりました。

おそらく視野角は巷のカラー液晶の中でも一番狭い部類ですよね。(^^;
一昔前ならば、カラーというだけで凄いの一言ですが、今時のカラー液晶は視野角も広く綺麗なものばかりなので、ちょっと見劣りすることは事実ですね。
ま、でも、カラーであるがゆえの表現力はやはりカラーでないと出せないものなので、その特徴を把握して上手く使いこなしていくのが、e-Gadget流かなと思ってます。(^^)



>FEINT は奥が深そうで、なかなか深部には到達していません。

端的に言えば、ドットエディタなのですが、
C.Basic内臓の行列ドットエディタをフォントに特化したプロ仕様版という感じです。(^^)

FEINTは外字とカナフォントを自作してシステムに登録してシステムフォント同様に使えるようにするためのツールですので誰もが必要とするツールではないですが、
ツル様がオリジナル外字を作成されましたら、きっと外字機能を使いたくなるかもしれません。(^^)

FEINT23にサブプログラムが未対応なので、対応済みの下のリンクにあるFEINT23Sを試してみて下さい。

Re: SysCall実数版1億倍

iron2様、sentaro様、ツル様、CGユーザーの皆様

管理人のやすです。


壁にアップされた "プチまとめ" はとても勉強になります。
このような考察は、当ブログで1つの記事にしたくなるほどのまとまった内容で、しかも分かり易いです。
ブログ管理人としては、当ブログにふさわしい、というと僭越ですが、よくぞ投稿頂いたと感謝しております。

> 専門でない所なので現実的な実装するには
> 実験←→確認←→修正
> の繰り返しとなり、その投稿は皆様には
> 面白くないだろうなと常々感じてました。


このプロセスこそが、私が当ブログで記事を書く時の基本ポリシーなんです。
実際に追求して得られた結果は、誰も反論できない貴重な研究結果ですから...

さらに C.Basic の高速性を活かすにはとても良いテーマだです。
SysCall が場合によっては専用コマンドになる可能性も大いにあり、C.Basicの進歩に大いに貢献頂いていると思います。

以上2点から、間違い無くまさにど真ん中のテーマです。

> 私が心が折れそうなのは、ここの主題から
> この企み(マンデルブロビュワー)が離れて
> いるなと感じているからです。


これは杞憂です。

いつか、具体的なお手伝いをしたいとは思っていますが、たぶんそれは適わないかも知れないので、応援だけはさせてください。

Re: 今年最後のプログラム - RAINBOW.g3m

ツル様、sentaro様、iron2様、CGユーザーの皆様

管理人のやすです。


虹色の描画結果を壁に揚げておきました。RGB値連続変化の様子も併せて書いておきました。

今年最後のプログラム - RAINBOW.g3m

ツル様、sentaro様、iron2様、CGユーザーの皆様

管理人のやすです。

FEINT は奥が深そうで、なかなか深部には到達していません。最新の FEINT23 を頂いて動かしてみていますが、この手のソフトを殆どさわったことが無いので、このソフトの行き先、ユーザーとしてFEINTを使えば今後どのようなことができるようになるのか?がまだよく実感できていないのが正直なところです。

これは、おそらく私がこの分野にあまりにも無知なせいなのだと思います。

最新の C.Bsic for CG でミニフォントが使えるようになったとのことなので、それを使ってみようとプログラムを書いてみたのですが、肝心のミニフォントをどうやって使えば良いのか、パッと分かりません。今はあまり時間が無いので、いずれジックリと見てみようと思います。時間さえあれば、追いつけるとは思うのですが...


で、今年最後のプログラムです。

RGBは光の三原色の組み合わせで全ての色を一意に数値に置き換えられるもの、と頭では分かっています。
ただ、RGBの色指定がなんだかしっくりせず、RGB値と実際の色の関連性が実感として分からず、ピンと来ないのです。

そこで、私に馴染みのある連続して色が変化する虹色を表現するには、どのようなRGB値を連続変化させれば良いのか、チョットやってみたのが、このプログラムです。

虹色を作って見た - RAINBOW.g3m
https://egadget2.web.fc2.com/archives/fx-CG50/Rainbow/Rainbow.html


擬似的に虹色カラーパレットを描画する時、RGB 値がどのように連続変化させれば良いのかを試したものです;

 - 右矢印や何か他のキーを押し続けると、虹色が順に表示される

 - キーを離すと描画が止まります

 - RGB(r, g, b)の値をリアルタイムで表示

 - RGB値が大きく切り替わるところで減速する


fx-CG50は、液晶の視野の違いで見える色合いが変わりますが、虹色を見てみると、上下だけでなく左右の角度の微妙な違いで虹色の見え方が大きく変化することが改めて明確に分かりました。

実際の光の分光結果とは異なり、擬似的なものですが、眺めてチョット面白いので、公開します。

このカラーパレットは、ひょっとしてカラーピッカーに役立つものでしょうか?>ツル様

C.Basic for CG v0.28α (FEINT支援コマンド追加+MLコマンド修正++++版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

バルサンツルサン様より発見されましたFillRectのバグを修正しました。(^^)
あと、FEINT2への支援コマンドとして消去しない行列の再初期化モードを加えました。

C.Basic for CG v0.28α (FEINT支援コマンド追加+MLコマンド修正+++版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG028.zip
・RectおよびFillRectがFX版解像度対応のままになっていたのを修正しました。

・行列の初期化において、すでに確保された行列領域を再初期化する場合に0クリアしないようにすることが出来るようになりました。
(ただし、最初にその行列で使用する最大領域を確保しておく必要があります。)
(書式){12,20}->Dim Dim Mat A
(例)[[1,2,3]][4,5,6]]->Mat A
   {2,2}->Dim Dim Mat A
 Mat Aの内容は[[1,2][3,4]]となります。



ツル様、最新版Ver2.3、ダウンロードさせていただきました!
管理人様、ありがとうございます!

Ver2.3は起動時のフォント選択でツル印がクルクル回るのがすごすぎです!(^^)
ってことで、サブルーチン側を早速ミニフォントに対応させました。
ついでに、AとBのフォントデータをそれぞれ行列A,Bで保持するようにして、
フォント画面の更新部分をFEINTSB0に分離してみました。
http://pm.matrix.jp/CB/FEINT2S.zip
ファイル名が同じなので差し替えです。
同名のサブルーチンはFEINT2.3Sのみ対応になっています。

詰めが甘いので細かな部分はバグあるかもしれません。(^^;


>FillRect が怪しいです。 X座標値を大きく変更しても、逆に小さくなります。
>もしかしたら、バルサンツルサンかも知れません。

もしかしなくても、バルサンツルサンでした!
ありがとうございます!



iron2様、1億倍画像拝見いたしました!
どこまで拡大しても画像が出て来るというのが不思議ですが、
あのマンデルブロート画像の最深部はこうなっているのかと、
もはや、電子顕微鏡の世界に入りこんだような感じがすごすぎますね!(^^)


>私が心が折れそうなのは、ここの主題から
>この企み(マンデルブロビュワー)が離れて
>いるなと感じているからです。

全然離れおりませんです!
C.Basicには最終的にはコンパイラ版が控えてますが、それ用のアプリとしては最適な部類ですよね。
マンデルブロビュワーがC.Basicアプリである限り、それを実用的な速度で動かすためにC.Basicの進化への大きな原動力になりますので、
これからもひとつよろしくお願いいたします。(^^)

といってもコンパイラはすぐにはできないので、(^^;
マンデル支援のSysCallの整数版ですが、
今回のアップデートより下駄を履かせる倍数を指定できるようにしてみました。
(引数はN,a,b,発散リミット、下駄)戻り値iとなっております。)

(例)SysCall(10001,N,c,d,4000000,1000)
これは従来と同じ指定です。最後の引数は省略すると1000になります。

以下がSysCallで実行している部分ですが、
--------------------------
0->a
0->b
0->i
While (i<N) And ((a^<2>+b^<2>)<4000000)
Isz i
a->s
((a^<2>-b^<2>)/1000)+c->a
(((2*s)*b)/1000)+d->b
WhileEnd
--------------------------
この1000の部分を可変に出来るということになっています。

FillRect バルサンツルサン?

sentaro様

年の瀬のお忙しい中、恐縮です。
FillRect が怪しいです。 X座標値を大きく変更しても、逆に小さくなります。
もしかしたら、バルサンツルサンかも知れません。

=====

管理人により、別エントリーに投稿されたものを、ここにコピーしました。

SysCall実数版1億倍

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

壁にマンデルブロ集合の1億倍画像を貼りました。
時間の制約がなければ、まだ限界ではありません。

すべてはCasioのハードのおかげと
C.BaisicCGおよび追加コマンドのおかげです。
このデバイスでここまで潜れたことは
もの凄い事だと思います。
(FPUもAVXもCUDAもないのに)

後は整数版のドット絵対策と現実に即した
倍率見極めができれば、インターフェース
に渡す変数が決まるので、先に進めると思います。

最後にお忙しい中、管理人様には温かく見守って
いただきありがとうございます。

私が心が折れそうなのは、ここの主題から
この企み(マンデルブロビュワー)が離れて
いるなと感じているからです。
専門でない所なので現実的な実装するには
実験←→確認←→修正
の繰り返しとなり、その投稿は皆様には
面白くないだろうなと常々感じてました。

しかしながら、ここまでの支援を無駄に
出来ません。
たいしたものには、ならないかもですが
完成までがんまります。
(横から眺めて、たまに(ちょっとまて!)突っ込みください(笑))

これからもよろしくお願いします。

Re: いまの俺のパワーは10万パワーだ

iron2様、sentaro様、ツル様、CGユーザーの皆様

管理人のやすです。


フラクタルは、現実の流体の挙動を理解するための解析手法として用いられた事例を見聞きしたことがあります。
横で見ていて、なんだか不思議な感じがしていましたが実際に現実をうまく説明することから "部分の無限回帰が全体を作るのが神の思し召しなんだ"と、妙に感動しました。

私などの手が及ばないくらい、既に遠くまで進んで居られるようなので、引き続き横から覗いて楽しませて頂こうと思っています。


Re: ★ FEINT 最新版は Ver2.3

ツル様、sentaro様、iron2様、CGユーザーの皆様

管理人のやすです。


今日(正確には昨日)、午後まで爆睡、その後自宅の年末故のあれこれを片付けて、やっと今PCを開いています。

ご迷惑をおかけしてすみません。ツル様からお送り頂いた FEINT Ver 2.2 と 2.3 の両方のダウンロードリンクを作りました。


外字フォント作成ツール FEINT Ver 2.2
https://egadget2.web.fc2.com/archives/fx-CG50/TSURU/FEINT22.html


外字フォント作成ツール FEINT Ver 2.3
https://egadget2.web.fc2.com/archives/fx-CG50/TSURU/FEINT23.html



みんなで力を合わせてプログラムを作るという楽しさ、これは素晴らしいですね!昔のパソコン通信の時代にたっぷり味わったのを、今思い出しています。

自分以外の誰かが使ってくれる、要望を貰って実現して...これも楽しいです。

自力で解決できない時、ユーザーが助けてくれる、仲間が助けてくれる、これも最高です。

ここまでは、私も十分経験してきました。

今回、開発環境の C.Basic が自分の目的のためにコマンドが追加される、こんな経験はありません。おそらく先ずないでしょう。それが今目の前で起きています。これはチョット凄いことだと思います。

我々は、そんな凄い状況を共有しています!

sentaro様に感謝!

ツル様に感謝!

iron2様に感謝!

We've got lovely friends. What a wonderful days!

Re:いまの俺のパワーは10万パワーだ + ★ FEINT 最新版は Ver2.3

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
10万パワーのマンデルブロありがとうございます!
CG50ノーマルにて約960秒、16分かかりました。
時間がかかった分、出てきた絵が超絶な綺麗さでちょっと感動です。(^^)


>ソースのDのところの距離の桁をみてください。
>整数版で可能でしょうか?

整数で扱える範囲が-2147483648~2147483647までなので、
自乗計算込でこの範囲に抑えるためにはa,b,c,dの各数値はそれぞれ46340以下に抑える必要がありそうです。
ということは今の5倍のx5000倍で数値を扱うのが限界だと思われるので、ちょっと不可能な感じがします。
オーバーフローしない計算方法があれば、というところです。(^^;



ツル様、
>FEINT22(Ver2.2)は、nesting error が見つかり修正しております。
>現在の最新版は FEINT23(Ver2.3)です。

>※codeにVer2.3 と記述しています。画面での表示はVer2.2のまま。
>ご利用の際はご確認願います。

了解しました!(^^)

★ FEINT 最新版は Ver2.3

皆様

FEINT22(Ver2.2)は、nesting error が見つかり修正しております。
現在の最新版は FEINT23(Ver2.3)です。

※codeにVer2.3 と記述しています。画面での表示はVer2.2のまま。
ご利用の際はご確認願います。

管理人様へは両方渡っております。

いまの俺のパワーは10万パワーだ

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

ツル様
壁にご質問への珍答をご用意しました。

皆様へ
マンデルブロ集合1倍の先端部分の10万倍拡大画像まで確認しました。
fx-cg20 250MHz ref 5  SysCallの実数版の383x215doで300秒程度?
PCにUSB繋いで描画したほうがよさげです。
多分倍精度で100万倍が限界なような気がします。

sentaro様
ソースのDのところの距離の桁をみてください。
整数版で可能でしょうか?

ソースを貼りここを汚しますが、ご容赦ください。

'MANDLS3
'ProgramMode:RUN
' from TI-Planet
' https://tiplanet.org/forum/viewtopic.php?p=224371
Back-Color @Black
Screen.g
_ClrVram
512->N
100000->l
319*l->m
215*l->n
For 0->x To 383
For 0->y To 215
0->a
0->b
((2.7*x)/m)-1.48320->c
(((-)1.87*y)/n)+0.0000090->d

10->L
SysCall(10000,N,&c,&d,&L)->i
'0_->_i
'_While _(i<N)_ And _((a_^<2>_+b_^<2>_)<4)
'_Isz _i
'a_->_s
'(a_^<2>_-b_^<2>_)+c_->_a
'((2*s)*b)+d_->_b
'_WhileEnd_
Int ((255*i)/N)->g
RGB(1.0*g,5.0*g,8.0*g)
_Pixel x,y-24,1
Next
_DispVram
Next

これからもよろしくお願いします


Re:FEINT 座標用変数 FをDへ!+SysCall実数拡大版

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>FEINTにてMini font EDIT 対応のために、Font modeの区別用に 変数 F を当てました。

了解です!
サブプログラムは引数付きにしてローカル変数を使えば変数消費は無いので、2.2対応版ではそのようにしておきます。(^^)


iron2様、
SysCall実数拡大版画像ありがとうございます!
拡大するとますます綺麗な画像になりますね。
整数版でもこの画像に近いところで出てくると良いのですが、実数版でもパフォーマンス良ければなんとかなりそうですね。(^^)

SysCall実数拡大版

管理人様、sentaro様、ツル様、CGユーザーの皆様
iron2です。

SysCall実数拡大版の画像を壁に貼りました。

確認ください。

今のところ実数版はかなり拡大できるようです。
また計算時間も発散が多くない箇所であれば
1倍の全表示よりはやく表示できます。

これからもよろしくお願いします。

FEINT 座標用変数 FをDへ!

sentaro様

FEINTにてMini font EDIT 対応のために、Font modeの区別用に 変数 F を当てました。
従来 一部の位置座標に用いていた EとFが、Ver2.2以降 EとDへ変更となっております。整合性のために必要ですね。ご連絡しておけば良かったです。

ウォーキング中につき報告のみ

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

整数版はX20でどうしてもドットが目立ちます。
こちらはもう少し工夫がいるようです。

次に実数版はX20でも美しい画像を得る事ができました。
帰宅したら実数版の投稿します。

連絡まで

これからもよろしくお願いします。

C.Basic for CG v0.28α (FEINT支援コマンド追加+MLコマンド修正+++版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

フォントコマンドの仕様がちょっと使いにくかったので、修正しました。
ツル様の、変身キャラコメントにて気が付きました。
ありがとうございます!(^^)

C.Basic for CG v0.28α (FEINT支援コマンド追加+MLコマンド修正+++版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG028.zip
・フォントデータの読み出しと設定を行うGetFont(とSetFontコマンドにフォントコードに加えて文字列でキャラ指定出来るようにしました。
(書式)GetFont(”フォントキャラ”)->Mat A
(書式)GetFontMini(”フォントキャラ”)->Mat A
(例)GetFont("A")->Mat A
 フォント"A"のビットマップデータ(18x24)が1ビット行列Mat A[18,24]に入力されます。
(例)GetFontMini("A")->Mat B
 フォント"A"ののビットマップデータ(16x24)が1ビット行列Mat B[16,24]に入力されます。

(書式)SetFont ”フォントキャラ”,Mat A
(書式)SetFontMini ”フォントキャラ”,Mat A
(例)SetFont "@",Mat A
 Mat Aのフォントデータがフォント"A"のデータとして設定されます。
(例)SetFontMini "@",Mat B
 Mat Bのフォントデータがミニフォント"A"のデータとして設定されます。
(※指定するフォントキャラクター"@"は外字またはカナフォントのみ可能です。)

今回の仕様追加により、フォントデータをLoad/SaveするFEINTSB1/FEINTSB2とも簡潔になりましたので差し替えです。
http://pm.matrix.jp/CB/FEINT2.zip



iron2様、マンデルブロートビュワーを作りたいメモ(2)拝見いたしました!
SysCallを使ったマンデル支援コマンドの効果の検証結果をありがとうございます!(^^)
実数版でも3.8倍だと結構速くなった感はありますね。
とはいえ、10倍速になる整数版がやはり効果てきめんなので、ドット絵にならない範囲で使えるとよいのですが…。

これ以上の高速化となると、アルゴリズム変更しか無さそうですね。

マンデルブロートビュワーを作りたいメモ(2)

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

壁にマンデルブロートビュワーを作りたいメモ(2)
を貼りました。

御精査お願いします。

よろしくお願いします。

Re:FEINT Loadでの変身キャラ達

ツル様、こんにちは!

>例えば、太字のeをLoadすると-が表示されます。これをLoad出来ていないと理解しているのですが、出来てはいるという理解をすればいいですか?
≡(合同)はイ、●(黒丸)は斜線に、¥は@にと、変身キャラが多くあります。

あ、それはたぶん、最初にアップした時の不具合っぽいですので、
修正済みFEINTSB1をzip内より再インストールしてくださいませ、(^^)
http://pm.matrix.jp/CB/FEINT2.zip

FEINT Loadでの変身キャラ達

sentaro様 こんにちは。

>んと、Load出来ないCharacterはどれになるでしょうか?

例えば、太字のeをLoadすると-が表示されます。これをLoad出来ていないと理解しているのですが、出来てはいるという理解をすればいいですか?
≡(合同)はイ、●(黒丸)は斜線に、¥は@にと、変身キャラが多くあります。

Re:FEINT22(FEINTのVer2.2)お送り致しました

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>現時点までに、標準仕様としてNormal fontとMini fontとの片方を選択して
>EDIT出来るようにしました。
>両方共、原寸大表示も出来ています。

順調にバージョンアップしてますね!(^^)


>1. サブルーチンとの使用変数の関係かと思いますが、BへLoadしてAへCopy
  した後の、カーソル移動領域の制限が出来ていない。

BへLoadしたときのフォント情報はMat Bにすべてあるので、
縦横サイズ情報は、FEINTSBMのように行列Bのサイズを取得することでそれを利用できそうです。


>2. 同様に、Copy時のEDIT画面の表示サイズをMiniに対応させる。

BからAへは、そのサイズ情報込みでコピーする必要がありますね。


>3. Load出来ないCharacterの対処。

んと、Load出来ないCharacterはどれになるでしょうか?


>4. ミニのサイズは取り敢えず16?18にしています。幅検出用の行を含め、
>  マージン部の再確認をさせてください。

BMPに保存される幅検出用の行は、BmpSaveコマンドで自動的に付加されますので、
エディタ側ではフォントピッタリサイズでの編集でOkです。
ミニフォント設定に必須なのは横幅情報なので、それ専用の変数を用意するだけで良さそうです。


>ツルは、まだSaveについては未確認です。

フォントのBmpSaveは何やらおかしな動作が残ってる気配なのでちょっと調査してみます。(^^;



iron2様、
>充電式EVOLTA 950mAh BK-4HLD です。

お!950mAってことは、現在の単4充電池の最高峰ですね!
CG20のフルパワーだと150mA前後までいってしまうので、連続6時間ってところでしょうか。
アルカリのEVOLTAならもっといきそうですけど、その価格を考えるとかなり不経済ですよね。
ファイル読み書き含めて不具合なく動作しているという状況でしたら、
禁断の(というわけでもないですが、(^^;)USBパワーで使うというのもありですね。
これだと、電池の心配はほぼ無くなります。


>Battry コマンドが増えてることを確認しました。

ご確認ありがとうございます!
消費電力が多くなりがちのCGシリーズでは必須の機能ですよね。


>マンデブロ他の人のプログラムとか、取れるのはとって
>どうやってるのか勉強してますが、知れば知るほど
>電卓というデバイスの中で再現しようとするとたいへん
>だなと実感してます。

解像度とCPUパワーの兼ね合いが難しいところですよね。
C.BasicではFX版において管理人様仕様のライフゲームを専用コマンドにて高速化していますから、
今回もiron2様仕様のマンデルブロートビュワーを支援コマンドでより高速に実用的な速度が出るようにしていきたいと思います。(^^)


>sentaro様の支援コマンドが折れそうな心を繋いでいます。
>sentaro様のご賛同、また開発のモチベになる様に
>プログラムだけでなく、説明資料もいやがらず投稿
>しますので、よろしくお願いします。

ありがとうございます!
こちらこそ、よろしくお願いします。(^^)

re:EVOLTA と 充電式EVOLTA

管理人様、sentaro様、ツル様、CGユーザーの皆様

おはようございます。iron2です。

ツル様、sentaro様
>・・・EVOLTAが死にました。
記載が具体的でなかったです。空になりました。
充電式EVOLTA 950mAh BK-4HLD です。
充電器は BQ-CC55 急速充電タイプ(単3、単4用)
(エボルタ/エネループ両方対応)
充電器には780mAhタイプが4本ついてました。

ランニングコストは充電式が圧倒的ですが
パワーや持久力はアルカリが一歩強い感じです。

sentaro様
>C.Basic for CG v0.26α (iron2様支援バッテリアイコン表示+電圧読み出しコマンド追加版)差し替えです。

遅いですが、ありがとうございました。
Battry コマンドが増えてることを確認しました。

マンデブロ他の人のプログラムとか、取れるのはとって
どうやってるのか勉強してますが、知れば知るほど
電卓というデバイスの中で再現しようとするとたいへん
だなと実感してます。
sentaro様の支援コマンドが折れそうな心を繋いでいます。
sentaro様のご賛同、また開発のモチベになる様に
プログラムだけでなく、説明資料もいやがらず投稿
しますので、よろしくお願いします。

これからもよろしくお願いします

FEINT23(FEINTのVer2.3)送信しました

管理人様

送信済みFEINT22に バグがあり、先程、デバッグ済み
FEINT23 (Ver2.3)をお送り致しました。宜しくお願い致します。

EVOLTA と 充電式EVOLTA

iron2様、こんにちは。

>・・・EVOLTAが死にました。

ご購入されたようですが、買われましたのは、"充電式EVOLTA" ですね?
上のコメントでの、亡くなられたのは充電式のほうですか?違うほうのEVOLTAですか?両者は容量面でも大きく違いますので、知りたいと思いました。
せっかくの情報ですので、両者分けてご記載頂けるとありがたいです(笑)
(流石のEVOLTAでも、充電式で単4型となると、単3型に比べると容量が雲泥の差で、ツルでさえ、ほぼ毎日充電しています・・・)

因みに、充電器はどれをお使いですか?

数日前、充電式EVOLTA単3型3本を、洗濯機で洗ってしまいました。
あー綺麗になった!って、おい違うだろー!
洗濯機の中からサルベージして、急いでタオルで水分を取り、半分諦めて充電して・・・今も元気に働いてくれてます。ん?本当に大丈夫なのかな?

FEINT22(FEINTのVer2.2)お送り致しました

管理人様、sentaro様、iron2様、皆様

sentaro様より、FEINTへの絶大な以下のご支援を頂き、その時点でのVreを2.0とします。
>追加コマンドのサンプルとして、
>FEINTに組み込んでみました。
>[F1]:編集済みフォントを含む全フォントデータのセーブ
>[F2]:1フォントデータを読み出してBに展開。
>[F3]:BからAへのコピー
>の機能が使えるようになっています。(^^)

現時点までに、標準仕様としてNormal fontとMini fontとの片方を選択して
EDIT出来るようにしました。
両方共、原寸大表示も出来ています。

sentaro様 お互いの共通認識として、今後の作業内容を備忘録としても記します。
1. サブルーチンとの使用変数の関係かと思いますが、BへLoadしてAへCopy
  した後の、カーソル移動領域の制限が出来ていない。
2. 同様に、Copy時のEDIT画面の表示サイズをMiniに対応させる。
3. Load出来ないCharacterの対処。
4. ミニのサイズは取り敢えず16✕18にしています。幅検出用の行を含め、
  マージン部の再確認をさせてください。
ツルは、まだSaveについては未確認です。

※Ver2.2の妙な表示について、苦情 絶賛受け付け中!(笑)

Re:新版いただきました + 空白問題→納得!

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、
>のいつものフル描画で12秒ちょと
>10倍以上高速化しています。

実数版だとそれほどでもないんですけど、整数版だと一気に高速化しますね。


>このやり方だと計算時間が膨大になり
>Y0-215,X0-40ドットぐらいでEVOLTAが死にました。

うわ、EVOLTAでさえも、マンデルブロおそるべし。。。
ちなみに充電式でしょうか?


>そうすると拡大したい点を中心に383X215の領域のみ
>描画すればループの数は変わらないので
>今回の高速化が生きます!

少しでも時短出来れば燃費が良くなるので、今後、マンデブロートビュワーに併せて、マンデルブロ支援コマンド化してみたいと思います。(^^)


ツル様、
>sentaro様、これは必須の予備知識ですね!知っていればそれなりに上手く
>扱え、バグなどと言うこともなし・・・すみませんでした。

空白のミニフォントが幅狭すぎなんですよね。
FX版の空白は3ドット、つまりCG換算で9ドットありますから、FX版のミニフォントを使ったプログラムをそのまま持ってくると消去しきれないことが多々あります。(^^;

空白はシステムにデフォルトで備わってるフォントなので、CG版での仕様と割り切るしかないですね。(^^;


>バルサンツルサンの呼称取りやめ!効かなかったから(笑)

まだ新たなバグ発見があるかもしれないので、その時まで保留にしておきます。(^^)

Re:v0.28α (MLコマンド修正)空白問題→納得!

sentaro様、管理人様、iron2様、皆様

>デフォルトの空白の横ドット数がわずか7ドットしか無いために起こる現象

sentaro様、これは必須の予備知識ですね!知っていればそれなりに上手く
扱え、バグなどと言うこともなし・・・すみませんでした。
バルサンツルサンの呼称取りやめ!効かなかったから(笑)

新版いただきました

管理人様、sentaro様、ツル様、CGユーザーの皆様

sentaro様
新版いただきました。
N=100,リミット4000000
RGB(g*2,g*5,g*8)
のいつものフル描画で12秒ちょと
10倍以上高速化しています。

すこし勘違いもありまして簡単に言うと
問題点 速度と精度
整数版で単純に倍率だけ拡大すると(例えば10倍)
複素数平面上の点C,Dのメッシュが
粗いため拡大していくとドット絵になるのです。

そこで単純にXYループを10倍して
pixel分率を10倍して
描画時のx/10 ,y/10 とすると
拡大した平面を液晶の平面に投影できます。
このやり方だと計算時間が膨大になり
Y0-215,X0-40ドットぐらいでEVOLTAが死にました。
(保存画像が膨大な計算時間)

そうすると拡大したい点を中心に383X215の領域のみ
描画すればループの数は変わらないので
今回の高速化が生きます!

ネタ晴らししたのでプチまとめ2の効果のほどは
わかりませんが、もう少しお待ちください。

これからもよろしくお願いします。

C.Basic for CG v0.28α (FEINT支援コマンド追加+MLコマンド修正++版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

細かなところでバグが見つかってますので修正です。

C.Basic for CG v0.28α (FEINT支援コマンド追加+MLコマンド修正++版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG028.zip
・BMPファイルのRenameとCopyに対応しました。
・ファイルモードでのBMPファイルの表示の不具合を修正しました。

・ReadGraph(、DotGetコマンドにおいて、g3mモードでも1ビットサイズの行列への取り込みが出来なかったのを修正しました。
(例)ReadGraph(1,1,16,24)->Mat A.P
(例)DotGet(1,1,16,24)->Mat A.P

・BmpSaveコマンドにおいて、g3mモードで1ビットサイズの保存が出来るようになりました。
(例)BmpSave "TEST",Mat A



iron2様、
いつも先走ってしまってすみません。(^^;
プチまとめ2以降もお待ちしております!


正式なコマンドではないので、こそっと…。(^^;
http://pm.matrix.jp/CB/MANDELS.g3m
http://pm.matrix.jp/CB/MANDELIS.g3m
オリジナルから関数部分だけ置換しています。
(引数はN,a,b,発散リミット、戻り値iとなっております。)
今回のアップデートより使用可能です。

re:Re:マンデブロートビュワーを作りたい(1)

管理人様、sentaro様、ツル様、CGユーザーの皆様

またもウォーキング中のiron2です。

sentaro様
>これで、マンデルブロ支援コマンドがはっきりと見えてきました!
まだプチまとめ2以降があるじゃに~
問題点がいっぱいあるじゃに~
ちょとくじけそうじゃに~
こういうのを書きたくなくて、ここを覗いたはずなんだが~~~

>マンデブロートビュワーの完成が楽しみです!(^^)
ツル様につづき背骨が折れそうになるかもですがーーー

ツル様
>まだ進化の途中です。Save Loadが出来ると活用できますね!
うん!いいですね。待ってます。
ツル様や管理人様のコード
ほんとわかんないです(笑)
戦闘のプロ(鉄也)様達にお任せして
使えそうなコードをお借りします。

これからもよろしくお願いします。

Re:マンデブロートビュワーを作りたい(1)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

iron2様、プチまとめ(1)拝見させていただきました。

すっごく分かりやすいですね。
これで、マンデルブロ支援コマンドがはっきりと見えてきました!

マンデブロートビュワーの完成が楽しみです!(^^)

マンデブロートビュワーを作りたい(1)

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

プチまとめ(1)を壁に貼りました。

間違いもあると思います。
御精査お願いします。

よろしくお願いします。

Re:v0.28α (MLコマンド修正)空白バグ調査依頼

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>Textで記述した文字表示を、同じ座標を指定して"  "空白上書きで消す際、
>表示2文字を消すには空白3個が必要になります。長い文字列を消す場合は沢山の空白が必要になります。

これは、ミニフォントはプロポーショナルフォントなので、
デフォルトの空白の横ドット数がわずか7ドットしか無いために起こる現象です。
純正のCasioBasicでも同じくそうなってますので、ミニフォントの仕様ということになります。

これを解消するためには、外字で幅広の空白を作成して登録しておくのがいいかもしれません。
他の方法としては、カナ文字の一番最初の文字、コードで言うと0xFFA0ですが、これも空白キャラです。
これは横12ドットで作成してあります。
ミニフォントは最大横16ドットまで作成できますので、
外字登録しておけば空白消去問題は解決すると思います。(^^)

ただ、プログラムの汎用性を持たせるためには幅の狭い空白も仕様と割り切ってそのまま使用するのが良さそうですが、他の手段としてはTextではなく、FillRectで消すか、というところですね。(^^;


http://pm.matrix.jp/CB/FEINTSBM.g3m(ミニフォントサイズ表示プログラム)
http://pm.matrix.jp/CB/FEINT2.zip(↑を含めてzip化)

このプログラムで横サイズチェックをすると、
%が横15ドットで最大サイズの模様です。


>バルサンツルサンと呼んでください(笑)

はい!そう呼ばせていただきます。(笑)


>FEINTがA画面B画面共に表示されると、作者として快感です。
>素晴らしい連携プレーでしたね!

ツル様が作成された時点で、すでに機能予約されていたところに上手くハマった感じですよね。
こちらこそ、ありがとうございます!(^^)


>HVY8 初見の所見
>で、様々な案はあると思いますが、ツルが考えるカーソルについてですが、
>拡大表示式が便利だと思います。

1ドットの確認にはルーペ必須なのでこれは大賛成です!
だんだん本格的に使いやすくなっていきますね。(^^)


管理人様、ご多忙の中、ありがとうございます。(^^)

Re: FEINT書き書き

iron2様、皆様、こんにちは。

>FEINTで★書き書きしてみました!
お役に立てると、とても嬉しいものです! 操作は直ぐに慣れると思います。

>ちょと幅が狭かったですが★書けました!
左右対称ものだと、幅ドット数は奇数がいいですよね。

>いまので結構遊べますよ!
ん・・・遊ぶと言うか、楽しんでください!

>いつか、24×24 or 25X25があったらうれしいかなぁ~
sentaro様の御心で・・・

>今のもプロ仕様、こんなの電卓のフリーウエアやシエァウエアで見たことありません。

なんたって、作ったのがプロですから! うそですから!(笑)

まだ進化の途中です。Save Loadが出来ると活用できますね!

v0.28α (MLコマンド修正)空白バグ調査依頼その2

sentaro様、管理人様、iron2様、皆様

sentaro様
やはり、空白がなんかおかしいです。
FEINTの、code始まりから 6 Skip↓で出てくる▲ ▼ですが、その下のA  Bとほぼ同じ位置に表示されるのに、間隔がやけに広いです。このことは、記述の時から分かっていましたが放置していました。何か、空白がらみで色々ありそうです。

Locate と Eng のいたずらかも?

ツル様、sentaro様、管理人様、iron2様、CGユーザーの皆様

管理人のやすです。

まだ沈んだままですが、ひょっとして..ということで、キチンとFEINTのソースを調べずにコメントすることになりますが、気になったので...

的外れならお許しください。

FEINTをまだ起動したことがなく、ソースも拝見していない状況ですが、ツル様の空白の問題が 3桁以内の数値を Locate で表示する前に Locate で空白上書きする時の問題だと、勝手に推測した上での話限定です。

C.Basic は非常に忠実に Casio Basicの癖まで互換性があります。

そして、Casio Basic には、Eng設定に伴う Locate 出力の癖があります。

EngOn になっているとき、つまり mとか K とかの表示設定がONになっている時、Locate で3桁以内の数値を出力すると、その数字に続いて空白が出力される癖があります。
http://egadget.blog.fc2.com/blog-entry-54.html

2桁出力の場合は3桁目に空白が付加されます。背景が白に固定されているときやモノクロ画面の時は気にならないこの特性が、背景に色を付けてる時には、期待しない背景色で空白が行がされてしまう可能性、そして空白が勝手に付加されることを仕様として理解していないことによる混乱が発生する可能性が考えられます。

このことがもし本当に発生している場合は、EngOff をプログラムで実行するか、SET UP でEng を Off にするかで、問題が解消するかも知れません。

なぜ、横からしゃしゃり出たかと申しますと、C.Basic の仕様である可能性があるからです。

失礼致しました。

v0.28α (MLコマンド修正)空白バグ調査依頼

sentaro様、管理人様、iron2様、皆様

sentaro様
>MLコマンドの線幅指定が継続してしまうバグ・・・

バグだったのですか・・・ ツルの書式が悪いのだとばかり・・・。
一つ潰せて良かったです(笑)

では、調子に乗って、もう一つ調べて頂きたいのですが。
Textで記述した文字表示を、同じ座標を指定して"  "空白上書きで消す際、
表示2文字を消すには空白3個が必要になります。長い文字列を消す場合は沢山の空白が必要になります。同様の症状が幾度もあるので、ひょっとしてこれもかもです。この症状も見つかりにくいバグの発見だったら、ツルのことを今度からは
バルサンツルサンと呼んでください(笑)

FEINT2とSB、無事入手できました。ありがとうございました。
B画面が活用され、COPYも働き、久しぶりの大きな感動です。
この感動は、まとめてコメントONOFF以来です。コマンドの力を
sentaro様の力をまた思い知らされました。
FEINTがA画面B画面共に表示されると、作者として快感です。
素晴らしい連携プレーでしたね!

HVY8 初見の所見

管理人様、sentaro様、iron2様、皆様 

管理人様
先程HVY8をやっとDLして初見いたしました。
流石です。HVから1歩ではなく、200歩前進していますね。

>ツル様のHV3をベースに、カラーピッカーがどんな感じになるのか、簡単なテスト版を作って見ています。
>カーソル移動の加速スイッチを [tan] でなくて、[F5]に変えていて、あと変更したのは、
>・カーソルのクロスポイントに小さな円を追加
>・ラインカーソルの色を基本7色に変更可能 ([F6]ワンプッシュで切替)
>・コーディングスタイルをオレ流に変更

やはり見るのが一番ですね。たたき台の存在意義は大きいです。
加速スイッチは確かに面倒でした。長押しのほうが使い易いですね。
カーソルのセンター部の表示は迷いますね。
ワンタッチの色変更も抜群です。
検証版では"HAMA"になっておりますが、現実的にはあのような画像でピッカーの必要性は小さいと思います。早速、検証用画像を"YOKO"に代えて見てみました。
ランドマークタワーの屋上の求める位置や部屋の明かり、観覧車の任意のポイントを求めて操作してみました。カーソルの丸のセンターと検出ポイントとの位置ずれは後から修正するものとして、一番気になるのは、求める位置に落ち着くのが難しいということでした。(これはRGBチェッカーの上下操作と共通するものがあります)
ピッカーの完成は、YOKO画像で、窓などの点に素早く辿り着くことがポイントだと思いました。
それと、FEINTのあとで見ると、ピッカーの表示もミニフォントにしたくなりますね。
色情報の背景の色表示はとても良いです。
基本色の表示も必須ですね。基本色とピックアップ数値との離れ具合がとても参考になります。(基本色表示サイズはもっと小さくていいかも)

で、様々な案はあると思いますが、ツルが考えるカーソルについてですが、
拡大表示式が便利だと思います。
画面全体のアスペクト比と同じ小さな矩形(横10ピクセル位✕縦5ピクセル位)を表示し、その矩形を方向キーで動かし、同時に画面の隅にその矩形内の画像を拡大(横50~100ピクセル位✕縦25~50ピクセル位)表示させる。
当然、小さな矩形と重なるような場合はどいてもらう。
拡大表示画面にはFEINTのようなセンターラインがついている。
このやり方ならば、目指すポイントを特定しやすいのではないかと考えました。

ピッカーの出番は、YOKOのような細かい描写の場合で想定しなければならない筈なので、ハードルは上がりますが、是非ご検討願いたく。

※以前お送りしましたサンプルProgのYOKOでは、ランドマークタワーの屋上に赤い点を明滅させましたが、部屋の明かりも明滅させようと着手してみました。
が、座標を知るのが大変面倒で、色情報も決定が面倒でした。そのような経験から、世界広しとは言え、HVY8の進化版を強く望むのは、ツルだけではないかと思います。補足で事情説明申し上げますと、ツルは管理人様のRGBチェッカーとピッカーのcodeが、見ても理解できません。自分の能力の低さに、コーヒーが涙でしょっぱくなります。



Re:Re:Re:FEINT SBサンプル ミニは?

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>これのみ、HTML ファイル なんです。

とりあえず、zipにまとめてみました。(^^)
http://pm.matrix.jp/CB/FEINT2.zip



iron2様、
>ちょと幅が狭かったですが★書けました!

お!早速ですね。(^^)


>いつか、24×24 or 25X25があったらうれしいかなぁ~

フォントサイズが標準フォントで18x24、ミニで最大16x18と決まってる模様?なので、
複数文字合体作戦しかないでしょうか。(^^;

C.Basic for CG v0.28α (FEINT支援、フォントコマンド追加+MLコマンド修正版)差し替えです。

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
>FEINTのcodeをご覧になって気付かれたと思いますが、数か所 '※の次の記述を無くすと、センターラインが太くなるために記述しています。その記述なしでも出来ると思うのですが、どこを直せばいいのか教えて頂けますか?

不具合状況を調査してみたところ、前回のMLコマンドの線幅指定が継続してしまうバグが潜んでいた模様です。(^^;
なかなか見つかりにくいところを見つけていただきまして、ありがとうございます!(^^)

ってことで、
C.Basic for CG v0.28α (FEINT支援、フォントコマンド追加+MLコマンド修正版)差し替えです。
http://pm.matrix.jp/CB/CBASICCG028.zip
・MLコマンドの_Horizontal,_Vertical,_Polygon,_Rect(,_Elips(,_ElipsInRct(において、
前回MLコマンドのWidth指定が継続していたのを修正しました。


このバージョン以降では、※の部分の修正は必要なくなります。(^^)

FEINT書き書き

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

FEINTで★書き書きしてみました!

ちょと幅が狭かったですが★書けました!
いまので結構遊べますよ!
いつか、24×24 or 25X25があったらうれしいかなぁ~

今のもプロ仕様、こんなの電卓の
フリーウエアやシエァウエアで見たことありません。

※ズル様→ロードオブザリングを連想した~

これからもよろしくお願いします


Re:Re:FEINT SBサンプル ミニは?

sentaro様

http://pm.matrix.jp/CB/FEINT2.g3m のみ、リンク確認願えますか?

これのみ、HTML ファイル なんです。

Re:Re:FEINT SBサンプル ミニは?

sentaro様、管理人様、iron2様、皆様 

>FEINTはツル様印全開・・・

はっはっは

>管理人様仕様に沿っているプログラム・・・

MASIOのときには沿っていませんでしたね。今回のFEINTでは、教えを意識して作った訳ではなかったのですが、自然にGoto無しで作ることができました。あとから思うに、ツルはGotoかぶれという訳でもなく、癖としては、4行表示のポケコン時代の癖なのか、短い記述は : で行内にまとめたがる傾向があります。
codeを簡潔に記述する能力不足を隠すために短く見せかけるいやらしさ・・・(違うか!)

sentaro様
FEINTのcodeをご覧になって気付かれたと思いますが、数か所 '※の次の記述を無くすと、センターラインが太くなるために記述しています。その記述なしでも出来ると思うのですが、どこを直せばいいのか教えて頂けますか?
どうもcodeに見苦しさがあって・・・

Re:FEINT SBサンプル ミニは?

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、
http://pm.matrix.jp/CB/FEINT2.g3m のみ、リンク確認願えますか?

あ゛…
このファイルのみ差し替えしてなかったので、初期より無変更でした。(^^;
念のために再アップしておきました。

あと、こちらもちょこっと修正入りましたので再アップです。
http://pm.matrix.jp/CB/FEINTSB1.g3m(一部特殊フォントからの読み出しがNGでした。)
http://pm.matrix.jp/CB/FEINTSB2.g3m(セーブ確認を追加しました。)
http://pm.matrix.jp/CB/FEINTSB3.g3m(コピー確認を追加しました。)


>ミニフォントの外字作成も必要なんですよね?

はい!
ミニフォントを使わない前提ならノーマルフォントのみで無問題ですけど、
リスト表示等で使われる可能性大なので、同時に作成しておくのが良さそうです。
手抜きする場合は、ノーマルフォントから自動縮小するという手も使えそうです。(^^;



管理人様、おつかれさまです。
私の方もちょっとバタバタしておりますが、年末モードなので大変ですよね。
FEINTはツル様印全開ながら管理人様仕様に沿っているプログラムなので、すぐに入り込めると思います。(^^)

FEINT SBサンプル ミニは?

sentaro様

http://pm.matrix.jp/CB/FEINT2.g3m のみ、リンク確認願えますか?

ミニフォントの外字作成も必要なんですよね?

FEINT楽しそう

ツル様、sentaro様、iron2様、CGユーザーの皆様

管理人のやすです。


超多忙のため、完全に沈んでいて、ついて行けない状況です。

楽しそうですね。

明後日から追いつきます。

Re:C.Basic for CG v0.28α (FEINT支援、フォントコマンド追加版)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

↓のリンクすべて差し替えております。(^^;
再ダウンロードお願いします。

Re:FEINT 楽屋裏 (ズル)

ズル様、はじめまして!(笑)

また腹筋が崩壊寸前に…(^^;


あの赤枠カーソルは本当にお見事です。
しばらく画面内を走り回って遊んでました。(^^;

C.Basic for CG v0.28α (FEINT支援、フォントコマンド追加版)

管理人様、ツル様、iron2様、CGユーザーの皆様、こんにちは!

ツル様、"FEINT"Ver1.1、DLさせていただきました!
管理人様、早速にありがとうございます!

で、早速動作させてみて、
中間色の色調とミニフォントを基調にした画面構成が素晴らしすぎます。
この画面を見てるだけで満足してしまいそうになります。(^^;
カーソルの動きも申し分ないので、このままバージョンアップしていけばプロ仕様のツールになりますね。(^^)

ということで、C.Basic側の支援コマンドも早く整備しないとということで、幾つかのコマンドを追加しました。

追加コマンドのサンプルとして、
FEINTに組み込んでみました。
[F1]:編集済みフォントを含む全フォントデータのセーブ
[F2]:1フォントデータを読み出してBに展開。
[F3]:BからAへのコピー
の機能が使えるようになっています。(^^)

http://pm.matrix.jp/CB/FEINT2.g3m(FEINTにサブルーチンを呼び出す箇所を加えました。)
http://pm.matrix.jp/CB/FEINTSB1.g3m(1フォントデータを読み出してBに展開)
http://pm.matrix.jp/CB/FEINTSB2.g3m(編集済みフォントを含む全フォントデータのセーブ)
http://pm.matrix.jp/CB/FEINTSB3.g3m(BからAへのコピー)



C.Basic for CG v0.28α (FEINT支援、フォントコマンド追加版)
http://pm.matrix.jp/CB/CBASICCG028.zip
・フォントデータの読み出しと設定を行うGetFont(とSetFontコマンドを追加しました
(書式)GetFont(フォントコード)->Mat A
(書式)GetFontMini(フォントコード)->Mat A
(例)GetFont(0x41)->Mat A
 フォント"A"のビットマップデータ(18x24)が1ビット行列Mat A[18,24]に入力されます。
(例)GetFontMini(0xFF80)->Mat A
 外字ミニフォントの一番目のビットマップデータ(16x24)が1ビット行列Mat A[16,24]に入力されます。

(書式)SetFont フォントコード,Mat A
(書式)GetFontMini フォントコード,Mat A
(例)GetFont 0x41,Mat A
 Mat Aのフォントデータがフォント"A"のデータとして設定されます。
(例)GetFontMini(0xFF80)->Mat A
 Mat Aのフォントデータが外字ミニフォントの一番目のデータとして設定されます。

・BmpSaveにフォントデータのセーブ機能を追加しました。
(書式)BmpSave @G
 カレントフォルダに外字フォント(標準、ミニ)をセーブします。
 ファイル名は@LFONTG.bmp (標準)
 ファイル名は@MFONTG.bmp (ミニ)
(書式)BmpSave @K
 カレントフォルダにカナフォント(標準、ミニ)をセーブします。
 ファイル名は@LFONTK.bmp (標準)
 ファイル名は@MFONTK.bmp (ミニ)
(書式)BmpSave @@G
(書式)BmpSave @@K
 @Fontフォルダにセーブします。

・デフォルトフォントファイルを変更しました。
 @LFONTG.bmp (外字標準フォント)
 @MFONTG.bmp (外字ミニフォント)
 @LFONTK.bmp (カナ標準フォント)
 @MFONTK.bmp (カナミニフォント)

・大文字と小文字のRenameで元のファイルがまた消えてしまう不具合を修正しました。



iron2様、MANDELI3早速にいただいております!
1/4ドットで4ドット単位なので1/16というところでしょうか。
見た目、あまり荒い感じがしないのは液晶解像度に目が追いついてないせいかもしれません。(^^;
マンデルブロ自体が綺麗なので、最初はどんなものかを確認するための荒い画像から、本格的な高精細画像へという流れはなかなか良さそうですね。
ありがとうございます!(^^)

FEINT 楽屋裏 (ズル)

管理人様、sentaro様、iron2様、皆様 こんにちは。

ツル「おや? あんたは?」
ズル「はい。私はあなたのもう一人のツル。ズルでございます」
ツル「タイトルが楽屋裏となっているが、楽屋裏に投稿すれば・・・」
ズル「まあ、流れってのが・・・」
ツル「まあいいか。で、何だい?内情暴露かな?」
ズル「はい。あなたの心の声を暴露します」
ツル「怖いな・・・」
ズル「作ったあなたが一番恐れていることを」
ツル「何?」
ズル「表示が細かくて見づらいという皆様の反応」
ツル「げっ 何故知っている?」
ズル「そりゃあ、あなたですから」
ツル「もう少し大きくと、自分でも感じてはいたんだ」
ズル「やれば良かったじゃないか」
ツル「やれるならやってたよ」
ズル「いくじなし」
ツル「お前は女か?」
ズル「そういえば、現在位置の示し方。あれも苦労してたなぁ」
ツル「うん、かなりてこずった。初めは、見やすさ優先で、あの5ピクセル角の
   点をオレンジ色で作りだして、これはいけると思ったが」
ズル「移動させたり白黒への変更の時に色んな問題が出たな」
ツル「あれは悩んだ」
ズル「今の赤枠式を思いついた時の、あの喜びよう」
ツル「いやいや、本当に嬉しかった」
ズル「各点が白線で囲まれてて良かったな」
ツル「うん。カラー液晶だから出来たんだ」
ズル「だけど、見る角度で色が変化し過ぎだろう」
ツル「しょうがないよ」
ズル「それと、Fキー・・・管理人さんのパクってるだろ」
ツル「だって、せっかくsentaroさんが作ってくれたコマンドだし」
ズル「名前のINのことでいい訳してるし・・・」
ツル「FEとTを使う単語を考えてたんだ」
ズル「ペイントに似てるな」
ツル「フェイント・・・ほんとだ」
ズル「初っ端から管理人さんにFEINTでフェイント(笑)」
ツル「笑い事ではない。迷惑を掛けた」
ズル「迷惑と言えば、iron2さんにも」
ツル「お前、なんでそのことまで・・・」
ズル「だから、もういいから」
ツル「★があるとばっかり思い込んで、軽率なアドバイスをしてしまった」
ズル「その後悔も背中を押したんだな」
ツル「それもだし、まだ途中なのにsentaro様がコマンド用意したよって・・・」
ズル「背中押されまくりじゃん」
ツル「背骨が折れるかと思った」
ズル「ないない」
ツル「もうそろそろいいかな?終わって」
ズル「管理人さんからのダメ出しが楽しみだな」
ツル「・・・」

MANDEL確認画像粗目立証版

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

わかったことを整理中、粗目試してないなと思い
確認画像のコードを粗目で実行してみました。
完成までほど遠いですが、部品としては3歩ほど
進みました。

cg20 250Mhzでフル画像の1/4画像で4ドットで描画
11秒は切ると思います。また解像度もそこそこです。

PNGまとめておきますといっておきながらですが
立証できたとはいえ少し興奮してしまい。
申し訳ありません。

このタイミングでコードを出すことをおゆるしください。

'ProgramMode:RUN
'MANDELI3
'' from TI-Planet
' https://tiplanet.org/forum/viewtopic.php?p=224371
'#CBINT
Back-Color @Black
Screen.g
_ClrVram
100->N
192->m
108->l
For 0->x To m Step 2
For 0->y To l Step 2
0->a
0->b
((675*x)/40)-2100->c
(((-)468*y)/27)+935->d
0->i
While (i<N) And ((a^<2>+b^<2>)<4000000)
Isz i
a->s
((a^<2>-b^<2>)/1000)+c->a
(((2*s)*b)/1000)+d->b
WhileEnd
Int ((255*i)/N)->g
RGB(1*g,4*g,25*g)
_Rectangle x,y-24,x+1,y-23,1,1
Next
_DispVram
Next
'Red Text 160,260,"END"
_DispVram

これからもよろしくお願いします。

FEINT DLしました

管理人様、sentaro様、ツル様、CGユーザーの皆様

iron2です。

FEINT DLしました!

シュゴすぎ!

まだ完全に使いこなせてないけど
期待以上のサクサク感です。

ありっす!

これからもよろしくお願いします。

Re: FEINT 初版のご紹介(ツル)

ツル様、sentaro様、iron2様、CGユーザーの皆様


管理人のやすです。


ツル様、お疲れ様です。いよいよですね!


取り急ぎダウンロードリンクです。

外字フォント作成ツール - FEINT (初版)
https://egadget2.web.fc2.com/archives/fx-CG50/TSURU/FEINT.html


これ重要↓

ここで、ツルから簡単に FEINT をご紹介いたします。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
< FEINT ご使用の前にお読みください>

1. 描画色は黒のみです。実際には(0,0,0)の黒とはしていません。 
  デフォルトは18✕24 ノーマルフォント用です。

2. 黒で上下左右への直線描画は楽ですが、
  斜線の場合は Pass との交互使用が必要になる場合があります・・・ので、
斜線等の場合の操作を楽にするために、Pass モードの場合のみ
  テンキー0の右側の"・"により、単発で黒ドットを打てます。
  右手で方向キー操作、左手で・キー操作をすると斜線打ちが楽になります。

3. "+"キー、"-"キーで、全面一括表示が出来ます。
  範囲指定してコピー等の機能はありません。

4. F1、F2、F3、 Bの赤い画面は、Ver1.1時点では使用しません。

5. 左側の小さい表示は原寸大表示になっています。

6. 今後の進化に伴い、画面表示内容が変わる場合があります。

※ FEINT の命名に、IN の使い方が変だ!というご意見もございましょうが、無理やり使った感はあります。
  ツルのセンスに包まれている・・・ とご理解ください(笑)


FEINT 初版のご紹介(ツル)

管理人様、sentaro様、iron2様、皆様 こんにちは。

FONT EDITOR FEINT を、管理人様へ再送信いたしました。
今度は従来通りの環境からなので、問題ない予定です。
ようやく皆様にお届けすることが出来そうです。お待たせいたしました。

ここで、ツルから簡単に FEINT をご紹介いたします。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
< FEINT ご使用の前にお読みください>

1. 描画色は黒のみです。実際には(0,0,0)の黒とはしていません。 
  デフォルトは18✕24 ノーマルフォント用です。

2. 黒で上下左右への直線描画は楽ですが、
  斜線の場合は Pass との交互使用が必要になる場合があります・・・ので、
斜線等の場合の操作を楽にするために、Pass モードの場合のみ
  テンキー0の右側の"・"により、単発で黒ドットを打てます。
  右手で方向キー操作、左手で・キー操作をすると斜線打ちが楽になります。

3. "+"キー、"-"キーで、全面一括表示が出来ます。
  範囲指定してコピー等の機能はありません。

4. F1、F2、F3、 Bの赤い画面は、Ver1.1時点では使用しません。

5. 左側の小さい表示は原寸大表示になっています。

6. 今後の進化に伴い、画面表示内容が変わる場合があります。

※ FEINT の命名に、IN の使い方が変だ!というご意見もございましょうが、無理やり使った感はあります。
ツルのセンスに包まれている・・・ とご理解ください(笑)

sentaro様
EDITの流れは画面表示にある通り、参照しての作業の場合は、B画面に表示させ、COPYによりA画面にも表示し、見比べながらA画面で編集します。
編集完了の場合はA画面を登録します。従って、B画面は参照として見るだけで、編集はしません。
Load等の用語は変更可能です。codeでお分かりのように、REAL画面での座標に用いている x+S,y+T が原寸大表示での座標になります。
機能に支障が出なければ、変数は自由に変更可です。

ご支援コマンドを早早と用意されるから、多少あせりました。いえ、かなりあせりました(笑)ありがとうございました!  (詳細などはまた別途・・・)
以上

Re: Re:FONT EDITOR "FEINT"Ver1.1 送付

ツル様>、sentaro様、iron2様、皆様

管理人のやすです。

> 出先(病院)につきいろいろ・・・

どうか、ご無理をなさらずに、実生活を優先なさってください。




Re:FONT EDITOR "FEINT"Ver1.1 送付

管理人様、sentaro様、iron2様、皆様

管理人様
FEINT 送信の不手際お許しください。出先(病院)につきいろいろ・・・

皆様、少々お待ち願います。

Re:FONT EDITOR "FEINT