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