14 static struct option longopts[] = {
15 {"trace", no_argument, NULL, 't'},
16 {"tracearithmetic", no_argument, NULL, 't'},
17 {"tracelogical", no_argument, NULL, 'T'},
18 {"dump", no_argument, NULL, 'd'},
19 {"memorysize", required_argument, NULL, 'M'},
20 {"clocks", required_argument, NULL, 'C'},
21 { "version", no_argument, NULL, 'v' },
22 {"help", no_argument, NULL, 'h'},
29 int main(int argc, char *argv[])
31 int memsize = DEFAULT_MEMSIZE, clocks = DEFAULT_CLOCKS;
33 const char *version = PACKAGE_VERSION, *cmdversion = "comet2 of YACASL2 version %s\n";
34 const char *usage = "Usage: %s [-tTdvh] [-M <MEMORYSIZE>] [-C <CLOCKS>] FILE\n";
41 while((opt = getopt_long(argc, argv, "tTdM:C:vh", longopts, NULL)) != -1) {
44 execmode.trace = true;
47 execmode.trace = true;
48 execmode.logical = true;
54 memsize = atoi(optarg);
57 clocks = atoi(optarg);
60 fprintf(stdout, cmdversion, version);
63 fprintf(stdout, usage, argv[0]);
66 fprintf(stderr, usage, argv[0]);
70 if(argv[optind] == NULL) {
71 setcerr(211, ""); /* object file not specified */
72 fprintf(stderr, "comet2 error - %d: %s\n", cerr->num, cerr->msg);
75 /* COMET II仮想マシンのリセット */
76 reset(memsize, clocks);
78 if(loadassemble(argv[optind]) == true) {
81 /* COMET II仮想マシンのシャットダウン */
83 stat = (cerr->num == 0) ? 0 : -1;