逆アセンブル出力と、マシンコードモニター機能の修正
[YACASL2.git] / include / exec.h
index dea36e8..432d3fd 100644 (file)
@@ -3,18 +3,19 @@
 
 #include <stdbool.h>
 #include <stdio.h>
+#include <assert.h>
+#include <time.h>
 #include "struct.h"
 #include "word.h"
 #include "cmem.h"
+#include "cerr.h"
+#include "monitor.h"
+#include "disassemble.h"
 
 enum {
     INSIZE = 256    /**<IN命令の、入力領域 */
 };
 
-enum {
-    DBINSIZE = 8    /**<デバッガーの、入力領域 */
-};
-
 /**
  * @brief 実行モードを表すデータ型
  */
@@ -22,11 +23,11 @@ typedef struct {
     bool trace;           /**<レジストリの内容をステップごとに表示する場合はtrue */
     bool logical;         /**<レジストリの内容を論理値(0から65535)で表示する場合はtrue */
     bool dump;            /**<メモリの内容をステップごとに表示する場合はtrue */
-    bool debugger;           /**<デバッガーモードの場合はtrue */
+    bool step;           /**<ステップ実行の場合はtrue */
 } EXECMODE;
 
 /**
- * @brief 実行モード: trace, logical, dump, debugger
+ * @brief 実行モード: trace, logical, dump, step
  */
 extern EXECMODE execmode;
 
@@ -45,6 +46,14 @@ void addcerrlist_load();
  */
 bool loadassemble(const char *file);
 
+/**
+ * @brief 汎用レジスタの番号からレジスタを表す文字列を返す
+ *
+ * @return 汎用レジスタを表す文字列。「GR0」「GR1」・・・「GR7」のいずれか
+ *
+ * @param word レジスタ番号[0-7]を表すWORD値
+ */
+char *grstr(WORD word);
 
 /**
  * @class Exec
@@ -374,8 +383,11 @@ void svc();
  * @brief COMET IIのメモリを表示する
  *
  * @return なし
+ *
+ * @param start 表示の開始アドレス
+ * @param end 表示の終了アドレス
  */
-void dumpmemory();
+void dumpmemory(WORD start, WORD end);
 
 /**
  * @brief COMET IIのレジスタを表示する
@@ -384,20 +396,4 @@ void dumpmemory();
  */
 void dspregister();
 
-/**
- * @brief CASL IIのオブジェクトファイルを逆アセンブルし、標準出力へ出力する
- *
- * @return 正常終了時は0、異常終了時は0以外
- *
- * @param *file オブジェクトファイルのファイル名
- */
-bool disassemble_file(const char *file);
-
-/**
- * @brief COMET IIデバッガーを起動する
- *
- * @return なし
- */
-void debugger();
-
 #endif            /* YACASL2_EXEC_INCLUDEDの終端 */