10 {
"trace", no_argument, NULL,
't' },
11 {
"tracearithmetic", no_argument, NULL,
't' },
12 {
"tracelogical", no_argument, NULL,
'T' },
13 {
"dump", no_argument, NULL,
'd' },
14 {
"monitor", no_argument, NULL,
'm' },
15 {
"reverse", no_argument, NULL,
'r' },
16 {
"memorysize", required_argument, NULL,
'M'},
17 {
"clocks", required_argument, NULL,
'C' },
18 {
"version", no_argument, NULL,
'v' },
19 {
"help", no_argument, NULL,
'h' },
31int main(
int argc,
char *argv[])
38 const char *cmdversion =
"comet2 of YACASL2 version %s\n";
39 const char *usage =
"Usage: %s [-tTdmrvh] [-M <MEMORYSIZE>] [-C <CLOCKS>] FILE\n";
47 while((opt = getopt_long(argc, argv,
"tTdmrM:C:vh",
longopts, NULL)) != -1) {
77 fprintf(stdout, cmdversion, version);
80 fprintf(stdout, usage, argv[0]);
83 fprintf(stderr, usage, argv[0]);
88 if(argv[optind] == NULL) {
90 fprintf(stderr,
"comet2 error - %d: %s\n",
cerr->num,
cerr->msg);
static struct option longopts[]
casl2コマンドのオプション
void warn_ignore_arg(int argc, char *argv[])
引数が無視されることを表示する
void freecerr()
エラーリストと現在のエラーを解放する
void cerr_init()
エラーを初期化する
void setcerr(int num, const char *str)
現在のエラーを設定する
int main(int argc, char *argv[])
comet2コマンドのメイン
void exec()
COMET II仮想マシンを実行する
CLOCK clock_str2clock(const char *str)
クロック周波数を表す数値文字列を、正の整数値であるCLOCK型の数値に変換。変換できない場合は、エラーを表示して0を返す
void addcerrlist_exec()
実行エラーをエラーリストに追加する
WORD loadassemble(const char *file, WORD start)
指定されたファイルからアセンブル結果を読み込む
void addcerrlist_load()
アセンブル結果読み込みエラーをエラーリストに追加する
WORD memsize_str2word(const char *str)
メモリーサイズを表す数値文字列をWORD値に変換して返す。WORD値に変換できない場合は、エラーを表示して0を返す
void comet2_shutdown()
COMET II仮想マシンのシャットダウン
bool create_cmdtable(CMDTAB_HASH hash)
命令ハッシュ表を作成する
void free_cmdtable(CMDTAB_HASH hash)
void comet2_init(WORD memsize, CLOCK clocks)
COMET II仮想マシンの初期化
EXECMODE execmode
実行モード: trace, logical, dump, reverse, monitor, step