2012-02-09
■[自作プログラミング言語]自作プログラミング言語作成中
インタプリタ作成中
var a = 100 var b = "Hello World" var c = a + 200
こんな感じに書いて、インタプリタに渡すと
変数発見: a Type: Integer, Value = 100 変数発見: b Type: String, Value = Hello World 変数発見: c Type: Integer, Value = 300
と出力される。変数と値を取得できている
2012-02-07
■[x86エミュレータ][minivm]キーイベント
キーイベント実装例。現在引数は無いが、そのうちキーコードとキーの状態を渡そうかと思っている。以下のコードで何らかのキーが押されたときに、画面にBと表示するようにしている。0x400000に関数のアドレスをセットしておけば、キーが押されたときに登録した関数が呼ばれる。
void key(void); void main(void){ char* vram = (char*)0x100000; *vram = 'A'; void** address = (void**)0x400000; *address = key; for(;;){ } } void key(void){ char* vram = (char*)0x100000; *vram = 'B'; }
以下のコマンドでhello.binを作成する
gcc -m32 hello.c -c -nostdlib -o hello.obj ld -Ttext 0 hello.obj -o hello.exe objcopy -I elf32-i386 -O binary hello.exe hello.bin
2012-02-06
■[x86エミュレータ][minivm]C言語でもOK
C言語でプログラム書いて、minivm上で実行できた。以下のソースコードをhello.cとして保存して、下記のようにコマンドをうち、できあがったhello.binを読みこませることで、画面上にAと出力された
gcc hello.c -m32 -c -nostdlib -o hello.obj objcopy -I elf32-i386 -O binary hello.obj hello.bin
void main(void){ char* vram = (char*)0x100000; *vram = 'A'; for(;;){ } }
■[Java]GAEでマルチパートフォームデータ
GAEでのマルチパートフォームデータの処理方法が載っていた。これは参考になりそうだ
http://code.google.com/intl/ja-JP/appengine/kb/java.html#fileforms