で、色々と検討した結果、ResEditを使うと、VisualStudioライクなRAD環境で
リソース生成が出来て、且つ、これをリソースDLLに変換できることが分かりました。
ってことで、なでしこのGUI用DLLを作成し、ここから上記のリソースDLLを読み込んで
やれば、なんとかなりそうかなあ…。ただ、この方法にはいくつか問題がありまして…
・リソースDLLと同時に、各リソース(ボタンとか、テキストエリアとか)のIDを定義した
ヘッダファイルを同時に生成し、これをなでしこ用DLLで読み込んだ上でなでしこ側の
スクリプトと共有しないといけない。
・DLL側でGUIを生成したとしても、おそらくWin32のメッセージ処理用キューは
なでしこ(gnako)が持っているメッセージキューと同じになる。これを回避するために
なでしこ用DLL内でスレッドを生成して、そこでメッセージを受ける様にすれば、
「母艦」のメッセージとは区別できるが、メインスレッド(つまりなでしこ本体)との
通信方法は考える必要がある。
・gnakoの場合、立ち上げた時点で「母艦」フォームが表示されてしまっていて、
これを消すとgnako自体消えてしまいそうな気がする。
上記ResEditでリソースを作る方法以外にも、Tcl/Tkを用いてなでしこ/Tkみたいな
ラッパーを作る、wxWidgetsのラッパー、Qtなどなど色々考えたけどやっぱり母艦が
自動で生成されていることで相性がイマイチ。vnakoの方は重そうなので、そもそも
却下、GUI(フォーム)が生成されないcnakoなら…と思ったけど、コマンドラインの
DOS窓が消せない…ってことでいずれも破綻しました( ̄□ ̄;。う~む。
ってこでなでしこのGUI環境をいじる別の方法を考えた分けですが、可能性としては
以下の二つ。
・nako.dllにはインタプリタ本体も入ってそうなので、自分でwnako.exeみたいなのを
作って、無理やりResEdit+リソースDLLに対応してみる。
・Win32は諦めて、別の汎用GUI的なものを目指す。
自分でexe作るのも面倒ですし、そもそもインタープリタ部の使い方も説明はない
ため破綻しそう…ってことで後者を考えます。より汎用的ってことで、ローカル
WEBサーバを用いたブラウザ上でのGUIとの連携を考えることにします。
2014年11月24日月曜日
2014年11月3日月曜日
【なでしこ】Win32APIを使ったGUI(案) その1
なでしこには「積み木デザイナー」と言うRADツールが付いてるんですが、
これはあくまでちょっとしたGUIプログラムを作るためのもの。複雑な、
GUIのパーツがイッパイ付いてるものを作ると、それを読み込むだけで
「積み木デザイナー」が重くなり、ロードされるのに結構時間がかかり
ます。
なでしこのGUI部分は\lib以下の「gnako.nako」「windows.nako」がその定義。
windows.nakoがWin32APIのラッパーで、gnako.nakoにはそれらを使った
なでしこの関数、グループなどの定義があります。
このやり方でも全く問題ないんですが…
・gnako.nakoに定義されたグループや関数のコールは、なでしこベースに
なるので結構遅い(Win32APIをコールするより、なでしこのコールが
入る分、一段遅い)
・windows.nakoのラッパーに定義されているメッセージ定数は、グローバル
として定義されているので、イッパイメモリ食ってる。
・積み木デザイナーは「簡易」RADツールなので、複雑なものは作れない。
ってことで、もうちょっと複雑なGUIアプリを、実行速度も考慮しながら
作れる様に考えます。
これはあくまでちょっとしたGUIプログラムを作るためのもの。複雑な、
GUIのパーツがイッパイ付いてるものを作ると、それを読み込むだけで
「積み木デザイナー」が重くなり、ロードされるのに結構時間がかかり
ます。
なでしこのGUI部分は\lib以下の「gnako.nako」「windows.nako」がその定義。
windows.nakoがWin32APIのラッパーで、gnako.nakoにはそれらを使った
なでしこの関数、グループなどの定義があります。
このやり方でも全く問題ないんですが…
・gnako.nakoに定義されたグループや関数のコールは、なでしこベースに
なるので結構遅い(Win32APIをコールするより、なでしこのコールが
入る分、一段遅い)
・windows.nakoのラッパーに定義されているメッセージ定数は、グローバル
として定義されているので、イッパイメモリ食ってる。
・積み木デザイナーは「簡易」RADツールなので、複雑なものは作れない。
ってことで、もうちょっと複雑なGUIアプリを、実行速度も考慮しながら
作れる様に考えます。
2014年9月29日月曜日
【Quartz】数式
数式は大体はC言語と一緒です。
------------------------------------------------------------
a = 1 + 2 * 3 / 4 #四則演算
b = (1 + 2) * 3 #( )付き演算
c++ #インクリメント、デクリメント
a = 1 << 2 #ビットシフト
b = a & 0x00000001 #ビット論理演算
c = "moji" + "retsu" #文字列連結
------------------------------------------------------------
ビットの論理演算は数値に対してのみ有効で、結果は16進に
なります。文字列の連結は便利そうなので入れておきます。
文字列と文字列意外の連結は…どうしようかなあ。文字列として
返す様にしようかな。
------------------------------------------------------------
a = 1 + 2 * 3 / 4 #四則演算
b = (1 + 2) * 3 #( )付き演算
c++ #インクリメント、デクリメント
a = 1 << 2 #ビットシフト
b = a & 0x00000001 #ビット論理演算
c = "moji" + "retsu" #文字列連結
------------------------------------------------------------
ビットの論理演算は数値に対してのみ有効で、結果は16進に
なります。文字列の連結は便利そうなので入れておきます。
文字列と文字列意外の連結は…どうしようかなあ。文字列として
返す様にしようかな。
2014年9月26日金曜日
【Cubieboard2】コンパイル備忘録 その2
Buildrootのmakeができたら、これをSDカードにます。4GBぐらいあれば
いいみたいですが、8GBのものを使いました(実際、イメージはそんなに
大きくないので、2GBとかでもいけるかもしれません)。
■書き込み用のスクリプトを起動
# sudo ./board/cubietech/cubieboard/mkcubiecard.sh output/images/ /dev/sdd
Buildrootのフォルダ直下で、上記を実行。最後の/dev/sddの部分は環境に
ことなります。mountされてるとエラーになる可能性があるので、あらかじめ
umountしておきます。
mount時、/dev/sdd1とかなってますが、引数師弟の場合は/dev/sddとします。
これを実行すると、SDカードにすべて書き込んでくれます♪。
■起動!
microSDカードをCubieboard2に挿入して起動!。シリアルポートで動作確認
できますよ~。ちなみにシリアルポート接続はFTDIのUSB接続タイプのを使って
ますが、Cubieboad2のシリアルポート(USB1/2ポートのすぐ後ろくらいにある
4pinヘッダのコネクタ)には
GND...黒
VCC...×
RX...緑
TX....白
の様に接続。VCCに赤のラインをつなぐと動きませんので、ここはNCです。
■シリアルコンソール
Ubuntuの場合、「Serial port terminal(シリアルポート端末)」と言うソフトがあるので、
ソフトウェアセンターでインストールできます。ただし、これを普通に動作させると
「許可がありません」とか言われるので、コンソール(端末)から
# sudo gtkterm &
でOK。シリアルポートはボーレートが115200、8bit、stop:1bit、パリティーなし、で
動作してます。
やってみたら意外と簡単でした♪。Buildrootすげー。
いいみたいですが、8GBのものを使いました(実際、イメージはそんなに
大きくないので、2GBとかでもいけるかもしれません)。
■書き込み用のスクリプトを起動
# sudo ./board/cubietech/cubieboard/mkcubiecard.sh output/images/ /dev/sdd
Buildrootのフォルダ直下で、上記を実行。最後の/dev/sddの部分は環境に
ことなります。mountされてるとエラーになる可能性があるので、あらかじめ
umountしておきます。
mount時、/dev/sdd1とかなってますが、引数師弟の場合は/dev/sddとします。
これを実行すると、SDカードにすべて書き込んでくれます♪。
■起動!
microSDカードをCubieboard2に挿入して起動!。シリアルポートで動作確認
できますよ~。ちなみにシリアルポート接続はFTDIのUSB接続タイプのを使って
ますが、Cubieboad2のシリアルポート(USB1/2ポートのすぐ後ろくらいにある
4pinヘッダのコネクタ)には
GND...黒
VCC...×
RX...緑
TX....白
の様に接続。VCCに赤のラインをつなぐと動きませんので、ここはNCです。
■シリアルコンソール
Ubuntuの場合、「Serial port terminal(シリアルポート端末)」と言うソフトがあるので、
ソフトウェアセンターでインストールできます。ただし、これを普通に動作させると
「許可がありません」とか言われるので、コンソール(端末)から
# sudo gtkterm &
でOK。シリアルポートはボーレートが115200、8bit、stop:1bit、パリティーなし、で
動作してます。
やってみたら意外と簡単でした♪。Buildrootすげー。
2014年9月21日日曜日
【Cubieboard2】コンパイル備忘録 その1
Cubieboard2を買ってほったらかしになっていたので、それ様のBootイメージを
作ってみようかと思います。
公式サイトではYocto使う様に書かれてたり、Debianイメージが配布されていたり
するんですが、ウチの非力なPCではYoctoのコンパイルには時間がかかりすぎるし
Debianは色々入りすぎてる感じ…。ってことで 割とお手軽そうなBuildrootを選択。
■Tool Chain
Ubuntuの場合はapt-getで取れます。
■U-Boot
gitで取ってきます。
# git clone https://github.com/linux-sunxi/u-boot-sunxi.git
取ってきたらu-boot-sunxi/に入って、まずはConfigを作ります。
# make CROSS_COMPILE=arm-linux-gnueabihf- Cubieboard2_config
U-Boot本体を作ります。
# make CROSS_COMPILE=arm-linux-gnueabihf-
■ツール類
gitで以下の2つを取ってきます。
sunxi-tools/に入って、ツールをまず作ります。
# make fex2bin
sunxi-boards/sys_config/a20に入ります。ここに目的のcubieboard2.fexファイルが
あります。これはボードのハード設定諸々を記述したもので、これをコンパイルしてbin
ファイルにした後、U-bootからKernelに引き渡す様です。
# ../../../sunxi-tools/fex2bin cubieboard2.fex script.bin
生成されたscript.binが目的のファイルです。
※Buildrootを取ってくると、上記も一緒に入っててAutoでコンパイルしてくれてました。
なので、Buildroot使う場合は必要ないです。
■Buildroot
gitでも取れますが、今回は
http://buildroot.uclibc.org/download.html
からtar.gzファイルを取ってきて展開。
# tar zxvf buildroot-2014.08.tar.gz
buildroot-2014.08/に入ってコンパイル。まずはconfig作ってから本体のmake。
# make cubieboard2_defconfig
# make
今日はここまで♪。
作ってみようかと思います。
公式サイトではYocto使う様に書かれてたり、Debianイメージが配布されていたり
するんですが、ウチの非力なPCではYoctoのコンパイルには時間がかかりすぎるし
Debianは色々入りすぎてる感じ…。ってことで 割とお手軽そうなBuildrootを選択。
■Tool Chain
Ubuntuの場合はapt-getで取れます。
# apt-get install gcc-arm-linux-gnueabihf
# git clone git://github.com/linux-sunxi/sunxi-tools.git # git clone git://github.com/linux-sunxi/sunxi-boards.git
※Buildrootを取ってくると、上記も一緒に入っててAutoでコンパイルしてくれてました。
なので、Buildroot使う場合は必要ないです。
■Buildroot
gitでも取れますが、今回は
http://buildroot.uclibc.org/download.html
からtar.gzファイルを取ってきて展開。
# tar zxvf buildroot-2014.08.tar.gz
buildroot-2014.08/に入ってコンパイル。まずはconfig作ってから本体のmake。
# make cubieboard2_defconfig
# make
今日はここまで♪。
2014年9月1日月曜日
【Quartz】変数について
コメントには"#"を使います
------------------------------------------------------------
#コメント
a = 123 #コメントは文の後ろでも可
#複数行コメント書きたいときは
#各行の先頭に"#"が必要です
------------------------------------------------------------
変数はCっぽい感じにしますが、型宣言による初期化は必要としない
ことにします。
------------------------------------------------------------
a = 123 #整数
b = "mojiretsu" #文字列
c = 0.123 #浮動小数点
d = 0x123 #Hex値
e = [00112233] #データ列
------------------------------------------------------------
変数の型は代入する値で決まります。言い換えれば、代入する
毎に型が決定されます。演算による型の変更は…まだ考えて
ません(^^;。
Hex値は内部でunsigned longで扱われます。データ列はHex値の
"0x"を省いた16進値を連続で書き込むと、そのデータがバッファに
記述されるようにします。MAX値は16byteまでです。通信フレーム
とか扱ってると、連続値入力したいときが良くあるので、この型を
設けます。
ポインタはどうしようかなあ…。複雑になるからとりあえず止めとくか。
------------------------------------------------------------
#コメント
a = 123 #コメントは文の後ろでも可
#複数行コメント書きたいときは
#各行の先頭に"#"が必要です
------------------------------------------------------------
変数はCっぽい感じにしますが、型宣言による初期化は必要としない
ことにします。
------------------------------------------------------------
a = 123 #整数
b = "mojiretsu" #文字列
c = 0.123 #浮動小数点
d = 0x123 #Hex値
e = [00112233] #データ列
------------------------------------------------------------
変数の型は代入する値で決まります。言い換えれば、代入する
毎に型が決定されます。演算による型の変更は…まだ考えて
ません(^^;。
Hex値は内部でunsigned longで扱われます。データ列はHex値の
"0x"を省いた16進値を連続で書き込むと、そのデータがバッファに
記述されるようにします。MAX値は16byteまでです。通信フレーム
とか扱ってると、連続値入力したいときが良くあるので、この型を
設けます。
ポインタはどうしようかなあ…。複雑になるからとりあえず止めとくか。
2014年8月18日月曜日
【Quartz】プログラミング言語を作…りたい話
組み込み環境のLinuxでドライバを作る場合、ドライバ自体は割りと
簡単に作れるけど、一番面倒なのがテスト。ドライバはGPIO使って
LEDとかスイッチとか制御するだけでも、そのテスト用のアプリは
意外と面倒なんですよね~。
あと、特定機能のライブラリとか作る場合も一緒。ライブラリをコール
するためのサンプルアプリとかって、網羅的に機能を試そうとすると
結構複雑な構成になるわけです。
今まではしょぼ目のコマンドセットを使っていて、まあこれでも大体
目的は果たせてたんだけど、色々欲張るうちにIF文やループの機能が
増えていって、字句解析、構文解析を端折ったような構成だったから
内部がどんどん複雑に…。テスト用なのでしっかり作る必要性も
ないっちゃないんだけど、ここらでちゃんとしたものを作っておいても
いいかなあ…と言うのが動機です。
Luaを使っても良かったんだけど、簡素に出来てるLuaであっても
目的にはちょっとオーバースペック。オブジェクト指向っぽいもの
とか全然必要ないし( ̄ー ̄)。BASICのサブセットでもいいぐらい。
■名前:Quartz
・まだ実装もしてないけど名前だけは決まってると言う…(^^;。
プログラム言語の名前は飲料系(コーヒーかな)とか宝石系とか
動物系が多いんだけど、「組み込んで使えるちょっとしたもの」
が良かったので石英(Quartz)としてみました。
■機能・特徴
・C言語のライブラリとして提供される。
・アプリケーションに組み込んで使う
・機能的には最低限の言語機能だけ提供し、その他の必要な機能は
ユーザーがQuartz上で使える関数を(C言語で)実装するような
イメージ。
・最低限…とはいいつつ、自分が良くつかうのでスレッドとソケットは
扱えるようにする。
簡単に作れるけど、一番面倒なのがテスト。ドライバはGPIO使って
LEDとかスイッチとか制御するだけでも、そのテスト用のアプリは
意外と面倒なんですよね~。
あと、特定機能のライブラリとか作る場合も一緒。ライブラリをコール
するためのサンプルアプリとかって、網羅的に機能を試そうとすると
結構複雑な構成になるわけです。
今まではしょぼ目のコマンドセットを使っていて、まあこれでも大体
目的は果たせてたんだけど、色々欲張るうちにIF文やループの機能が
増えていって、字句解析、構文解析を端折ったような構成だったから
内部がどんどん複雑に…。テスト用なのでしっかり作る必要性も
ないっちゃないんだけど、ここらでちゃんとしたものを作っておいても
いいかなあ…と言うのが動機です。
Luaを使っても良かったんだけど、簡素に出来てるLuaであっても
目的にはちょっとオーバースペック。オブジェクト指向っぽいもの
とか全然必要ないし( ̄ー ̄)。BASICのサブセットでもいいぐらい。
■名前:Quartz
・まだ実装もしてないけど名前だけは決まってると言う…(^^;。
プログラム言語の名前は飲料系(コーヒーかな)とか宝石系とか
動物系が多いんだけど、「組み込んで使えるちょっとしたもの」
が良かったので石英(Quartz)としてみました。
■機能・特徴
・C言語のライブラリとして提供される。
・アプリケーションに組み込んで使う
・機能的には最低限の言語機能だけ提供し、その他の必要な機能は
ユーザーがQuartz上で使える関数を(C言語で)実装するような
イメージ。
・最低限…とはいいつつ、自分が良くつかうのでスレッドとソケットは
扱えるようにする。
【NAS】最終的に
HDDがぶっ飛んだり、BuffaloのNASが使い物にならなかったり…ってことで
最終的にはウチのNAS環境は以下の様な感じに落ち着きました(^^;。
■無線ルータ:Buffalo WZR-600DHP2
・USB-HDDを接続して簡易NASを実現する場合、ファイルシステムがXFSに
なり、しかも古いBuffaloのルータがフォーマットしたXFSと互換性が微妙
なので、USB-HDDの接続は却下
・でも、ちょっとだけファイル共有がしたいので、余っていたSDHC 32GBを
つないでおく(^^;。これだけでも割と便利♪
■サーバ:Acer Revo3610
・メモリは4GBに増設。でも3GBまでしか認識しないんだけどね(T∇T)。
・HDDはSSHDにしてあるけど、Windows7が入っているので、東芝の64GBの
USBメモリ買ってこれにUbuntu12を入れる。ファイルサーバとして動作
させる場合にはUbuntu起動にしておく。USB-HDDをext3でフォーマット
して接続。この領域はSAMBAで公開
■RAID
・上のUbuntu + USB-HDDのHDDフォーマットをNTFSにして、UbuntuとWindowsの
両方からマウントして共有!とかやってたら、HDDがぶっ飛んだ!Σ( ̄口 ̄;;。
多分、MBRとかPBRとかその辺りが破壊された様子。WindowsのHDD復旧ソフト
買って、1TBぐらいあった写真やらを1週間かけて復元(24時間連続運転で7日
間…( ̄ω ̄; )。それでも壊れてる写真、結構あったなあ。
復旧したはいいけど、1個のフォルダに全部復旧したファイル入れてくれるもん
だから、軽いスクリプトをなでしこで書いてファイル振り分け。これも数日かかる。
・これはいかん!!ってことでラトックのRS-EC32-U3Rと言うRAID組めるHDD
ケースを買って、2TB x 2でRAID1構成。これでまあ、バックアップは暫くは
安心か…。RAIDの方はネットワーク共有はしないことに(^^;。
Revo3610はCPUがATOM330(1.6GHz)なので、ちょっと遅いなあ。Windowsは
そこそこ快適に動作するんだけど、UbuntuはUSBメモリからの起動なので
ちょっと遅く感じる。クロス環境でARMなCPUのボードで遊んだりしたいので
もうちょっと速いマシン欲しいところ。
最終的にはウチのNAS環境は以下の様な感じに落ち着きました(^^;。
■無線ルータ:Buffalo WZR-600DHP2
・USB-HDDを接続して簡易NASを実現する場合、ファイルシステムがXFSに
なり、しかも古いBuffaloのルータがフォーマットしたXFSと互換性が微妙
なので、USB-HDDの接続は却下
・でも、ちょっとだけファイル共有がしたいので、余っていたSDHC 32GBを
つないでおく(^^;。これだけでも割と便利♪
■サーバ:Acer Revo3610
・メモリは4GBに増設。でも3GBまでしか認識しないんだけどね(T∇T)。
・HDDはSSHDにしてあるけど、Windows7が入っているので、東芝の64GBの
USBメモリ買ってこれにUbuntu12を入れる。ファイルサーバとして動作
させる場合にはUbuntu起動にしておく。USB-HDDをext3でフォーマット
して接続。この領域はSAMBAで公開
■RAID
・上のUbuntu + USB-HDDのHDDフォーマットをNTFSにして、UbuntuとWindowsの
両方からマウントして共有!とかやってたら、HDDがぶっ飛んだ!Σ( ̄口 ̄;;。
多分、MBRとかPBRとかその辺りが破壊された様子。WindowsのHDD復旧ソフト
買って、1TBぐらいあった写真やらを1週間かけて復元(24時間連続運転で7日
間…( ̄ω ̄; )。それでも壊れてる写真、結構あったなあ。
復旧したはいいけど、1個のフォルダに全部復旧したファイル入れてくれるもん
だから、軽いスクリプトをなでしこで書いてファイル振り分け。これも数日かかる。
・これはいかん!!ってことでラトックのRS-EC32-U3Rと言うRAID組めるHDD
ケースを買って、2TB x 2でRAID1構成。これでまあ、バックアップは暫くは
安心か…。RAIDの方はネットワーク共有はしないことに(^^;。
Revo3610はCPUがATOM330(1.6GHz)なので、ちょっと遅いなあ。Windowsは
そこそこ快適に動作するんだけど、UbuntuはUSBメモリからの起動なので
ちょっと遅く感じる。クロス環境でARMなCPUのボードで遊んだりしたいので
もうちょっと速いマシン欲しいところ。
2014年3月28日金曜日
【Buffalo】無線ルータと簡易NASの話 その2
以前使用を開始したBuffaloの無線ルータWZR-600DHP2と、その
簡易NAS機能ですが…結局使用中断しました( ̄ω ̄;。
600DHP2の簡易NAS機能、最初は調子よく動いてたんですが、
時々ファイルが全く見えなくなる症状が発生。見えた!と思っても
特定のディレクトリの下のファイルがなくなってたり…再起動したり
してると復活するんだけど…
ってことで結局USBにUbuntuをインストールして、それをPCに接続。
普段はLinuxのサーバとして動作してもらって、使いたいときはHDDに
入ってるWin7を使う様にしました。
600DHP2、無線部分についてはいんだけど、オマケ機能のNAS
は全然だめ。且つ、この無線ルータに変えてからVNCが繋がらなく
なるし…無線ルータのオマケ機能は宣伝ほどはしっかり実装されて
ないと言うのが結論です(^^;。
簡易NAS機能ですが…結局使用中断しました( ̄ω ̄;。
600DHP2の簡易NAS機能、最初は調子よく動いてたんですが、
時々ファイルが全く見えなくなる症状が発生。見えた!と思っても
特定のディレクトリの下のファイルがなくなってたり…再起動したり
してると復活するんだけど…
ってことで結局USBにUbuntuをインストールして、それをPCに接続。
普段はLinuxのサーバとして動作してもらって、使いたいときはHDDに
入ってるWin7を使う様にしました。
600DHP2、無線部分についてはいんだけど、オマケ機能のNAS
は全然だめ。且つ、この無線ルータに変えてからVNCが繋がらなく
なるし…無線ルータのオマケ機能は宣伝ほどはしっかり実装されて
ないと言うのが結論です(^^;。
2014年3月12日水曜日
【MSX】MSX3を実現するとしたら
MSX3を実現するとしたら、どんな感じがいいか…
■やっぱりキーボード型のがいいなあ…
テレビにMSXつなげて、カタカタやってたあのスタイルが好きだった
ので、やっぱりキーボード型のがいいなあと思う。で、調べてみると

Cybernetと言う会社のZPC-D5ってのがあって、あ、もうこれで
いいかも(^^;とか思っちゃいます。いやいや、これじゃただのPC
なんだけど。
■安価であること
PanasonicのMSX2、FS-A1は割りと安価で、これが普及の一翼を
担ったんだなあと思われます。安けりゃいいわけではないけど、
安価で入手性がいいことは重要かなあ。
■性能
PCの、たとえばIntelのCPUを使えばそれなりにエミュレータも
動くけど、やっぱりそれはただのPCだしMSXとは違う気はする。
「あえて」CPUの性能は抑えて、ゲームなんかを個人でプログラム
する楽しみを味わえる環境が良いかな?。
こう考えていくと、ARMの組み込みボードを使って、MSX3(っぽいもの)
を作ると面白そう。最近はARM Cortex-A8の乗ったボードが5000円
ぐらいで入手できますから!。
Raspberry PiもなかなかいいんだけどARM11なのはちょっと将来性
を感じないので、ターゲットとしてはBeagleBoneBlackがいいかも。
OSはLinuxで、ここにBASIC…かそれに変わる言語でプログラム
出来るライブラリが揃ってれば、それがMSX3(っぽいもの)になり
そうだなあ。
MSX1、2はエミュでカバーして、周辺機器はUSBに統一。ディスプレー
・サウンドはHDMI接続。MSX2,Turboからはかけ離れたCPU性能
(ARM Cortex-A8 1GHz!)になるし、OSもLinuxになるけど、
ある程度現代のPCシステムにあった形にすると、色々いじれる
Linuxがいいかな。
■やっぱりキーボード型のがいいなあ…
テレビにMSXつなげて、カタカタやってたあのスタイルが好きだった
ので、やっぱりキーボード型のがいいなあと思う。で、調べてみると

Cybernetと言う会社のZPC-D5ってのがあって、あ、もうこれで
いいかも(^^;とか思っちゃいます。いやいや、これじゃただのPC
なんだけど。
■安価であること
PanasonicのMSX2、FS-A1は割りと安価で、これが普及の一翼を
担ったんだなあと思われます。安けりゃいいわけではないけど、
安価で入手性がいいことは重要かなあ。
■性能
PCの、たとえばIntelのCPUを使えばそれなりにエミュレータも
動くけど、やっぱりそれはただのPCだしMSXとは違う気はする。
「あえて」CPUの性能は抑えて、ゲームなんかを個人でプログラム
する楽しみを味わえる環境が良いかな?。
こう考えていくと、ARMの組み込みボードを使って、MSX3(っぽいもの)
を作ると面白そう。最近はARM Cortex-A8の乗ったボードが5000円
ぐらいで入手できますから!。
Raspberry PiもなかなかいいんだけどARM11なのはちょっと将来性
を感じないので、ターゲットとしてはBeagleBoneBlackがいいかも。
OSはLinuxで、ここにBASIC…かそれに変わる言語でプログラム
出来るライブラリが揃ってれば、それがMSX3(っぽいもの)になり
そうだなあ。
MSX1、2はエミュでカバーして、周辺機器はUSBに統一。ディスプレー
・サウンドはHDMI接続。MSX2,Turboからはかけ離れたCPU性能
(ARM Cortex-A8 1GHz!)になるし、OSもLinuxになるけど、
ある程度現代のPCシステムにあった形にすると、色々いじれる
Linuxがいいかな。
2014年2月16日日曜日
【なでしこ】マニュアルの話
今年で日本語プログラミングは30周年、なでしこは10周年ですか(^^)。
プログラミング言語と言えば、手続き型、関数型、オブジェクト指向
などなど色々あるけど、ほぼ英語。日本語プログラミングはMindとか
先駆的なものもあるけど、なかなか広まらないですね。
「なでしこ」はそんな中でかなり自然な日本語で書けるプログラミング
言語。ただ、あまり日本語っぽさにこだわると、プログラミングっぽく
なくなっちゃうんだけど(^^;。なでしこからプログラミングに入門すれば
その他の言語にも割りとスムーズに移行できそうだけどなあ。Cや
Javaやってからなでしこイジってるからそう思うだけ?
普及には何かしらマニュアルが必要かな~と思って、なでしこの
基本的な部分のマニュアル書こうかと計画中。最近はAmazonが
Kindle Direct Publishing(KDP)なんてサービスもやってるし、販売
してみても面白いかも(ё∇ё)。…気長にやろう!。
------
そういえば、MSXも祝30周年。ヒマがあればMSXのエミュとか作って
みたいし、MSX3の妄想もしてみたいけどなかなか時間が…。今、
STMicroとかが出してる格安のARM Cortex-M4なLSIとか使えば
結構面白いハード作れそうなんだけどなあ。PlayStation4など、
最新のハードでHDバリバリのゲームもいいけど、おっさん世代は
軽いハードで、頑張って動く昔ながらの「ゲーム性の高い」ヤツが
好きなんです(^^;。ああ、ワクワクするO(≧∇≦)O。
プログラミング言語と言えば、手続き型、関数型、オブジェクト指向
などなど色々あるけど、ほぼ英語。日本語プログラミングはMindとか
先駆的なものもあるけど、なかなか広まらないですね。
「なでしこ」はそんな中でかなり自然な日本語で書けるプログラミング
言語。ただ、あまり日本語っぽさにこだわると、プログラミングっぽく
なくなっちゃうんだけど(^^;。なでしこからプログラミングに入門すれば
その他の言語にも割りとスムーズに移行できそうだけどなあ。Cや
Javaやってからなでしこイジってるからそう思うだけ?
普及には何かしらマニュアルが必要かな~と思って、なでしこの
基本的な部分のマニュアル書こうかと計画中。最近はAmazonが
Kindle Direct Publishing(KDP)なんてサービスもやってるし、販売
してみても面白いかも(ё∇ё)。…気長にやろう!。
------
そういえば、MSXも祝30周年。ヒマがあればMSXのエミュとか作って
みたいし、MSX3の妄想もしてみたいけどなかなか時間が…。今、
STMicroとかが出してる格安のARM Cortex-M4なLSIとか使えば
結構面白いハード作れそうなんだけどなあ。PlayStation4など、
最新のハードでHDバリバリのゲームもいいけど、おっさん世代は
軽いハードで、頑張って動く昔ながらの「ゲーム性の高い」ヤツが
好きなんです(^^;。ああ、ワクワクするO(≧∇≦)O。
登録:
投稿 (Atom)