comet2monitorの追加と、モニター機能作成
[YACASL2.git] / include / monitor.h
index b9ca454..b2f648e 100644 (file)
@@ -4,10 +4,11 @@
 #include <stdio.h>
 #include <string.h>
 #include <assert.h>
+#include "assemble.h"
 #include "hash.h"
 #include "cmem.h"
 #include "cerr.h"
-#include "exec.h"
+#include "disassemble.h"
 #include "word.h"
 
 /**
@@ -52,6 +53,12 @@ enum {
     MONINSIZE = 40    /**<モニターの、入力領域 */
 };
 
+typedef enum {
+    MONREPEAT = 0,
+    MONNEXT = 1,
+    MONQUIT = 2,
+} MONCMDTYPE;
+
 /**
  * @brief アドレスのハッシュ値を返す
  *
@@ -79,6 +86,16 @@ MONARGS *monargstok(const char *str);
  */
 MONCMDLINE *monlinetok(const char *line);
 
+/**
+ * @brief モニターの命令を実行する
+ *
+ * @return モニター命令の種類
+ *
+ * @param *cmd モニター命令
+ * @param *args モニター命令の引数
+ */
+MONCMDTYPE monitorcmd(char *cmd, MONARGS *args);
+
 /**
  * @brief ブレークポイント表にアドレスがある場合はtrue、ない場合はfalseを返す
  *
@@ -114,4 +131,11 @@ bool delbps(WORD adr);
  */
 void freebps();
 
+/**
+ * @brief COMET IIモニターを起動する
+ *
+ * @return なし
+ */
+void monitor();
+
 #endif        /* end of MONITOR_INCLUDE */