X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fcmd.c;h=7896d06e1b63912782c9e3dd1c5b3ce8e217de07;hb=71492ed8d58051866a0ab179f76d5dc2296ca178;hp=ecd5fdb921f96e5abc7af89c69d8156a30746346;hpb=4aaa5bc19f9fe9f0bb22d2854e91d0b9f78d8708;p=YACASL2.git diff --git a/src/cmd.c b/src/cmd.c index ecd5fdb..7896d06 100644 --- a/src/cmd.c +++ b/src/cmd.c @@ -7,32 +7,32 @@ #include "exec.h" /** - * 機械語命令のリスト + * システムCOMET IIの命令表 */ -static CMD comet2cmd[] = { +static COMET2CMD comet2cmd[] = { { "NOP", NONE, 0x0, nop }, - { "LD", R_ADR_X_, 0x1000, ld }, + { "LD", R_ADR_X, 0x1000, ld_r_adr_x }, { "ST", R_ADR_X, 0x1100, st }, { "LAD", R_ADR_X, 0x1200, lad }, - { "LD", R1_R2, 0x1400, ld }, - { "ADDA", R_ADR_X_, 0x2000, adda }, - { "SUBA", R_ADR_X_, 0x2100, suba }, - { "ADDL", R_ADR_X_, 0x2200, addl }, - { "SUBL", R_ADR_X_, 0x2300, subl }, - { "ADDA", R1_R2, 0x2400, adda }, - { "SUBA", R1_R2, 0x2500, suba }, - { "ADDL", R1_R2, 0x2600, addl }, - { "SUBL", R1_R2, 0x2700, subl }, - { "AND", R_ADR_X_, 0x3000, and }, - { "OR", R_ADR_X_, 0x3100, or }, - { "XOR", R_ADR_X_, 0x3200, xor }, - { "AND", R1_R2, 0x3400, and }, - { "OR", R1_R2, 0x3500, or }, - { "XOR", R1_R2, 0x3600, xor }, - { "CPA", R_ADR_X_, 0x4000, cpa }, - { "CPL", R_ADR_X_, 0x4100, cpl }, - { "CPA", R1_R2, 0x4400, cpa }, - { "CPL", R1_R2, 0x4500, cpl }, + { "LD", R1_R2, 0x1400, ld_r1_r2 }, + { "ADDA", R_ADR_X, 0x2000, adda_r_adr_x }, + { "SUBA", R_ADR_X, 0x2100, suba_r_adr_x }, + { "ADDL", R_ADR_X, 0x2200, addl_r_adr_x }, + { "SUBL", R_ADR_X, 0x2300, subl_r_adr_x }, + { "ADDA", R1_R2, 0x2400, adda_r1_r2 }, + { "SUBA", R1_R2, 0x2500, suba_r1_r2 }, + { "ADDL", R1_R2, 0x2600, addl_r1_r2 }, + { "SUBL", R1_R2, 0x2700, subl_r1_r2 }, + { "AND", R_ADR_X, 0x3000, and_r_adr_x }, + { "OR", R_ADR_X, 0x3100, or_r_adr_x }, + { "XOR", R_ADR_X, 0x3200, xor_r_adr_x }, + { "AND", R1_R2, 0x3400, and_r1_r2 }, + { "OR", R1_R2, 0x3500, or_r1_r2 }, + { "XOR", R1_R2, 0x3600, xor_r1_r2 }, + { "CPA", R_ADR_X, 0x4000, cpa_r_adr_x }, + { "CPL", R_ADR_X, 0x4100, cpl_r_adr_x }, + { "CPA", R1_R2, 0x4400, cpa_r1_r2 }, + { "CPL", R1_R2, 0x4500, cpl_r1_r2 }, { "SLA", R_ADR_X, 0x5000, sla }, { "SRA", R_ADR_X, 0x5100, sra }, { "SLL", R_ADR_X, 0x5200, sll }, @@ -51,7 +51,7 @@ static CMD comet2cmd[] = { }; /** - * 命令コード配列のサイズ + * 命令表のサイズ */ static int comet2cmdsize = ARRAYSIZE(comet2cmd); @@ -112,7 +112,7 @@ bool create_cmdtype_code() } /** - * 命令の名前とタイプから、命令コードを返す + * 命令の名前とタイプから、命令コードを返す\n * 無効な場合は0xFFFFを返す */ WORD getcmdcode(const char *cmd, CMDTYPE type) @@ -182,24 +182,6 @@ bool create_code_type() return true; } -/** - * 命令コードから命令を返す - * 命令コードでない場合はNULLを返す - */ -CMD *getcmd(WORD code) -{ - CMDTAB *p; - CMD *c = NULL; - - for(p = code_type[hash_code(code)]; p != NULL; p = p->next) { - if(code == p->cmd->code) { - c = p->cmd; - break; - } - } - return c; -} - /** * 命令コードから命令の関数ポインタを返す */