* 命令ハッシュ表のハッシュの種類
*/
typedef enum {
- HASH_CMDTYPE = 0,
- HASH_CODE = 1,
+ HASH_CMDTYPE,
+ HASH_CODE,
+ HASH_MAX,
} CMDTAB_HASH;
/**
extern EXECPTR *execptr;
+/**
+ * @brief 実行モードを表すデータ型
+ */
+typedef struct {
+ bool trace; /**<レジストリの内容をステップごとに表示する場合はtrue */
+ bool logical; /**<レジストリの内容を論理値(0から65535)で表示する場合はtrue */
+ bool dump; /**<メモリの内容をステップごとに表示する場合はtrue */
+ int dump_start; /**<メモリの内容をステップごとに表示する場合の開始アドレス */
+ int dump_end; /**<メモリの内容をステップごとに表示する場合の終了アドレス */
+ bool monitor; /**<モニターモードの場合はtrue */
+ bool step; /**<ステップ実行の場合はtrue */
+} EXECMODE;
+
+/**
+ * @brief 実行モード: trace, logical, dump, monitor, step
+ */
+extern EXECMODE execmode;
+
/**
* @brief 汎用レジスタの番号からレジスタを表す文字列を返す
*
*/
bool create_cmdtable(CMDTAB_HASH hash);
-/**
- * 命令の名前とタイプから、命令コードを返す
- * 無効な場合は0xFFFFを返す
- */
-WORD getcmdcode(const char *cmd, CMDTYPE type);
-
/**
* 命令ハッシュ表を解放する
*/
-void free_cmdtable();
+void free_cmdtable(CMDTAB_HASH hash);
/**
- * コードがキーの命令ハッシュ表を作成する
+ * 命令の名前とタイプから、命令コードを返す
+ * 無効な場合は0xFFFFを返す
*/
-bool create_code_cmdtype();
+WORD getcmdcode(const char *cmd, CMDTYPE type);
/**
* 命令コードから命令の関数ポインタを返す