getlabel関数の引数を変更
[YACASL2.git] / include / exec.h
1 /* コードから命令のパターンを取得 */
2 CMDTYPE getcmdtype(WORD code);
3
4 enum {
5     INSIZE = 256    /* CASL IIの、IN命令入力領域 */
6 };
7
8 /* 指定されたファイルからアセンブル結果を読込 */
9 bool inassemble(char *file);
10
11 /* 標準入力から文字データを読込(SVC 1) */
12 void svcin();
13
14 /* 標準出力へ文字データを書出(SVC 2) */
15 void svcout();
16
17 /* ロード/論理積/論理和/排他的論理和のフラグ設定。OFは常に0 */
18 void setfr(WORD val);
19
20 /* 算術加算。フラグを設定して値を返す */
21 WORD adda(WORD val0, WORD val1);
22
23 /* 算術減算。フラグを設定して値を返す */
24 WORD suba(WORD val0, WORD val1);
25
26 /* 論理加算。フラグを設定して値を返す */
27 WORD addl(WORD val0, WORD val1);
28
29 /* 論理減算。フラグを設定して値を返す */
30 WORD subl(WORD val0, WORD val1);
31
32 /* 算術比較のフラグ設定。OFは常に0 */
33 void cpa(WORD val0, WORD val1);
34
35 /* 論理比較のフラグ設定。OFは常に0 */
36 void cpl(WORD val0, WORD val1);
37
38 /* 算術左シフト。フラグを設定して値を返す */
39 WORD sla(WORD val0, WORD val1);
40
41 /* 算術右シフト。フラグを設定して値を返す */
42 WORD sra(WORD val0, WORD val1);
43
44 /* 論理左シフト。フラグを設定して値を返す */
45 WORD sll(WORD val0, WORD val1);
46
47 /* 論理右シフト。フラグを設定して値を返す */
48 WORD srl(WORD val0, WORD val1);
49
50 /* 仮想マシンのリセット */
51 void reset();
52
53 /* コードの実行 */
54 void exec();