X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=src%2Fcasl2.c;h=40001ead331321c7f7478ea1d8ddc51a268631d2;hp=139e6b919ec139237f58c13107d752976783777d;hb=288d61424576d1aae956ea8e4b5fb89dc25909db;hpb=650f92bf8dfdd0095db993f71f9e3867e7119acc diff --git a/src/casl2.c b/src/casl2.c index 139e6b9..40001ea 100644 --- a/src/casl2.c +++ b/src/casl2.c @@ -25,7 +25,7 @@ static struct option longopts[] = { /* casl2のエラー定義 */ CERR cerr_casl2[] = { - { 126, "source file is not specified" }, + { 126, "no source file" }, }; bool addcerrlist_casl2() { @@ -40,7 +40,7 @@ void outassemble(const char *file) { perror(file); exit(-1); } - fwrite(memory, sizeof(WORD), progprop->end, fp); + fwrite(sys->memory, sizeof(WORD), prog->end, fp); fclose(fp); } @@ -54,16 +54,16 @@ const char *objfile_name(const char *str) /* casl2コマンドのメイン */ int main(int argc, char *argv[]) { - int opt, i, status = 0; + int memsize = DEFAULT_MEMSIZE, clocks = DEFAULT_CLOCKS; + int status = 0, opt, i; PASS pass; bool res = false; WORD beginptr[argc]; char *objfile = NULL; const char *usage = - "Usage: %s [-slLaAtTdh] [-oO] [-M ] [-C ] FILE ...\n"; + "Usage: %s [-slLaAtTdh] [-oO[]] [-M ] [-C ] FILE1[ FILE2 ...]\n"; - /* エラーの初期化 */ - cerr = malloc_chk(sizeof(CERR), "cerr"); + cerr_init(); addcerrlist_casl2(); /* オプションの処理 */ while((opt = getopt_long(argc, argv, "tTdslLao::O::AM:C:h", longopts, NULL)) != -1) { @@ -118,12 +118,12 @@ int main(int argc, char *argv[]) } /* ソースファイルが指定されていない場合は終了 */ if(argv[optind] == NULL) { - setcerr(126, NULL); /* source file is not specified */ + setcerr(126, NULL); /* no source file */ fprintf(stderr, "CASL2 error - %d: %s\n", cerr->num, cerr->msg); exit(-1); } /* COMET II仮想マシンのリセット */ - reset(); + reset(memsize, clocks); /* アセンブル。ラベル表作成のため、2回行う */ for(pass = FIRST; pass <= SECOND; pass++) { if(pass == FIRST) { @@ -137,6 +137,7 @@ int main(int argc, char *argv[]) } else if(pass == SECOND) { asprop->ptr = beginptr[i]; } + asprop->prog = NULL; if(execmode.trace == true || execmode.dump == true || asmode.src == true || asmode.label == true || asmode.asdetail == true) {