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

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

x86エミュレータ

タイマ割り込み

タイマ割り込みも無事動いて満足!

エミュレータ進捗

30日本の11日目まで進みました。ウインドウも表示出来て満足!とはいってもウインドウを表示してるのはOSであってエミュレータはウインドウかどうかもわからずに描画しているだけである。

進んでいます

見た目的には変化ないけどいろいろ変わってます

メモリ32MB

VMに割り当てたメモリは32MB、OSでちゃんと認識しています

JavaScript版のエミュレータ

はりぼてOSを動かしてるけどやはり画面描画はきついなーという感じ。テキストベースなら十分な速さに見えるが…

x86エミュレータ マウスとの戦い

マウスは認識されたようだが…値がオカシイな…

文字もOK

文字もOKといってもフォント読み込んでるのOSだし…描画してるのOSだし…C言語って感じの命令が増えてきた

順調!順調!

きたー!

進捗!進捗!

某エミュレータを作り始めて4日目、ついに画面に変化が!

自作エミュレータ進捗

それほど進んでないがもう少しで違う結果が見られそうだ

某OSを実行し始めて…

某OSというかまだブートローダだけど32bitモードに突入したっぽいぞ!ワーイヤッタートロピカルヤッホー

変な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++ライブラリのコード

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を使ったバイナリが出力された。対応するなら頑張らないと...

何かが始まった?

以前から言っていたでかいプロジェクトが本格始動した?っぽい?さぁ、どうなりますかね?

前回の動画がわかりづらかったから!

1つのプログラムに絞って動画を作りました!デモは前回のと一緒ですが!

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に書…