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