X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=include%2Fexec.h;h=bd06f39405269d321897a2fad1d0d38db4704cdd;hb=e828214232ab67ed2d387c2c3ff62114fd4e7c9e;hp=529702c3022821adb5c580f7efc251f21cd9b73b;hpb=44cde08e6cf148928a219593c78a57abfd89b424;p=YACASL2.git diff --git a/include/exec.h b/include/exec.h index 529702c..bd06f39 100644 --- a/include/exec.h +++ b/include/exec.h @@ -1,3 +1,6 @@ +#ifndef YACASL2_EXEC_INCLUDED +#define YACASL2_EXEC_INCLUDED + /* コードから命令のパターンを取得 */ CMDTYPE getcmdtype(WORD code); @@ -5,59 +8,27 @@ enum { INSIZE = 256 /* CASL IIの、IN命令入力領域 */ }; -/* 指定されたファイルからアセンブル結果を読込 */ -bool inassemble(char *file); - -/* 標準入力から文字データを読込(SVC 1) */ -void svcin(); - -/* 標準出力へ文字データを書出(SVC 2) */ -void svcout(); - -/* ロード/論理積/論理和/排他的論理和のフラグ設定。OFは常に0 */ -void setfr(WORD val); - -/* 算術加算。フラグを設定して値を返す */ -WORD adda(WORD val0, WORD val1); - -/* 算術減算。フラグを設定して値を返す */ -WORD suba(WORD val0, WORD val1); - -/* 論理加算。フラグを設定して値を返す */ -WORD addl(WORD val0, WORD val1); - -/* 論理減算。フラグを設定して値を返す */ -WORD subl(WORD val0, WORD val1); +/* 実行モード */ +typedef struct { + bool trace; /* レジストリの内容を表示する場合はtrue */ + bool logical; /* レジストリの内容を論理値(0〜65535)で表示する場合はtrue */ + bool dump; /* メモリの内容を表示する場合はtrue */ +} EXECMODE; +extern EXECMODE execmode; -/* 算術比較のフラグ設定。OFは常に0 */ -void cpa(WORD val0, WORD val1); +/* 実行のエラー定義 */ +bool addcerrlist_exec(); -/* 論理比較のフラグ設定。OFは常に0 */ -void cpl(WORD val0, WORD val1); - -/* 算術左シフト。フラグを設定して値を返す */ -WORD sla(WORD val0, WORD val1); - -/* 算術右シフト。フラグを設定して値を返す */ -WORD sra(WORD val0, WORD val1); - -/* 論理左シフト。フラグを設定して値を返す */ -WORD sll(WORD val0, WORD val1); - -/* 論理右シフト。フラグを設定して値を返す */ -WORD srl(WORD val0, WORD val1); - -/* 仮想マシンのリセット */ +/* COMET II仮想マシンのリセット */ void reset(); /* コードの実行 */ void exec(); -/* WORD値を2進数表記に変換 */ -char *word2bit(const WORD word); - /* COMET IIのメモリを表示 */ void dumpmemory(); /* COMET IIのレジスタを表示 */ void dspregister(); + +#endif /* YACASL2_EXEC_INCLUDEDの終端 */