マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

minivm

変なx86エミュレータをそのうち公開します

ブラウザでC++なんて夢がありました。未完成の状態になるけど、まぁ、このままだと消えるしかないので

標準出力的な何か復活

ブラウザ上で動くエミュレータ用ライブラリで標準出力的な何かが消えてしまったので、復活させた

たまにはエミュレータのエントリも書いてくれ!

と思う方もいらっしゃるとおもうので、たまにはエミュレータのエントリを書きます。えぇ、x86エミュレータです。今、作ってるblink-dというハイパーバイザ的ななんとかバイザです多分。blink-dにはスーパーバイザがいないのでハイパーバイザといういい方が正…

微妙に挙動が変わった?

GWTのバージョン上げたら微妙にblink-dの挙動が変わった気がするが、気のせいだ(おい

blink-dが開発しづらいので

何か考えないとなー。ようやく余裕がでてきて、エミュレータ(?)にも力が入るようになった気がする。余裕大事

blink-dサンプルソースコード ラベル編

そのうち公開するであろうblink-dのサンプルコード。とりあえず、ラベル表示編。ウインドウとラベル作って、ウインドウにラベルを追加しているだけである #include <gui.h> int main(){ Window window; window.setText("Hello World!"); Label label; label.setText</gui.h>…

blink-dでボタンのサイズ変更

C++からHTMLのボタンのサイズを変更しましょってことで、何やらやってました

blink-dのC++ライブラリのコード

blink-dのC++側のコードです...GUIに関するgui.cppの部分だけ載せています。なぜここに__cxa_pure_virtual()があるのか?とか疑問に思わずに見ることを推奨します #include "gui.h" extern "C" int gui(int, int, int, int, int = 0, int = 0); extern "C" i…

blink-dでWebGL+他のWidget

WebGLのCanvasの下に画像を表示している図。VerticalPanelで縦に並べてHorizontalPanelで横に並べることができる

久しぶりにblink-dを進める

作曲だの3Dだので進んでなかったblink-dを久しぶりに進めようと思っている。浮動小数点数が使えないが、これを使えるようにするかどうか迷い中。floatを使ったソースコードをclangに与えたらSIMDを使ったバイナリが出力された。対応するなら頑張らないと...

blink-d ちょっとだけラッパー WebGL編

何度かスクリーンショットを上げてるように、blink-dはWebGLに対応している。そして今までライブラリが低レイヤーすぎてアレだったが ついに! ラッパーライブラリができてちょっとだけ高級になったんじゃよ

画像もいけます!

画像も表示できるようになりました!今はネット上のURL指定ですが、HTML5のFile APIでローカルもいけるようになるはず!

テキストボックスとUserDataと

まずテキストボックスを作れるようにした。あと、イベントが不便な関係で、WidgetにUserDataを持てるように修正した。これは1つだけ32bitな値を渡せる形だ。これを使えば、イベントでのコールバックで2つ以上のデータを持たせられるはず。スクリーンショット…

今日はいくつか進んだな!ラムダ式、レイアウト

まずC++のラムダ式に対応した。これはサーバーサイドの変更だが、コンパイラオプションを変更した。また、buttonなどのクリックイベントから無名関数へのコールバックができるようになった。ちょっと強引な感じもするが... そしてGUIの部品というかレイアウ…

ブラウザで動くx86エミュレータblink-dについて

TwitterでMiniVMとかblink-dとかいってるけど一体何なんだ?って話なのかもしれないので、少し説明しておく。タイトルの通り、ブラウザで動くx86エミュレータではあるのだが、実はエミュレートしてない。というかx86ですらない部分がある。それは32bitリアル…

blink-d 日本語もいける!

当然のことかと思ってたら当然では無かったらしい。とりあえず、Stringをでっちあげて、日本語も対応!そういや標準出力用のライブラリが今無いのでなんとかせねば

そういやMiniVMはblink-dって名前になったってよ(今更)

"blink-dにC++の標準ライブラリをどこまで導入するかという悩みがあったが全く導入しないことになりそう。コンパイル後のバイナリがネットワーク流れるし、でかくなったバイナリのエミュレートで遅くなりそうだからというそんな感じの流れで"とFaceBookに書…

STLを移植するかもしれないぞ!

Twitterの魔人こと、某@fadis_の陰謀によりblink-dにSTLが導入されるかもしれないという危険な事態に陥った。下手したらstringとかが使えるようになってしまうのかもしれない。ヤバい、危険すぎる!

閉じるボタン

今までblink-dで作ったウインドウは閉じることができなかった。しかし!ついに!ようやく!閉じるボタンが!追加!されました!

ちょっとだけレイヤが上がる?

guiという関数だけで成り立っていた今までと違い、DialogBoxとかLabelというクラスを作り、ちょっとだけレイヤが高くなった...気がする

ついにnewができるようになってしまった

ついにnewができるようになってしまった。delete?無理。だから何?って言われそうだけど、メモリ管理するはずのOSがないからnewできないんですよ!ってことでエミュレータ(?)側にメモリ管理させて、あとはハイパバイザコールで仕留めたわけです。はい

C++も使えるけど...

minivmでのC++はいろいろ死んでるんですよね。うん...まぁ、使えますよ?ってぐらいです。はい。ということでそのうち誰かがテストしてくれるはず

漢は黙ってブラウザでプログラミング

漢は黙ってブラウザでプログラミングするもんですよ!(嘘。というわけで、ファイル追加したりするわけです。そろそろハイパーバイザコール丸出しのライブラリに飽きてきたので、使いやすさを考えたライブラリを用意したい。ハイパーバイザコールと呼んでいる…

環境構築中

必要かどうかは知らないけどエディタだけだと寂しいでしょ?となんとなく思っただけです...

ちょっとずつ変わってるんじゃよ

UIを微妙に変更、ちょっとずつ豪華になっていく...といいなぁ。どこまで作り込むか...

まだまだWebGLだよ!

相変わらず浮動小数点数を扱えないが、頑張って固定小数点数で頑張ろう!しかし、実行速度の遅いエミュレータからWebGLってヤバそう

C言語からCanvasにアクセスじゃー

だんだんカオスになるシステムコール的な存在から目を背けつつ、機能拡張した。Canvasに対応して四角形を描画しまくってるよー 以下怪しいプログラム。ようはC言語から呼ぶ魔法 global stdout global stdin global gui global fileapi %macro blink 1 mov ea…

WebGLもやろうぜ!

まだレイヤーの低い状態だが、だんだん使いやすい関数になっていく予定だよ!とりあえずWebGLで三角形の描画やー。エミュレータの関係で絶対遅いんだけど!

レイヤの低いGUIライブラリ

システムコールそのままなGUI関数を整備中。ここが終わったらレイヤを高めていく

C言語からDOM操作

MiniVMでC言語からHTMLの要素を弄れるように修正を加えた。まだライブラリができてないのでシステムコールっぽい関数になっている