X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=include%2Fexec.h;h=40230b41a1954779c3229ea5d56c2909b7765f27;hp=529702c3022821adb5c580f7efc251f21cd9b73b;hb=3ea92ba68cb320156d5bc7fe92f5e5fa0c150635;hpb=44cde08e6cf148928a219593c78a57abfd89b424 diff --git a/include/exec.h b/include/exec.h index 529702c..40230b4 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,47 +8,13 @@ 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); - -/* 算術比較のフラグ設定。OFは常に0 */ -void cpa(WORD val0, WORD val1); - -/* 論理比較のフラグ設定。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); +/* 実行モード */ +typedef struct { + bool trace; /* レジストリの内容を表示する場合はtrue */ + bool logical; /* レジストリの内容を論理値(0〜65535)で表示する場合はtrue */ + bool dump; /* メモリの内容を表示する場合はtrue */ +} EXECMODE; +extern EXECMODE execmode; /* 仮想マシンのリセット */ void reset(); @@ -53,11 +22,10 @@ void reset(); /* コードの実行 */ void exec(); -/* WORD値を2進数表記に変換 */ -char *word2bit(const WORD word); - /* COMET IIのメモリを表示 */ void dumpmemory(); /* COMET IIのレジスタを表示 */ void dspregister(); + +#endif /* YACASL2_EXEC_INCLUDEDの終端 */