55bf9a91fd8851eecdd5871cc698a9d62487c4d0
[YACASL2.git] / test / unit / getcmdcode / cmd.c
1 #include <stdio.h>
2 #include "struct.h"
3 #include "cerr.h"
4
5 int main(){
6     int i;
7     WORD code;
8     struct CMDCODELIST {
9         char *cmd;
10         CMDTYPE type;
11     } cmdcodelist[] = {
12         { "LD", NONE }, { "LD", 066 }, { "NOEX", R1_R2 },
13         { "NOP", NONE }, { "LD", R_ADR_X_ }, { "ST", R_ADR_X },
14         { "LAD", R_ADR_X }, { "LD", R1_R2 }, { "ADDA", R_ADR_X_ },
15         { "SUBA", R_ADR_X_ }, { "ADDL", R_ADR_X_ }, { "SUBL", R_ADR_X_ },
16         { "ADDA", R1_R2 }, { "SUBA", R1_R2 }, { "ADDL", R1_R2 },
17         { "SUBL", R1_R2 }, { "AND", R_ADR_X_ }, { "OR", R_ADR_X_ },
18         { "XOR", R_ADR_X_ }, { "AND", R1_R2 }, { "OR", R1_R2 },
19         { "XOR", R1_R2 }, { "CPA", R_ADR_X_ }, { "CPL", R_ADR_X_ },
20         { "CPA", R1_R2 }, { "CPL", R1_R2 }, { "SLA", R_ADR_X },
21         { "SRA", R_ADR_X }, { "SLL", R_ADR_X }, { "SRL", R_ADR_X },
22         { "JMI", ADR_X }, { "JNZ", ADR_X }, { "JZE", ADR_X },
23         { "JUMP", ADR_X }, { "JPL", ADR_X }, { "JOV", ADR_X },
24         { "PUSH", ADR_X }, { "POP", R_ }, { "CALL", ADR_X },
25         { "SVC", ADR_X }, { "RET", NONE }
26     };
27     create_cmdtype_code();
28     cerr_init();
29     for(i = 0; i < sizeof(cmdcodelist)/sizeof(cmdcodelist[0]); i++) {
30         code = getcmdcode(cmdcodelist[i].cmd, cmdcodelist[i].type);
31         printf("%s:0%02o ---> #%04X\n", cmdcodelist[i].cmd, cmdcodelist[i].type, code);
32         if(cerr->num != 0) {
33             printf("\terror - %d: %s", cerr->num, cerr->msg);
34         }
35     }
36     freecerr();
37     free_cmdtype_code();
38     return 0;
39 }