X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=include%2Fstruct.h;h=8f69f204ebf2d2ee6d0b7ff112c4c896301ca7a6;hp=9064d5f5d3fe3c273374f3e5fd00997cb19fd282;hb=21b0a348f1e1660a3da0ebf0c4e7009a4ac11c71;hpb=a46594d66972fae37a609506bcf01f6b2bdc865e diff --git a/include/struct.h b/include/struct.h index 9064d5f..8f69f20 100644 --- a/include/struct.h +++ b/include/struct.h @@ -53,6 +53,14 @@ typedef struct { */ extern SYSTEM *sys; +/** + * 命令ハッシュ表のハッシュの種類 + */ +typedef enum { + HASH_CMDTYPE = 0, + HASH_CODE = 1, +} CMDTAB_HASH; + /** * COMET II 命令 * 命令タイプは、オペランドにより5種類に分類 @@ -85,7 +93,7 @@ typedef enum { /** * オペランドなし */ - NONE = 00, + NONE = 0, } CMDTYPE; /** @@ -111,7 +119,7 @@ typedef struct { */ typedef struct _CMDTAB { struct _CMDTAB *next; /**<リスト次項目へのポインタ */ - COMET2CMD *cmd; /**<命令コード表の項目 */ + const COMET2CMD *cmd; /**<命令コード表の項目 */ } CMDTAB; /** @@ -125,6 +133,15 @@ typedef struct { extern EXECPTR *execptr; +/** + * @brief 汎用レジスタの番号からレジスタを表す文字列を返す + * + * @return 汎用レジスタを表す文字列。「GR0」「GR1」・・・「GR7」のいずれか + * + * @param word レジスタ番号[0-7]を表すWORD値 + */ +char *grstr(WORD word); + /** * COMET II仮想マシンのリセット */ @@ -136,9 +153,13 @@ void reset(int memsize, int clocks); void shutdown(); /** - * 名前とタイプがキーの命令ハッシュ表を作成する + * @brief 命令ハッシュ表を作成する + * + * @return なし + * + * @param hash ハッシュ値 */ -bool create_cmdtype_code(); +bool create_cmdtable(CMDTAB_HASH hash); /** * 命令の名前とタイプから、命令コードを返す @@ -147,9 +168,9 @@ bool create_cmdtype_code(); WORD getcmdcode(const char *cmd, CMDTYPE type); /** - * 名前とタイプがキーの命令ハッシュ表を解放する + * 命令ハッシュ表を解放する */ -void free_cmdtype_code(); +void free_cmdtable(); /** * コードがキーの命令ハッシュ表を作成する @@ -171,9 +192,4 @@ CMDTYPE getcmdtype(WORD code); */ char *getcmdname(WORD code); -/** - * コードがキーの命令ハッシュ表を解放する - */ -void free_code_cmdtype(); - #endif /* YACASL2_CASL2_INCLUDEDの終端 */