* g01ってOSと見なせるよね? [#v1580f27] - g01では、実行ファイルのフォーマットが規定されていて、ファイル入出力・キーボード入力・画面出力・コマンドライン取得のAPIが定義されている。 - これだけのものがあれば、もはやg01は新たなプラットフォームのOSだと見なしてもかまわないはず。 - [[K]]さんの[[メモ>GUIGUI01/memo02#o161c91a]]でもすでにそう述べられている。 - 2011年05月中旬に、(少なくとも自分にとっては)面白いことを思いついたから、実践してみよう。 - 開発ツール系のアプリがg01として作られているんだから、''純粋にg01だけでアプリ開発ができるはず''だ(cc1.exeはg01でないからnaskがメインになるけど)。 - つまり、この新しいプラットフォームg01上で''セルフ開発''やってみようという企画。 ** 環境整備 [#q05311a2] - まずは使える道具を確認しよう。[[hidetol_8>hidetol/hidetol_8]]を用意して、z_toolsを眺めてみる。 - 使える(g01の)ツールは、akusA, bim2g01, bim2hrb, bin2obj, bin2ucc, cpy, cpyc, gas2nask, golib00, hexdump, makefont, mtek2org, naskcnv0, Nasuka, obj2bim, rjcg01, sjisconv, tekmin0, tekmin1 - よく知らないものを調べる。 :: bin2ucc | ファイルをC言語のunsigned char配列形式にダンプする :: mtek2org, rjcg01, tekmin* | よく分からなかった(あとで調べるかもしれない) - C言語でなくnaskがメインになる予定なので、z_tools/com*.txtを読んでnaskからg01を得る手順を調べる。 -- nask:nask→obj, obj2bim:obj→bim×rlm, bim2g01:bim×rlm→g01, tekmin0;bim2bin;tekmin1:g01→g01(tekによる圧縮) -- bim2binはg01でないので圧縮はいったんあきらめる。したがって、nask;obj2bim;bim2g01でnask→g01(圧縮なし)のビルドができることがわかった。 - あとは、キーボードからの入力をファイルに書き出す補助ツールがあれば、「ソースの入力→アセンブル→リンク」がg01だけで実現できることになる。 - で、作った。ファイル名: input.c #include <guigui01.h> void G01Main(void) { static const unsigned char cmdusage[] = { 0x86, 0x50, 0x8c, 0x40 }; char * const p0 = g01_bss1a1, *p = p0; int flag = 0; g01_setcmdlin(cmdusage); for (;;) { int c = jg01_inkey3(); if (c == '\r') c = '\n'; g01_putc(c); if (!flag) { if (c == 'q') flag = 1; else *p++ = c; } else { if (c == '\n') break; *p++ = 'q'; *p++ = c; flag = 0; } } *p = '\0'; g01_getcmdlin_fopen_s_3_5(0); jg01_fwrite1f_5(p - p0, p0); } - 出力ファイル名を受け取り、入力された文字をそこに書き込む。入力の終了は'q'+Enterで表す。 - まだ未完成。進展があったら更新。 #comment
(This host) = http://osask.net