楽 屋 裏 - Drunk Bug
e-Gadget
修正 2015/07/20
追記 2015/07/21
追記 2015/08/04
追記 2015/08/14
Casio Basic入門で、fx-9860GII でのグラフィックスプログラミングを取り上げています。
取扱説明書には殆ど情報が無いので、各コマンドの仕様を細かく調べ、実際に動作させて確認しています。そこで、グラフィックスのちょっとしたプログラムを紹介しようと思います。
今回は、シミュレーションゲーム
Drunk Bug です。グラフィックス描画が遅くても、十分楽しめるプログラム例だと思います。
Drunk Bug の説明箱の中に、酔っ払った虫を一匹放り込みます。コイツは千鳥足で歩き回ります。次の瞬間どちらへ進むか全く予想がつかず、ランダムな歩みです(ランダムウォーク理論や酔歩理論の前提となる動作です)。
この虫は、歩くと糞を落とします。自分の糞があれば食べてきれいに掃除してくれます。箱の端に来ると、クルッと方向転換します。
そんな
酔っ払い虫 を箱に放り込んだ時の様子をグラフィックスで表現してみました。
プログラムの説明虫を
PlotChg コマンドで描画しています。描画位置に点が無い場合は点を表示し(=糞を落とす)、描画位置に点が有る場合は消去し(糞を食べ)ます。
虫が1歩進む時の座標は、
(x, y) から (x±1, y±1) へ変化しますが、
± の
+ か
- かをランダムに決めます。
1から
10のランダム整数を発生させ、それを2で割った余り (
Mod 関数使用) を求めると
0 か
1 になります。余りが
1 の時
+ で、
0 の時
- としています。
虫が箱の端に居る時だけ、座標値を先に
∓2 と反転の準備をしておいてから、
±1 すれば、無駄な追加処理なしで進む方向が反転します。
[2015/07/21 追加] プログラム実行中に
[EXIT] キーで一旦停止、
[EXE] キーで実行継続の機能を追加(1行追加)。これで、一旦停止中に
[SHIFT] [F6] (G↔T) でグラフィックス画面に切り替えて画面コピーができるようにしました。fx-9860GII には画面保存の機能が有り、保存した画像をPCに転送して、下にある実行画面の画像を得ました。
[2015/08/04 追記][EXIT] で一旦停止し
[SHIFT] [F6] でグラフィックス画面を表示させた時の画像保存は、キー操作
[OPTN] [F1] (PICT) [F1] (STO)を行い、Pict# の番号を入力して最大20枚の画像まで保存できます(Pict# を手元に控えておきます)。その後 PCリンクソフト FA-124 で fx-9860GII と PC を接続して保存した画像をファイル変換して取得します。具体的な操作方法は、FA-124 Ver 2.04 のマニュアル 58ページに従って、控えておいたPict# を使って画像を一旦表示させ、それをPCに画像ファイルとして保存します。
ファイル名: DRUNKBUGClrGraph
CoordOff
GridOff
AxesOff
LabelOff
ViewWindow 0,126,0,0,62,0 (座標系の設定)
PlotOn 63,31 (初期位置に虫を描画)
Text 1,1,"EXE: Start"◢ (一旦停止)
Text 1,1,"AC: Quit " (スペース2個)
While 1
RanInt#(1,10)→P (1から10のランダム整数を得る)
RanInt#(1,10)→Q (1から10のランダム整数を得る)
If MOD(P,2) (ランダム整数を2で割った余り→ 0 か 1 を得る)
Then X≥126⇒X-2→X (右端で反転の準備)
X+1→X (一歩進む時の X座標値)
Else X≤0⇒X+2→X (左端で反転の準備)
X-1→X (一歩進む時の X座標値)
IfEnd
If MOD(Q,2) (ランダム整数を2で割った余り→ 0 か 1 を得る)
Then Y≥62⇒Y-2→Y (上端で反転の準備)
Y+1→Y (一歩進む時の Y座標値)
Else Y≤0⇒Y+2→Y (下端で反転の準備)
Y-1→Y (一歩進む時の Y座標値)
IfEnd
PlotChg X,Y (1歩進んだ虫を描画)
Getkey=47⇒"[EXE] to Resume"◢
WhileEnd
fx-9860GII 用 プログラムファイルのダウンロード:
DrungBug.g1m(改訂・修正部分は
赤文字で示した。ダウンロードファイルも改訂・修正している。)
虫の様子を見ていると、左上の
AC: Quit まで糞と間違えてガツガツ食べることもあります。プログラムを再起動すると、虫の動きが全く異なることもあって、ランダムの世界は、なんだか不思議な感じですね。
Casio Basic グラフィックスのポイントプログラミングに慣れた方なら、オヤッと思う点が1つあると思います。
ViewWindow のすぐ下で、
PlotOn 63,31 で虫の初期位置を描画しています。
本来ならば、
63→X:31→Y
PlotOn X,Yで、変数
X,
Y の初期化とそれを使った初期描画をすべきですが、
X、
Y の初期化をせずに
PlotOn 63,31 を実行し、その後の処理で初期化していない
X と
Y を使って、いきなり
PlotChg X,Y を実行しています。
これで良いのか?
通常のプログラミング言語では、必ず初期化してください。
ところが、この Casio Basic プログラムを実際に動作させると、確実に初期位置から虫が歩きます。偶然ではありません。
Casio Basic の
PlotOn コマンドは、描画をすると、その位置の X座標値を変数
X に、Y座標値を変数
Y に自動的に代入する仕様なのです。だから、
PlotOn 63,31 を実行するだけで、変数
X,
Y の初期化が行われます。この仕様は便利な反面、知らないと 意図しないところで
X と
Y の値が変更されるバグで悩まされるでしょう。
[2015/08/14 追記]sentaro様が 同等機能の Add-in を作ってくれました。グラフィックスプログラムは アドインで作ると高速描画が可能になる良い例です。
なお、描画中に
[MENU] や
[EXIT] 以外の好きなキーを押せば、描画が劇的に高速化します(ターボ効果)。
⇒ ダウンロード:
BugTrace.g1a (Ver 1.10)
以下の一連の Casio Basic が アドインプログラムになっていて、その一部に
Drunk Bug があります
・
楽屋裏 - 酔っ払いの虫 (Drunk Bug)・
楽屋裏 - 虫の閉じ込め (Bug Trap)・
楽屋裏 - 虫の軌跡 (Bug Trace)このアドインを再コンパイルや改造できるソース付き全ファイルのダウンロードは以下;
⇒ ダウンロード:
BugTrace110.zip (Ver 1.10)
応援クリックをお願いします。励みになるので...
sentaro様
> このエディタは初期の頃から知っていたのですが、ソースコードが付属していたことを最近思い出して参考になる部分を研究中です(^^;
さすがに、やはりご存じでしたね。
> その他、参考資料として、バイトコードコンパイラのC(WSC&FVM )がすでに存在していて、これもありがたいことにソースが付属しているので参考になりそうな部分を研究中です。
>
> WSC&FVM Casio Fx9860 Oncalc C Compiler
>
http://community.casiocalc.org/topic/6836-wsc-fvm-v12-casio-fx-9860-series-on-calc-c-compiler/
これは、なかなか良い資料になりそうですね。
> あと、fx-9860Gシリーズの言語系としてはLuaがありますがこれはソースが付属して無いので…。
> Lua-FX
>
http://www.planet-casio.com/Fr/logiciels/voir_un_logiciel_casio.php?logiciel=LuaFX_logiciel&showid=83
う~む、面白そうなのに、チョット残念!
> それとPRGM2というBASICソースにコマンド記述でSDKのグラフィックを実行させるというとっても参考になりそうなアドインもあるのですがこれまたソースが付属して無いので…(^^;
> PRGM2
>
https://www.cemetech.net/forum/viewtopic.php?t=7126
あれば良いのにと思うものは、どこかの誰かが同じことを思って、作っているものですね。
このあたりは、ソニーの井深 大さんの著書「ボスニアの夜は更けて」(だったかなぁ...)で「技術の連通管現象」として書かれていたのを思い出します。
Casio Basic からネイティブコードにすると言う発想は、Casio Basic を詳細に調べることと、ヒープ領域の小さなコンパクトなコードを作るという2つの障壁があるので、意外にまだ実現されていないのかも知れませんね。
CBC (Casio Basic Compiler) Project (勝手に名付けてしまいました(^^;) のオリジナリティありそうで、ワクワクします。
管理人様、こんにちは!
>既にご存じかも知れませんが、fx-9860G で動作するエディタを見つけました。
このエディタは初期の頃から知っていたのですが、ソースコードが付属していたことを最近思い出して参考になる部分を研究中です(^^;
その他、参考資料として、バイトコードコンパイラのC(WSC&FVM )がすでに存在していて、これもありがたいことにソースが付属しているので参考になりそうな部分を研究中です。
WSC&FVM Casio Fx9860 Oncalc C Compiler
http://community.casiocalc.org/topic/6836-wsc-fvm-v12-casio-fx-9860-series-on-calc-c-compiler/
あと、fx-9860Gシリーズの言語系としてはLuaがありますがこれはソースが付属して無いので…。
それとPRGM2というBASICソースにコマンド記述でSDKのグラフィックを実行させるというとっても参考になりそうなアドインもあるのですがこれまたソースが付属して無いので…(^^;
Lua-FX
http://www.planet-casio.com/Fr/logiciels/voir_un_logiciel_casio.php?logiciel=LuaFX_logiciel&showid=83
PRGM2
https://www.cemetech.net/forum/viewtopic.php?t=7126
sentaro様
既にご存じかも知れませんが、fx-9860G で動作するエディタを見つけました。
http://sourceforge.net/projects/edit-fx9860g/?source=navbar
SDKのソースも全て付属しています。
fx-9860GII でも動くようです(まだ全ての機能を試していませんが...)。
ご参考まで,,,
sentaro様
> コンパイラが動き出すまでにはかなり時間かかりそうですし、グラフィックを実装するのもそのまた先のことになるでしょうから、ゆっくり進めていけばよいですね(^^)
そうですね、出来ることからゆっくりと...多分1つまとまると一気に突っ走ってしまうのでしょうが(性格的に)、続けることを優先したいと思っています。
> この管理人様のブログはfx-5800Pで始まってますし、そこにfx-9860GIIが加わって、そして次はとなると、CG10/20というのはとっても自然な流れですね。
そこなんです。だから cg10/20 が優先度高くなってしまいます。
> (fx-FD10Proというのもありますが…)
当面、これは 9860GII とほぼ同じと仮定しておくことにして...
実は、カシオには fx-FD10 Pro と似た仕様で fx-5800P と 9860GII を補間するような製品が望まれると、メールで希望を言ってあります。返事が返ってこないかも知れませんが...
> 時間の問題はかなりありますよね。
> 一日48時間くらい欲しいです(^^;
そそ、特に自分だけ 48時間あることがポイントですね。
> HP-50Gは温故知新電卓、
なんだかとてもよく分かる表現です。ウマイ!
> ま、それぞれに個性の違う電卓ですし、一通り触ってみた感じでいうと、
> HP-50Gは温故知新電卓、CG10はfx-9860GIIの高精細カラー版、TI-Nspireの場合は電卓というよりも電卓の形をしたPCというところですけど、電卓として一番進化しているのはやはり管理人様No.1推しのTI-Nspire CXということになるでしょうか。
なるほど、PCなんですね。マウスカーソルが現れるなんてのも、その片鱗かも知れませんね。
> ただ、TI-Nspire CXの場合、最初のファイルアクセスに時間かかる(数秒から十秒程度)ので昔の遅いハードディスクを使っているような待たされる感が難点といえば難点です(^^;
数秒なら良いとして、数十秒は長いですね。やはり限られたリソースをどう割り振るかで、各社苦労しつつもそれぞれの味付けを施していて、コスト等の競争を考えると、てんこ盛りにもできず、それぞれ異なる弱点も出てしまう...そんな感じなのでしょうね。
> HP-50GやCG10にはそこまでのファイルアクセスの遅さはないですけど、fx-9860GII比で全体的な動作にちょっとまったり感があります。
> CG10はPtune2でまったり感は完全に解消されますが、HP-50GはCPUがエミュ動作なので速度的にはちょっともったいない部分がありますね。
はい、もうこうなるとPtune2 は必須ですね。
> CG10/20は先行き不透明ですけど、fx-9860GIIとの互換性の高さはやはりかなり高ポイントですね(^^)
互換性は結構大きなポイントです。過去からのユーザーへの互換性の配慮はカシオの特徴です。
ただ、国内未発場品については、違っているのかも知れませんが、そこのところはよく分かりません。
なんだか、ClassPad あたりを選択肢に加えないとダメになったりして...その場合は関連記事は英語ですね(-_-;)
やはり、英語ブログはいずれ必要になるかも知れないと、そんな気にもなってきそうです。
> CG10/20に関しては、Ftune2とPtune2が並行して出来上がったように、CG10/20用のコンパイラも並行して考えていきたいので、ここはひとつ管理人様にもCG10/20をゲットしてもらって…さらに奥深く探索してもらえたら千人力です(^^)
う~む、これはインパクトのあるお言葉....
管理人様、こんにちは!
>今のペース、取りあえず fx-9860GII のグラフィックス関連を洗いざらい調べるのに、多分1年くらいかかるような気がします。
コンパイラが動き出すまでにはかなり時間かかりそうですし、グラフィックを実装するのもそのまた先のことになるでしょうから、ゆっくり進めていけばよいですね(^^)
>次は、といえば、fx-CG20/10 のような気もしています。
この管理人様のブログはfx-5800Pで始まってますし、そこにfx-9860GIIが加わって、そして次はとなると、CG10/20というのはとっても自然な流れですね。
(fx-FD10Proというのもありますが…)
>いずれ新機種が登場すれば、それに焦点を絞る....なんかカシオ機から離れられない感じ...と言うか他に手を出す余裕がなさそうです...プライベートで使える時間が限られているので....
時間の問題はかなりありますよね。
一日48時間くらい欲しいです(^^;
>その一方で、hp50g どうしようかなぁ....fx-CG20 もどうしようかなぁ....nSpire CX CAS も惹かれるし...
そこのところはいっぱい悩んで、悩んで、、そして一気に大人買いとか…(^^;
ま、それぞれに個性の違う電卓ですし、一通り触ってみた感じでいうと、
HP-50Gは温故知新電卓、CG10はfx-9860GIIの高精細カラー版、TI-Nspireの場合は電卓というよりも電卓の形をしたPCというところですけど、電卓として一番進化しているのはやはり管理人様No.1推しのTI-Nspire CXということになるでしょうか。
ただ、TI-Nspire CXの場合、最初のファイルアクセスに時間かかる(数秒から十秒程度)ので昔の遅いハードディスクを使っているような待たされる感が難点といえば難点です(^^;
HP-50GやCG10にはそこまでのファイルアクセスの遅さはないですけど、fx-9860GII比で全体的な動作にちょっとまったり感があります。
CG10はPtune2でまったり感は完全に解消されますが、HP-50GはCPUがエミュ動作なので速度的にはちょっともったいない部分がありますね。
HP-50Gはディスコンということで新品は今年で最後になりそうですけど、TI-Nspire CX CASに関してはまだこれからも現役で続いていく機種なので慌てることはないかもしれません。
CG10/20は先行き不透明ですけど、fx-9860GIIとの互換性の高さはやはりかなり高ポイントですね(^^)
>グラフィックスについても、将来的にはコンパイラ対応されると思うので、きちんと洗い出ししておきますね。
>fx-9860GII できっちり抑えておけば、fx-CG20/10 は短時間で対応できるように思っています。
CG10/20に関しては、Ftune2とPtune2が並行して出来上がったように、CG10/20用のコンパイラも並行して考えていきたいので、ここはひとつ管理人様にもCG10/20をゲットしてもらって…さらに奥深く探索してもらえたら千人力です(^^)
sentaro様
エクスプローラやソースエディタなど、それだけでも味付け次第で、結構便利なツールになりそうですね。
> 英語版というのはかなり需要あるかもしれません(^^)
心に留めておくことに致します(^^;)
今のペース、取りあえず fx-9860GII のグラフィックス関連を洗いざらい調べるのに、多分1年くらいかかるような気がします。
次は、といえば、fx-CG20/10 のような気もしています。
いずれ新機種が登場すれば、それに焦点を絞る....なんかカシオ機から離れられない感じ...と言うか他に手を出す余裕がなさそうです...プライベートで使える時間が限られているので....
その一方で、hp50g どうしようかなぁ....fx-CG20 もどうしようかなぁ....nSpire CX CAS も惹かれるし...
コマンドリファレンスを完成させることを考えると、fx-CF20/10 は抑えておきたいし、しかし実際に使うとすればカラー液晶機としては nSpire CX CAS は魅力的(私の中では、No.1、但し値段も N0.1 )だし、歴史的資産として hp50g は外せないし...う~む....
お金と時間が両方欲しい...ナハハ
> 仕様かバグか分からないところで悩まされるのはちょっと問題ですよね。
> だからこそ、管理人様のコマンドリファレンスがとっても重要な意味があるのです(^^)
結構、自分自身のためと言うのもあります。
そそっかしい性分なので、きちんと記録に残さないと、自分でも忘れてしまいます。
自分の記事を、ええっと...と読み直すこともあったくらいなので...
グラフィックスについても、将来的にはコンパイラ対応されると思うので、きちんと洗い出ししておきますね。
fx-9860GII できっちり抑えておけば、fx-CG20/10 は短時間で対応できるように思っています。
> Clsがテキストと関係なくグラフィックコマンドだということがわかると[SKETCH]に配置したことも理解できますね。
> PRGMのところにClsがあったら完全に混乱しますね(^^;
おっしゃる通りですね。どのメニューグループに属しているかも大きなヒントと言えます。
管理人様、こんにちは!
>そのエクスプローラ(ファイル管理ツール)ですが、プログラムモードの Program List 以上、メモリーマネージャー(Memory Add-in)以下という感じですよね。
はい、そこのところは本体と同じ感じで使えるようにしたいです。
まずは必要最小限の機能からですね。
>ありがとうございます。海外のサイトのチェックは適当なので、sentaro様にそう言って頂けると励みになります。そうだとしたら、英語化したら反響ありそうですね。でもネタが枯渇したら、やってみようかな?といった感じで優先度低いです。
英語版というのはかなり需要あるかもしれません(^^)
>グラフィックスコマンドを調べていて思うのですが、プログラミング上、極めて重要でこれを知らないとバグで苦しむような情報まで出さないというのが、ちょっと理解できないです。色々なサイトやブログで、勘違いしたままプログラムを作ってソースを公開しているケースを見かけます。これって、弊害が大きいように思えて、カシオには得なことが無いと、心配するくらいです。
仕様かバグか分からないところで悩まされるのはちょっと問題ですよね。
だからこそ、管理人様のコマンドリファレンスがとっても重要な意味があるのです(^^)
>で、ClrText と ClrGraph が [SHIFT] [VARS}で出てくるコマンド類に並んで出てくるのは、それぞれ実は消去だけでなく、内部的な設定のリセットや変更も伴うという意味では、同類だと、今なら分かります。ここに Cls を持ってこないのも不思議ではありますが、まぁ設計者の気持ちも分からなくもありません。
Clsがテキストと関係なくグラフィックコマンドだということがわかると[SKETCH]に配置したことも理解できますね。
PRGMのところにClsがあったら完全に混乱しますね(^^;
sentaro様
おはようございます、
> はい、まずはファイルを読み込んで書き出すという単純なところからですけど、SDKでは基本的なライブラリしか用意されていないのでエクスプローラを一から作成する必要ありです。
> で、その大枠が出来たら、G1M→テキストコンバータ、それからコンパイラへという流れになるかと思います。
そのエクスプローラ(ファイル管理ツール)ですが、プログラムモードの Program List 以上、メモリーマネージャー(Memory Add-in)以下という感じですよね。
> 海外が本場のグラフ電卓ですけど、海外を見渡してもここまで深く掘り下げたCasioBasicのコマンドリファレンスはどこにもないのではと思います(^^) 動画もあるので一目瞭然ですし。
ありがとうございます。海外のサイトのチェックは適当なので、sentaro様にそう言って頂けると励みになります。そうだとしたら、英語化したら反響ありそうですね。でもネタが枯渇したら、やってみようかな?といった感じで優先度低いです。
> CASIOのマニュアルの説明や使用例があまりにも簡略化しすぎているのは、CasioBasic解説本orWEBが出てくることを期待したもの?とか考えてしまいます(^^;
グラフィックスコマンドを調べていて思うのですが、プログラミング上、極めて重要でこれを知らないとバグで苦しむような情報まで出さないというのが、ちょっと理解できないです。色々なサイトやブログで、勘違いしたままプログラムを作ってソースを公開しているケースを見かけます。これって、弊害が大きいように思えて、カシオには得なことが無いと、心配するくらいです。
> Clsといわれればテキストもグラフィックも全部消去されると考えるのが普通なので、ちょっとややこしいですね。
> ClrTextとClrGraphとは違う場所にあるのも分かりにくいですね。
そうなんです、まさにこの勘違いをやってしまっていました。
Cls は、[SHIFT] [F4] (Sketch) で、最初の[F1]に割り付けられています。つまり グラフィックス図形描画関係のコマンドという位置づけなのだと思います。
で、ClrText と ClrGraph が [SHIFT] [VARS}で出てくるコマンド類に並んで出てくるのは、それぞれ実は消去だけでなく、内部的な設定のリセットや変更も伴うという意味では、同類だと、今なら分かります。ここに Cls を持ってこないのも不思議ではありますが、まぁ設計者の気持ちも分からなくもありません。
> >実は、ViewWindow など、実行後も設定が残るものが、他にも見つかっていて、Casio Basicコンパチのためには、しっかりと洗い出す必要があります。私としては、目標というか動機付けがさらに増えて、嬉しいです。
>
> コンパチにするのは思いのほか大変かもと少々考えてましたけど、管理人様のコマンド探索力があれば百人力です(^^)
責任重大ですが、やりがいもあります。ペースは遅いですが、確実に進めますね。
> はい、コンパイラともなると一朝一夕に出来るものではないので、少しずつ少しずつ着実にですね(^^)
はい、そうですね。よろしく御願い致します。
管理人様、こんにちは!
>先ずは、ゆっくりと始めて、ボチボチと様子をみて、あるところで、一気に実装を進めるといった感じですね。
はい、まずはファイルを読み込んで書き出すという単純なところからですけど、SDKでは基本的なライブラリしか用意されていないのでエクスプローラを一から作成する必要ありです。
で、その大枠が出来たら、G1M→テキストコンバータ、それからコンパイラへという流れになるかと思います。
>あ"、それは言い過ぎのような...
海外が本場のグラフ電卓ですけど、海外を見渡してもここまで深く掘り下げたCasioBasicのコマンドリファレンスはどこにもないのではと思います(^^) 動画もあるので一目瞭然ですし。
CASIOのマニュアルの説明や使用例があまりにも簡略化しすぎているのは、CasioBasic解説本orWEBが出てくることを期待したもの?とか考えてしまいます(^^;
>つい最近は、Cls の間違いがあって、慌てて幾つかの記事を修正したところです。
>Cls は fx-9860GII ではグラフィックス消去用で、テキスト消去はしません。ClrGraph と違ってグラフ設定にはてを付けずに、ただグラフィックスを消去するのみの機能が Cls です。
Clsはどこから入力するのかもすぐにわからないくらい普段から使ってなかったので全然気が付いてませんでした(^^;
Clsといわれればテキストもグラフィックも全部消去されると考えるのが普通なので、ちょっとややこしいですね。
ClrTextとClrGraphとは違う場所にあるのも分かりにくいですね。
>実は、ViewWindow など、実行後も設定が残るものが、他にも見つかっていて、Casio Basicコンパチのためには、しっかりと洗い出す必要があります。私としては、目標というか動機付けがさらに増えて、嬉しいです。
コンパチにするのは思いのほか大変かもと少々考えてましたけど、管理人様のコマンド探索力があれば百人力です(^^)
>ゆっくりと、ボチボチとお進めください。あまり速いと私もついて行けませんし..
はい、コンパイラともなると一朝一夕に出来るものではないので、少しずつ少しずつ着実にですね(^^)
sentaro様
おはようございます。
ここのところ、帰宅したら速攻で寝るという毎日で、お返事が遅れました。
>判定評価は0かそうでないかでたぶんだいじょうぶでしょうか。
>CasioBasicとの互換チェックで動作の違うところが出てきたらその都度修正する形でいけそうです(^^)
>ンタプリタで出来ることはほぼそっくり再現できると思うのでなんとかなるでしょう、とかなり楽観的です(^^;
>動作を見る限りでは画面退避でメモリが食われてる感じですね。
>アドインでもポップアップ出すときには画面退避する必要があるので同じ感じでコンパイラでもサポートできそうです。
先ずは、ゆっくりと始めて、ボチボチと様子をみて、あるところで、一気に実装を進めるといった感じですね。
>>釈迦に説法は重々承知の上ですが、一応ご参考までに...
>>
http://egadget2.web.fc2.com/archives/_menu.html
>
>ぉお、ありがとうございます!
>少しでも多くの参考資料&ソースを集めておきたいので助かります(^^)
大して参考になるとは思われませんが、記述量節約の参考にはなるかも...とは言っても、今回のプロジェクトでは実際のヒープ量節約がポイントなので、直接は参考にならないかも知れませんが...
>今ではPCでのクロス開発が主流ですけど、やはり本体だけで出来るということに意味がありますね。
そうなんです、このオリジナリティーが、多分一番のポイントではないかと...
>CasioBasicの探索においては世界随一!の管理人様ですから、テスト&デバッグではぜひともよろしくお願いします(^^)
あ"、それは言い過ぎのような...
つい最近は、Cls の間違いがあって、慌てて幾つかの記事を修正したところです。
Cls は fx-9860GII ではグラフィックス消去用で、テキスト消去はしません。ClrGraph と違ってグラフ設定にはてを付けずに、ただグラフィックスを消去するのみの機能が Cls です。
実は、ViewWindow など、実行後も設定が残るものが、他にも見つかっていて、Casio Basicコンパチのためには、しっかりと洗い出す必要があります。私としては、目標というか動機付けがさらに増えて、嬉しいです。
>まだ入り口の段階であれこれと試行錯誤している段階なのでコンパイラまで辿り着けるのはまだちょっと先になりそうです(^^;
ゆっくりと、ボチボチとお進めください。あまり速いと私もついて行けませんし...
管理人様、こんにちは!
>1.Casio Basic でエラーが出ないことを前提として、Casio Basicレベルのエラー処理はコンパイラではスルーするのが良さそうですね。
はい。
>2.条件判定
判定評価は0かそうでないかでたぶんだいじょうぶでしょうか。
CasioBasicとの互換チェックで動作の違うところが出てきたらその都度修正する形でいけそうです(^^)
>3.旧来の命令
インタプリタで出来ることはほぼそっくり再現できると思うのでなんとかなるでしょう、とかなり楽観的です(^^;
>4.テキストベースのコマンド
これまで fx-5800P ベースでほぼ全てのコマンドの調査が出来ていると思いますが、fx-5800P になくて 9860GII にあるテキストベースのコマンドに MENU があります。これ、チョット触ってしたみのですが、結構メモリ食いです。枠を表示したメニューボックスっぽいのを表示するのが、メモリ食いの原因の1つかも知れないと思っています。実行終了してもメニューに戻らないのにメモリを食う理由は、枠表示くらいしか思いつかないのです。
動作を見る限りでは画面退避でメモリが食われてる感じですね。
アドインでもポップアップ出すときには画面退避する必要があるので同じ感じでコンパイラでもサポートできそうです。
>釈迦に説法は重々承知の上ですが、一応ご参考までに...
>
http://egadget2.web.fc2.com/archives/_menu.html
ぉお、ありがとうございます!
少しでも多くの参考資料&ソースを集めておきたいので助かります(^^)
>待ってました!
>PC無しでアドインが作れるなんて、夢の世界です。
今ではPCでのクロス開発が主流ですけど、やはり本体だけで出来るということに意味がありますね。
>大したことはできませんが、微力ながら出来るところはお手伝いできれば良いと思っています。
CasioBasicの探索においては世界随一!の管理人様ですから、テスト&デバッグではぜひともよろしくお願いします(^^)
とはいえ、
まだ入り口の段階であれこれと試行錯誤している段階なのでコンパイラまで辿り着けるのはまだちょっと先になりそうです(^^;
sentaro様
> 各コマンドの動作検証は実際に調べるしかないところですけど、fx-9860GIIをターゲットに定めればOS2.0系でのCasioBasicコンパチを基本路線にして必要に応じて機能拡張するのがよさそうですね。
了解です。
制御構造の解析が最大の山場のような気がしています。
1.Casio Basic でエラーが出ないことを前提として、Casio Basicレベルのエラー処理はコンパイラではスルーするのが良さそうですね。
2.条件判定
コマンドの評価は 0か0以外ですが、Casio Basicでは中途半端ですよね。私が見ている限りでは Getkey のみが戻り値を返して条件判定に使えますが、他のコマンドは void関数扱いなのか returnがあるのか、内部までは分かっていません。
但し、関数を含んだ計算式の評価は 0 か 0以外 ( = FALSE か TRUE) をやっているようです。
If A+B は、If A Or B と同じですし、If AB は If A And B と同じで、A や B が 対数、三角関数などでも適用できます。
3.旧来の命令
多分私が調べた範囲(Casio Basicコマンドリファレンス記載の内容)で問題ないと思います。
実は、コンパイラが旧来の命令にキチンと対応するのは、売りの1つになるのではないかと思っています。
4.テキストベースのコマンド
これまで fx-5800P ベースでほぼ全てのコマンドの調査が出来ていると思いますが、fx-5800P になくて 9860GII にあるテキストベースのコマンドに MENU があります。これ、チョット触ってしたみのですが、結構メモリ食いです。枠を表示したメニューボックスっぽいのを表示するのが、メモリ食いの原因の1つかも知れないと思っています。実行終了してもメニューに戻らないのにメモリを食う理由は、枠表示くらいしか思いつかないのです。
それはさておき、以前MS-DOSベースのメニュープログラムを作ったことがあって、コマンドラインやバッチファイルで MENU とほぼ同じ書式で書いて動作するものです。実は始めてフリーソフトとして公開したCで作ったプログラムなんですが、バッチファイルと併用して使うものです。スペース区切りの引数を、多次元 char配列にして解析しています。あとインラインアセンブラも使ってみたのですが、system( )関数をアセンブラで書けなかったので、結局標準ライブラリを使った方が実行ファイルがコンパクトになるので、無駄な努力を止めた跡が残っています(^^;)
釈迦に説法は重々承知の上ですが、一応ご参考までに...
http://egadget2.web.fc2.com/archives/_menu.html
> Ftune2がお役に立てて嬉しい限りです(^^)
このアドイン1つで、電卓プログラミングの世界が広がるわけで、素晴らしいツールです。
> あれこれ考えていると、やはり電卓本体で完結出来ないと、という感じになってきますしアドイン形式で攻めてみたいと思ってます。
待ってました!
PC無しでアドインが作れるなんて、夢の世界です。
> まずは基本的なところでG1Mからテキストにコンバートするアドインからですね(^^)
大したことはできませんが、微力ながら出来るところはお手伝いできれば良いと思っています。
管理人様、こんにちは!
>特に、旧来の命令は厄介そうです。?命令の機種による違いや、内部カーソルの存在、そしてgotoの動作がありますが、Casio Basicコンパチにするにも有りですが、拡張モードで本来有るべき動作にしてしまうのも良いかも知れませんね。
各コマンドの動作検証は実際に調べるしかないところですけど、fx-9860GIIをターゲットに定めればOS2.0系でのCasioBasicコンパチを基本路線にして必要に応じて機能拡張するのがよさそうですね。
>スプライト処理など望むべくもありませんが、画面全体のコピーや貼り付けができるので、少ないメモリでグラフィックスデータをやりくりして、動的なグラフィックスプログラムを作るために、Casio Basicでのリングバッファの使いこなしがその1つになりそうな気がして、そのあたりを触っていました。貧弱なコマンド体系でどうやれば良いのか、試行錯誤であっと言う間に時間が過ぎてしまいました。
機能探索と使いこなしの試行錯誤が楽しめるのがCasioBasicの醍醐味ですよね(^^)
>Ftune2 が猛烈と役立ったことは言うまでもありません。このアドインがなければ、やる気が起きないことでしょう。
Ftune2がお役に立てて嬉しい限りです(^^)
>そうこうするうちに、Casio Basic のグラフィックすすコマンドで発見があったりして...
お!これはまた楽しみです!
>まぁ、フラッシュメモリは十分に空きがあるので、多少肥大化しても問題無く、コンパイラならば多少時間がかかっても待てますから、わかりやすさ優先で始められるのが良いかも知れません。
あれこれ考えていると、やはり電卓本体で完結出来ないと、という感じになってきますしアドイン形式で攻めてみたいと思ってます。
まずは基本的なところでG1Mからテキストにコンバートするアドインからですね(^^)
sentaro様
> お、またまた何か新しいネタが発掘されたでしょうか?(^^)
グラフィックスコマンドは、テキストベースのコマンドに比べて、コマンドが少なすぎて、普通にやりたいことが出来ない感じがしていて、それをサポートする定番アルゴリズムというか、そんなのが有りそうな気がしています。
スプライト処理など望むべくもありませんが、画面全体のコピーや貼り付けができるので、少ないメモリでグラフィックスデータをやりくりして、動的なグラフィックスプログラムを作るために、Casio Basicでのリングバッファの使いこなしがその1つになりそうな気がして、そのあたりを触っていました。貧弱なコマンド体系でどうやれば良いのか、試行錯誤であっと言う間に時間が過ぎてしまいました。
Ftune2 が猛烈と役立ったことは言うまでもありません。このアドインがなければ、やる気が起きないことでしょう。
そうこうするうちに、Casio Basic のグラフィックすすコマンドで発見があったりして...
なんだかんだといって、グラフィックスコマンドもよく作り込まれていると思います。こうあるべきという原則にきちんと従ってくれるのが、触っていて面白いです。例外さえ見つければ良いのですから...
> 各コマンドの中間コードや格納形式がわかれば、CG10/20やFD10Proみたくテキストファイルとのコンバーターが作れますね。
はい、それだけでなく、Casio Basic でアドインが作れるという素晴らしいツールが出来ますね。
> やはり出来れば本体だけで完結する形にしたい所ですが、SHのマシン語を直に扱うというのはRPL以上にかなりハードル高そうで躊躇してしまいます(^^;
まぁ、フラッシュメモリは十分に空きがあるので、多少肥大化しても問題無く、コンパイラならば多少時間がかかっても待てますから、わかりやすさ優先で始められるのが良いかも知れません。
sentaro様
> 中間コードの対応表はすでにこちらにありました(^^)
>
http://media.taricorp.net/prizm/simon_chm/fxCG20_OPCODES.htm
>
> fx-9860GIIも同じコードのようです。
おお、簡単に調べられるものは、探した方が早いですね。
制御構造をどうやって解析するか?
このあたり、まともに考えたことが有りません。面白そうですね。
特に、旧来の命令は厄介そうです。?命令の機種による違いや、内部カーソルの存在、そしてgotoの動作がありますが、Casio Basicコンパチにするにも有りですが、拡張モードで本来有るべき動作にしてしまうのも良いかも知れませんね。
コンパイラプロジェクトは、Basicで簡単にアドインを作れるツールに化ける可能性もあります。
まるで、Active Basicのカシオ版みたいな感じでワクワクしてきます。
管理人様、
>今日は、Casio Basic グラフィックスで目一杯遊んでいました。
お、またまた何か新しいネタが発掘されたでしょうか?(^^)
>ところで、コンパイラですが、g1mファイルをバイナリエディタで覗いてみると、各コマンドに対応するコードを抽出できそうですね。
>取りあえず、対象となるコマンドを羅列した g1mファイルを作って抽出できるのではないかと思います。
>コマンドに対応するコードがどうなっているのか、面白そうですね。
各コマンドの中間コードや格納形式がわかれば、CG10/20やFD10Proみたくテキストファイルとのコンバーターが作れますね。
>やはり、パソコンでのコンバート作業を行うのが現実的ですか?
パソコンでのソースコンバート方法だとSHのマシン語に触れることなくSDKを利用できますから一番手っ取り早いですね。
でも、その形だと、最初からアドインでCソースを書いた方がはるかに便利な気がしていまいちな感じもあります(^^;
ですので、やはり出来れば本体だけで完結する形にしたい所ですが、SHのマシン語を直に扱うというのはRPL以上にかなりハードル高そうで躊躇してしまいます(^^;
sentaro様
こんばんは、
今日は、Casio Basic グラフィックスで目一杯遊んでいました。
ところで、コンパイラですが、g1mファイルをバイナリエディタで覗いてみると、各コマンドに対応するコードを抽出できそうですね。
取りあえず、対象となるコマンドを羅列した g1mファイルを作って抽出できるのではないかと思います。
コマンドに対応するコードがどうなっているのか、面白そうですね。
> fx-9860GIIのマシン語環境は充実しているとはいえないですし、実現させるまでには相当の高いハードルを越えないとですね(^^;
やはり、パソコンでのコンバート作業を行うのが現実的ですか?
> CASIOにはALGEBRA FXというCAS内蔵グラフ電卓があったのですが、あれはV30が載っていてMSDOSコンパチDOSが動いているらしいです。
> メモリが少ないのでパソコン同等とはいかないですが、もしメモリがもっと実装されていればHP 200LXのようなコンパクトなDOS電卓になっていたかもしれないです。
面白い製品ですね。DOSが使われなくなった現在としては、ちょっと残念です。
管理人様、こんにちは!
>その前段階として、予めCasio Basicをテキストファイル化しておき、それをCソースに変換する部分からスタートする。
>g1mファイルをテキストに変換するプログラムを別途作る。
これはCasioBasicの中間コードがわかれば難しくはなさそうです。
>全て電卓上で出来れば文句ないのですが、難しそうですよね。
ここが一番の難関ですね(^^;
すべて電卓上でとなると、fx-9860GIIのハード規模から考えると、Basicソースからいきなりマシン語形式に変換する必要がありそうですし、コンパイラをアドインとして実装して、そこからBasicファイルを選択し、そのままコンパイル実行という形になるでしょうか。
fx-9860GIIのマシン語環境は充実しているとはいえないですし、実現させるまでには相当の高いハードルを越えないとですね(^^;
CASIOにはALGEBRA FXというCAS内蔵グラフ電卓があったのですが、あれはV30が載っていてMSDOSコンパチDOSが動いているらしいです。
メモリが少ないのでパソコン同等とはいかないですが、もしメモリがもっと実装されていればHP 200LXのようなコンパクトなDOS電卓になっていたかもしれないです。
akatuki様、こんにちは!
>早速、訪問させて戴きました。いやぁ、いいです !
>当方の所でも、ネタにし度 !
ぜひぜひ!
楽しみにお待ちしてます(^^)
親分、夜分にどうも。
早速、訪問させて戴きました。いやぁ、いいです !
当方の所でも、ネタにし度 !
所で、CASIO BASIC のコンパイラネタで盛り上がって居られる様ですが、
そちらは門外漢なので ... 。
sentaro様
> あ゛…(^^;
> CasioBasicは仕様的には固まってきているのでコンパイラにもチャレンジしてみたいところではありますね。
> どんなインターフェースにするか、最初のハードルを越えられるかどうかが鍵になりそうです。
おぉ、有りがたいです。
色々な方法が考えられますよね。
g1mファイルをSDKのCソースに変換して、あとはSDKでコンパイルする方法。
その前段階として、予めCasio Basicをテキストファイル化しておき、それをCソースに変換する部分からスタートする。
g1mファイルをテキストに変換するプログラムを別途作る。
全て電卓上で出来れば文句ないのですが、難しそうですよね。
> >あまり懇切丁寧にしては誤解を招きますし、さりとて Ftuneの良さは安全性にあるし、悩んでしまうんですね。時間をかけてゆっくりと、認知してもらうしか無いかも知れません。
>
> はい、そこのあたりは管理人様に全面的におまかせします(^^)
ボチボチやらせて頂きますね。
管理人様、こんにちは!
>是非、コンパイラ作ってください(^^;)
あ゛…(^^;
CasioBasicは仕様的には固まってきているのでコンパイラにもチャレンジしてみたいところではありますね。
どんなインターフェースにするか、最初のハードルを越えられるかどうかが鍵になりそうです。
>実は、Ftuneのエントリーへのアクアセスが、ゆっくりですが確実に増えてきています。当ブログが fx-9860GII も扱っていると思って貰えるようになってきているのかも知れません。
お!それはすごいです。
fx-9860GIIのユーザーが着実に増えてきているということの表れでもありますね(^^)
>あまり懇切丁寧にしては誤解を招きますし、さりとて Ftuneの良さは安全性にあるし、悩んでしまうんですね。時間をかけてゆっくりと、認知してもらうしか無いかも知れません。
はい、そこのあたりは管理人様に全面的におまかせします(^^)
sentaro様
こんばんは、
>CasioBasicコンパイラは欲しいです!
ですよねー(^_^)/
DOS用のBASICで実行ファイルを生成できるものがありましたよね。但し、Cで作るよりもとても大きなファイルになるし、速度も遅かったのですが、ネイティブコンパイラではありました。
>その昔、Basicコンパイラをちょこっとかじったことあるので、CasioBasicコンパイラの可能性を考えたことがありましたけど実現しないまま今に至ります(^^;
是非、コンパイラ作ってください(^^;)
昔、C Magazine だったか Dr. Dobb's Journal だったか、コンパイラ作成の特集があったように思います。コンパイラが作れれば一人前と思ったものです。
>CG10/20においては現状のままでもTI84シリーズに負けている部分は少ないので、もしかしたらあと数年は何も変わらない可能性ありますね(^^;
う~む、それなら今買っても後悔しないですね....
>NspireのLuaが出てくるまではfx-9860GシリーズのCasioBasicは最速クラスの言語でした。
>LuaでもJavaでもCでも進化したCasioBasicでも何でもいいですから今後もCASIOには内蔵言語の速度はやはり世界最速レベルであって欲しいと思います(^^)
そうなんですか....カシオも頑張っているんですね。
今は、HO PRIME も出てきているので、ここはカシオさんに巻き返して頂きたいとこころです。
>組み込みOSでは5割以上のシェアあるのに、電卓でTRONが使われたという話は聞いたことないですよね。
>管理人様のおっしゃるようにTRON載ってる電卓があってもよさそうですけど、高機能電卓は海外主導ってことも要因にありそうですね。
Casio がダメならシャープがやって欲しいですね。面白いことになるでしょうね。
>いえいえ、もう十分すぎるほどにアピールしていただいています(^^)
>もう少し速ければという要求に応えるためのFtuneなので、ノーマル速度で問題ない場合は出番のないツールですから(^^;
実は、Ftuneのエントリーへのアクアセスが、ゆっくりですが確実に増えてきています。当ブログが fx-9860GII も扱っていると思って貰えるようになってきているのかも知れません。
あまり懇切丁寧にしては誤解を招きますし、さりとて Ftuneの良さは安全性にあるし、悩んでしまうんですね。時間をかけてゆっくりと、認知してもらうしか無いかも知れません。
管理人様、こんにちは!
>或いは、涼しい顔して Basic コンパイラ搭載として過去のCasi Basic 資産を生かせれば、文句無しですね!
CasioBasicコンパイラは欲しいです!
その昔、Basicコンパイラをちょこっとかじったことあるので、CasioBasicコンパイラの可能性を考えたことがありましたけど実現しないまま今に至ります(^^;
>このあたりは、カシオがその気になるかどうかだけの問題ではないかと思います。
CG10/20においては現状のままでもTI84シリーズに負けている部分は少ないので、もしかしたらあと数年は何も変わらない可能性ありますね(^^;
>Luaで、TIに挑むとか...
NspireのLuaが出てくるまではfx-9860GシリーズのCasioBasicは最速クラスの言語でした。
LuaでもJavaでもCでも進化したCasioBasicでも何でもいいですから今後もCASIOには内蔵言語の速度はやはり世界最速レベルであって欲しいと思います(^^)
>すごくニッチなところでは、TRONは良いとおもいます。なんせ、made in Japan ですからね!
>B-TRONは、フロッピーディスク1枚に収まるシステムで、Windowシステムが実装できる高性能!電卓向きです。
組み込みOSでは5割以上のシェアあるのに、電卓でTRONが使われたという話は聞いたことないですよね。
管理人様のおっしゃるようにTRON載ってる電卓があってもよさそうですけど、高機能電卓は海外主導ってことも要因にありそうですね。
>Ftuneの良さをもっとアピールしたいところですが、万人向けというわけにもゆかず、まだ良い切り口が定まっていません。
>そこは、申し訳無いところですm(__)m
いえいえ、もう十分すぎるほどにアピールしていただいています(^^)
もう少し速ければという要求に応えるためのFtuneなので、ノーマル速度で問題ない場合は出番のないツールですから(^^;
sentaro様
こんばんは、
内蔵言語は、スクリプト系になるでしょうから、ClassPadもターゲットに考えてObject Oriented 風となれば、javaかLua あたりでしょうか?
TI と同じは避けたいでしょうから、java 系が妥当かも知れませんね。
或いは、涼しい顔して Basic コンパイラ搭載として過去のCasi Basic 資産を生かせれば、文句無しですね!
> 直接のライバルであるTIの84Cシリーズはモデルチェンジして表示速度がモノクロ機種と遜色ないくらい高速化されましたし、CG10/20もfx-9860GII同等にまではいかなくて現状の2倍くらいになってくるとかなり違ってきますね。
このあたりは、カシオがその気になるかどうかだけの問題ではないかと思います。
> CG10/20は公式SDKがないですから、それはすごくいい案です(^^)
SHシリーズを使うなら、内部はCとアセンブラで実装しているわけなので、CのSDKが合理的なように思えてなりません。Luaでキャプシュレートするのも合理的ですよね!
但し、カシオなら泥臭くCで良いかも知れません。
> TIのLuaのように新たに高速な言語を内蔵するのもよいですよね(^^)
Luaで、TIに挑むとか...
すごくニッチなところでは、TRONは良いとおもいます。なんせ、made in Japan ですからね!
B-TRONは、フロッピーディスク1枚に収まるシステムで、Windowシステムが実装できる高性能!電卓向きです。
> OS1.0系は最速のCasioBasic環境という意味がありましたけど、今ではOS2.0でもSH4A+Ftune2の爆上げ環境がありますし(^^;
Ftuneの良さをもっとアピールしたいところですが、万人向けというわけにもゆかず、まだ良い切り口が定まっていません。
そこは、申し訳無いところですm(__)m
管理人様、こんにちは!
>fx-9860GIIで9MHzにしてやってみました。壁で反転する様子など、細かい動作がよく見えますね!
>fx-CG10の速度を体験できました(*_*;
CG10は内部演算ではクロック速い分は確実に速いですが、表示が絡むと3倍くらい遅くなりますね(^^;
>次の高精細カラーLCD機は、描画速度の改善を是非とも実現して頂きたいですね!
直接のライバルであるTIの84Cシリーズはモデルチェンジして表示速度がモノクロ機種と遜色ないくらい高速化されましたし、CG10/20もfx-9860GII同等にまではいかなくて現状の2倍くらいになってくるとかなり違ってきますね。
>あるいはAdd-in開発環境を内蔵してくれると、最高です。
CG10/20は公式SDKがないですから、それはすごくいい案です(^^)
>Casio Basicの簡便さとCの柔軟性を併せ持つダブル開発環境の実現を望みます!
>あ、Cでなくても良いので...
TIのLuaのように新たに高速な言語を内蔵するのもよいですよね(^^)
>ところで、Casio Basicの世代を言う時は、機種ごとのOSバージョンを言わないとダメ、わかっていも、自分が持っていないと、ついつい忘れてしまうのです。
>ご指摘と情報、ありがとうございますm(__)m
いえいえ、
OSのバージョンアップできないCFX-9850GC+とかはOSバージョンというよりも機種になってしまいますけど、
fx-9860G系はすべての機種でOS2,0にバージョンアップできるので2.0以上前提ということでいいと思います(^^)
OS1.0系は最速のCasioBasic環境という意味がありましたけど、今ではOS2.0でもSH4A+Ftune2の爆上げ環境がありますし(^^;
sentaro様
こんばんは、
fx-9860GIIで9MHzにしてやってみました。壁で反転する様子など、細かい動作がよく見えますね!
fx-CG10の速度を体験できました(*_*;
次の高精細カラーLCD機は、描画速度の改善を是非とも実現して頂きたいですね!
あるいはAdd-in開発環境を内蔵してくれると、最高です。
DrunkBugは、本体だけで一気に作ったのですが、この手軽さは電卓の最大の利点です。これを活かす方向性は失わないように、カシオにはお願いしたいです。
Casio Basicの簡便さとCの柔軟性を併せ持つダブル開発環境の実現を望みます!
あ、Cでなくても良いので...
ところで、Casio Basicの世代を言う時は、機種ごとのOSバージョンを言わないとダメ、わかっていも、自分が持っていないと、ついつい忘れてしまうのです。
ご指摘と情報、ありがとうございますm(__)m
管理人様、こんにちは!
>ライフゲームのように、画面全体の複数のピクセルを同時に更新するのは、Casio Basic ではなかなか厳しそうです。
更新エリアを小さくして、まったりと更新状況を見るのも一興ですけど、それでも速度的には厳しそうですね(^^;
やはりライフゲームとなるとアドインでの領域ですね。
>見てみたいです...
fx-9860GIIから比較すると約3分の1の速度なのでクロックダウンすると似た雰囲気になります。
Ptune2で最大限にオーバークロックしてやっとfx-9860GIIノーマル速度を追い越せる感じですから、
CG10/20のCasioBasicでのグラフィックスはかなりの忍耐を要します(^^;
>やはり、この機種の Casio Basic は、1世代前のようですね。
>fx-5800P にも RanInt# はありますので、これ以降が新世代と言って良さそうです。
fx-9860Gのv1.04だとCFX-9860GC+同様にRanInt#もMODもないので、初期のfx-9860Gだとfx-5800Pの完全に上位互換だったというわけではなさそうです(^^;
v2.0になって一応の完成系という状況でしょうか。
sentaro様
こんばんは、
> ランダムな動きだけで絶妙な模様が出来上がっていく様がすごく面白いです。
> ドットがついたり消えたりするのを見ているとライフゲームが浮かびますね。
ライフゲームのように、画面全体の複数のピクセルを同時に更新するのは、Casio Basic ではなかなか厳しそうです。
オーバークロックにもってこいです。
> fx-CG10だとちょっとのろのろなので、動いている様子がはっきりとわかります(^^;
見てみたいです...
> CFX-9850GC+だとRanInt#とMODがないのと、Plotの初期化にバグがある?ようで、
> RandInt → Ran#
> MOD → Frac
> PlotOn 63,31 → 63→X:31→Y
> という感じで手直し必要でしたけど、いざ動きだすとCG10よりは若干速いです。
やはり、この機種の Casio Basic は、1世代前のようですね。
fx-5800P にも RanInt# はありますので、これ以降が新世代と言って良さそうです。
管理人様、こんにちは!
ランダムな動きだけで絶妙な模様が出来上がっていく様がすごく面白いです。
ドットがついたり消えたりするのを見ているとライフゲームが浮かびますね。
fx-CG10だとちょっとのろのろなので、動いている様子がはっきりとわかります(^^;
CFX-9850GC+だとRanInt#とMODがないのと、Plotの初期化にバグがある?ようで、
RandInt → Ran#
MOD → Frac
PlotOn 63,31 → 63→X:31→Y
という感じで手直し必要でしたけど、いざ動きだすとCG10よりは若干速いです。
この2機種と比べるとfx-9860GIIは結構速く感じられます(^^;