comet2monitorの追加と、モニター機能作成
[YACASL2.git] / include / exec.h
index 931f799..7940829 100644 (file)
@@ -3,9 +3,14 @@
 
 #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命令の、入力領域 */
@@ -15,13 +20,15 @@ enum {
  * @brief 実行モードを表すデータ型
  */
 typedef struct {
-    bool trace;           /**<レジストリの内容を表示する場合はtrue */
+    bool trace;           /**<レジストリの内容をステップごとに表示する場合はtrue */
     bool logical;         /**<レジストリの内容を論理値(0から65535)で表示する場合はtrue */
-    bool dump;            /**<メモリの内容を表示する場合はtrue */
+    bool dump;            /**<メモリの内容をステップごとに表示する場合はtrue */
+    bool monitor;         /**<モニターモードの場合はtrue */
+    bool step;            /**<ステップ実行の場合はtrue */
 } EXECMODE;
 
 /**
- * @brief 実行モード: trace, logical, dump
+ * @brief 実行モード: trace, logical, dump, monitor, step
  */
 extern EXECMODE execmode;
 
@@ -37,9 +44,13 @@ void addcerrlist_load();
 
 /**
  * @brief 指定されたファイルからアセンブル結果を読み込む
+ *
+ * @return 読み込み終了アドレス。読み込めなかった場合は、0
+ *
+ * @param file 読み込むファイル名
+ * @param start 読み込み開始アドレス
  */
-bool loadassemble(const char *file);
-
+WORD loadassemble(const char *file, WORD start);
 
 /**
  * @class Exec
@@ -369,8 +380,11 @@ void svc();
  * @brief COMET IIのメモリを表示する
  *
  * @return なし
+ *
+ * @param start 表示の開始アドレス
+ * @param end 表示の終了アドレス
  */
-void dumpmemory();
+void dumpmemory(WORD start, WORD end);
 
 /**
  * @brief COMET IIのレジスタを表示する