1 #ifndef YACASL2_EXEC_INCLUDED
2 #define YACASL2_EXEC_INCLUDED
11 INSIZE = 256 /**<IN命令の、入力領域 */
15 DBINSIZE = 8 /**<デバッガーの、入力領域 */
22 bool trace; /**<レジストリの内容をステップごとに表示する場合はtrue */
23 bool logical; /**<レジストリの内容を論理値(0から65535)で表示する場合はtrue */
24 bool dump; /**<メモリの内容をステップごとに表示する場合はtrue */
25 bool debugger; /**<デバッガーモードの場合はtrue */
29 * @brief 実行モード: trace, logical, dump, debugger
31 extern EXECMODE execmode;
34 * @brief 実行エラーをエラーリストに追加する
36 void addcerrlist_exec();
39 * @brief アセンブル結果読み込みエラーをエラーリストに追加する
41 void addcerrlist_load();
44 * @brief 指定されたファイルからアセンブル結果を読み込む
46 bool loadassemble(const char *file);
51 * @brief execから関数ポインタで呼び出される関数
56 * @brief COMET II仮想マシンを実行する
65 * @brief NOP命令。語長1(OPのみ)
73 * @brief LD命令 - オペランドr,adr,x。語長2
81 * @brief LD命令 - オペランドr1,r2。語長1
105 * @brief ADDA命令 - オペランドr,adr,x。語長2
113 * @brief ADDA命令 - オペランドr1,r2。語長1
121 * @brief SUBA命令 - オペランドr,adr,x。語長2
129 * @brief SUBA命令 - オペランドr1,r2。語長1
137 * @brief ADDL命令 - オペランドr,adr,x。語長2
145 * @brief ADDL命令 - オペランドr1,r2。語長1
153 * @brief SUBL命令 - オペランドr,adr,x。語長2
161 * @brief SUBL命令 - オペランドr1,r2。語長1
169 * @brief AND命令 - オペランドr,adr,x。語長2
177 * @brief AND命令 - オペランドr1,r2。語長1
185 * @brief OR命令 - オペランドr,adr,x。語長2
193 * @brief OR命令 - オペランドr1,r2。語長1
201 * @brief XOR命令 - オペランドr,adr,x。語長2
209 * @brief XOR命令 - オペランドr1,r2。語長1
217 * @brief CPA命令 - オペランドr,adr,x。語長2
225 * @brief CPA命令 - オペランドr1,r2。語長1
233 * @brief CPL命令 - オペランドr,adr,x。語長2
241 * @brief CPL命令 - オペランドr1,r2。語長1
249 * @brief SLA命令 - オペランドr,adr,x。語長2
251 * 算術演算なので、第15ビットは送り出されない
259 * @brief SRA命令 - オペランドr,adr,x。語長2
261 * 算術演算なので、第15ビットは送り出されない
262 * 空いたビット位置には符号と同じものが入る
270 * @brief SLL命令 - オペランドr,adr,x。語長2
278 * @brief SRL命令 - オペランドr,adr,x。語長2
358 * @brief RET命令。語長1(OPのみ)
374 * @brief COMET IIのメモリを表示する
381 * @brief COMET IIのレジスタを表示する
389 * @brief CASL IIのオブジェクトファイルを逆アセンブルし、標準出力へ出力する
391 * @return 正常終了時は0、異常終了時は0以外
393 * @param *file オブジェクトファイルのファイル名
395 bool disassemble_file(const char *file);
397 #endif /* YACASL2_EXEC_INCLUDEDの終端 */