Mona Squirrelの新ファイルAPI対応など

setjmp

misc/setjmp.h ではなくて monalibc/setjmp.h を利用するように変更。

monapi.monapi_read_directory("/APPS")

ディレクトリのreadに対応しました。
実行例は以下の通り。

monapi.monapi_read_all("/MONA.CFG")

ファイル全読みに対応しました。
実行例は以下の通り。

ソースを読むとMonaの共有メモリクラスをwrapしてうまく使っていて okayu さんの技術力素晴らしいと思った。

monapi.monapi_file_openとか

monapi.monapi_file_openとかに対応したいのですが、Squirrelでのwrapの仕方が分からないので okayu さんに聞こう。
Mona単体で書く場合は

dword fileID = monapi_file_open("/AUTOEXEC.MSH", MONAPI_FALSE);
monapi_cmemoryinfo* mi = monapi_file_read(fileID, 486);
 printf("AUTOEXEC.MSH size = 485, readResult size = %d\n", mi->Size);
monapi_file_close(fileID);
monapi_cmemoryinfo_dispose(mi);
monapi_cmemoryinfo_delete(mi);

Squirrelについて

Mona上でも思った以上に安定している。
名前空間へのC関数の登録などの機構がとてもきれい。初めて読んでも大体分かる。
GUIをもう少し高速化したいと切実に思った。

蛇足

Qemuで '_'をキー入力できなくてはまった。
キーを押しても割り込みすら来ないので焦ったが、Qemu を -k ja オプションで起動すれば良いだけだった。