OSASKにWaba

無駄に広がるWabaワールド。ついに軽量エミュレータOSのOSASKに載った。

発音が難しいエミュレータOS、それが「おさすく」だ。既存のOSをエミュレーションすることで今までのソフトウェア資産を活かせることを特長としている、というかしようとしている。まだ開発途上のOSだから。

エミュレーションってのがどういった機能を指すのか、まだ良く理解していないのだが、Wineみたいなものなのかな。

ここの667氏への返答にも出てきているところを見ると、まあ狙っている方向は同じみたいだな。このページを見れば分かるように、OSASKのFAQドキュメントは、2chのスレと対話するという方式で蓄積されている。すごい方式だ。

Wabaが動くようになったことで、JavaライクなVMOSASK上で駆動できるようになった。Wabaは手軽に対応言語やアプリを増やすのにはいいよね。移植も楽しいし。で、その際にうちのRuputerへのWaba移植手順を参考にしたそうだ。無謀だ。まあ取っ掛かりにでもなってくれただけでも幸いです。

Wabaは移植性が極めて高く、そのソースを読むとOS、機種依存の特徴的なコードがむき出しになっているため、プラットフォームのくせを読み取るのに便利だ。OSASK版だと、それらがnmosask_b.cに濃縮されている。私はOSASKのことは何もしらないが、なんかやたら16進コードの直打ちが目立つのが気になる。

  /* ファイルオープン */
  lib_initmodulehandle0(0x0008, 0x0220); /* user-dirに初期化 */
  lib_steppath0(0, 0x0220 /* slot */, "CLASSES .WRP", 16 /* sig */);

int86を思い出させるコードだ。もう少し抽象的な関数にラップできないのかな...

  // load wrp warp file(class files)	
  fp = dos_fopen(filename, 0);
  handleDosStatus(fp);

ちなみにRuputerだとこうね。