1 #ifndef YACASL2_EXEC_INCLUDED
2 #define YACASL2_EXEC_INCLUDED
13 #include "disassemble.h"
16 INSIZE = 256 /**<IN命令の、入力領域 */
23 bool trace; /**<レジストリの内容をステップごとに表示する場合はtrue */
24 bool logical; /**<レジストリの内容を論理値(0から65535)で表示する場合はtrue */
25 bool dump; /**<メモリの内容をステップごとに表示する場合はtrue */
26 int dump_start; /**<メモリの内容をステップごとに表示する場合の開始アドレス */
27 int dump_end; /**<メモリの内容をステップごとに表示する場合の終了アドレス */
28 bool monitor; /**<モニターモードの場合はtrue */
29 bool step; /**<ステップ実行の場合はtrue */
33 * @brief 実行モード: trace, logical, dump, monitor, step
35 extern EXECMODE execmode;
38 * @brief 実行エラーをエラーリストに追加する
40 void addcerrlist_exec();
43 * @brief アセンブル結果読み込みエラーをエラーリストに追加する
45 void addcerrlist_load();
48 * @brief 指定されたファイルからアセンブル結果を読み込む
50 * @return 読み込み終了アドレス。読み込めなかった場合は、0
52 * @param file 読み込むファイル名
53 * @param start 読み込み開始アドレス
55 WORD loadassemble(const char *file, WORD start);
59 * @brief execから関数ポインタで呼び出される関数
64 * @brief COMET II仮想マシンを実行する
73 * @brief NOP命令。語長1(OPのみ)
81 * @brief LD命令 - オペランドr,adr,x。語長2
89 * @brief LD命令 - オペランドr1,r2。語長1
113 * @brief ADDA命令 - オペランドr,adr,x。語長2
121 * @brief ADDA命令 - オペランドr1,r2。語長1
129 * @brief SUBA命令 - オペランドr,adr,x。語長2
137 * @brief SUBA命令 - オペランドr1,r2。語長1
145 * @brief ADDL命令 - オペランドr,adr,x。語長2
153 * @brief ADDL命令 - オペランドr1,r2。語長1
161 * @brief SUBL命令 - オペランドr,adr,x。語長2
169 * @brief SUBL命令 - オペランドr1,r2。語長1
177 * @brief AND命令 - オペランドr,adr,x。語長2
185 * @brief AND命令 - オペランドr1,r2。語長1
193 * @brief OR命令 - オペランドr,adr,x。語長2
201 * @brief OR命令 - オペランドr1,r2。語長1
209 * @brief XOR命令 - オペランドr,adr,x。語長2
217 * @brief XOR命令 - オペランドr1,r2。語長1
225 * @brief CPA命令 - オペランドr,adr,x。語長2
233 * @brief CPA命令 - オペランドr1,r2。語長1
241 * @brief CPL命令 - オペランドr,adr,x。語長2
249 * @brief CPL命令 - オペランドr1,r2。語長1
257 * @brief SLA命令 - オペランドr,adr,x。語長2
259 * 算術演算なので、第15ビットは送り出されない
267 * @brief SRA命令 - オペランドr,adr,x。語長2
269 * 算術演算なので、第15ビットは送り出されない
270 * 空いたビット位置には符号と同じものが入る
278 * @brief SLL命令 - オペランドr,adr,x。語長2
286 * @brief SRL命令 - オペランドr,adr,x。語長2
366 * @brief RET命令。語長1(OPのみ)
382 * @brief COMET IIのメモリを表示する
386 * @param start 表示の開始アドレス
387 * @param end 表示の終了アドレス
389 void dumpmemory(WORD start, WORD end);
392 * @brief COMET IIのレジスタを表示する
398 #endif /* YACASL2_EXEC_INCLUDEDの終端 */