ページへ戻る

− Links

 印刷 

sero​/g01_os のバックアップソース(No.4) :: OSASK計画

osaskwiki:sero/g01_os のバックアップソース(No.4)

« Prev[4]  Next »[5]
* 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

« Prev[4]  Next »[5]