X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=include%2Fstruct.h;h=dce1ddf02b2a6040f308b6965f3b52a52c6c2c08;hp=8f69f204ebf2d2ee6d0b7ff112c4c896301ca7a6;hb=b57939e6166b26126802b129a3f367b972bb453f;hpb=21b0a348f1e1660a3da0ebf0c4e7009a4ac11c71 diff --git a/include/struct.h b/include/struct.h index 8f69f20..dce1ddf 100644 --- a/include/struct.h +++ b/include/struct.h @@ -57,8 +57,9 @@ extern SYSTEM *sys; * 命令ハッシュ表のハッシュの種類 */ typedef enum { - HASH_CMDTYPE = 0, - HASH_CODE = 1, + HASH_CMDTYPE, + HASH_CODE, + HASH_MAX, } CMDTAB_HASH; /** @@ -133,6 +134,24 @@ typedef struct { 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 汎用レジスタの番号からレジスタを表す文字列を返す * @@ -161,21 +180,16 @@ void shutdown(); */ 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); /** * 命令コードから命令の関数ポインタを返す