ページへ戻る

− Links

 印刷 

sero​/g01_os のバックアップ差分(No.4) :: OSASK計画

osaskwiki:sero/g01_os のバックアップ差分(No.4)

« Prev[4]  Next »[5]
3: 2011-06-30 (木) 23:22:50 sero[6] ソース[7] 4: 2011-07-01 (金) 08:10:15 sero[6] ソース[8]
Line 17: Line 17:
-- nask:nask→obj, obj2bim:obj→bim×rlm, bim2g01:bim×rlm→g01, tekmin0;bim2bin;tekmin1:g01→g01(tekによる圧縮) -- nask:nask→obj, obj2bim:obj→bim×rlm, bim2g01:bim×rlm→g01, tekmin0;bim2bin;tekmin1:g01→g01(tekによる圧縮)
-- bim2binはg01でないので圧縮はいったんあきらめる。したがって、nask;obj2bim;bim2g01でnask→g01(圧縮なし)のビルドができることがわかった。 -- 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 #comment
« Prev[4]  Next »[5]