X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=include%2Fexec.h;h=9afde5bdc208d33429e64abb8daf61cd1b364ac5;hp=c06929fd49820eedc4fe56ab262f2c43eca19457;hb=4ee27a568fb9222907a566e59aaefe248f08a8e4;hpb=fd17e19672d6df5bdde0568e29ef7c462429735c diff --git a/include/exec.h b/include/exec.h index c06929f..9afde5b 100644 --- a/include/exec.h +++ b/include/exec.h @@ -1,54 +1,35 @@ -/* コードから命令のパターンを取得 */ -CMDTYPE getcmdtype(WORD code); +#ifndef YACASL2_EXEC_INCLUDED +#define YACASL2_EXEC_INCLUDED 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); +/* 実行モード */ +typedef struct { + bool trace; /* レジストリの内容を表示する場合はtrue */ + bool logical; /* レジストリの内容を論理値(0〜65535)で表示する場合はtrue */ + bool dump; /* メモリの内容を表示する場合はtrue */ +} EXECMODE; -/* 論理減算。フラグを設定して値を返す */ -WORD subl(WORD val0, WORD val1); +extern EXECMODE execmode; -/* 算術比較のフラグ設定。OFは常に0 */ -void cpa(WORD val0, WORD val1); - -/* 論理比較のフラグ設定。OFは常に0 */ -void cpl(WORD val0, WORD val1); +/* コードから命令のパターンを取得 */ +CMDTYPE getcmdtype(WORD code); -/* 算術左シフト。フラグを設定して値を返す */ -WORD sla(WORD val0, WORD val1); +/* 実行のエラー定義 */ +bool addcerrlist_exec(); -/* 算術右シフト。フラグを設定して値を返す */ -WORD sra(WORD val0, WORD val1); +/* COMET II仮想マシンのリセット */ +void reset(); -/* 論理左シフト。フラグを設定して値を返す */ -WORD sll(WORD val0, WORD val1); +/* コードの実行 */ +bool exec(); -/* 論理右シフト。フラグを設定して値を返す */ -WORD srl(WORD val0, WORD val1); +/* COMET IIのメモリを表示 */ +void dumpmemory(); -/* 仮想マシンのリセット */ -void reset(); +/* COMET IIのレジスタを表示 */ +void dspregister(); -/* コードの実行 */ -void exec(); +#endif /* YACASL2_EXEC_INCLUDEDの終端 */