#ifndef YACASL2_CASL2_INCLUDED
#define YACASL2_CASL2_INCLUDED
+#include <stdio.h>
+#include <assert.h>
+#include <string.h>
#include <time.h>
#include "word.h"
+#include "cmem.h"
+#include "hash.h"
/**
- * COMET IIの規格
+ * @brief COMET IIの規格値
*/
enum {
CMDSIZE = 4, /**<命令の最大文字数 */
};
/**
- * COMET II フラグのマスク値
+ * @brief COMET II フラグのマスク値
*/
enum {
OF = 0x4, /**<Overflow Flag */
};
/**
- * COMET IIのCPU
+ * @brief COMET IIのCPUを表すデータ型
*/
typedef struct {
WORD gr[GRSIZE]; /**<汎用レジスタ */
} CPU;
/**
- * COMET IIの仮想実行マシンシステム
+ * @brief COMET IIの仮想実行マシンシステムを表すデータ型
*/
typedef struct {
CPU *cpu; /**<CPU */
clock_t clocks; /**<クロック周波数 */
} SYSTEM;
+/**
+ * @brief COMET IIの仮想実行マシンシステム
+ */
extern SYSTEM *sys;
/**
/**
* コードがキーの命令ハッシュ表を作成する
*/
-bool create_code_type();
+bool create_code_cmdtype();
/**
* 命令コードから命令の関数ポインタを返す
*/
const void (*getcmdptr(WORD code));
+/**
+ * 命令コードから命令のタイプを返す
+ */
+CMDTYPE getcmdtype(WORD code);
+
+/**
+ * 命令コードから命令の名前を返す
+ */
+char *getcmdname(WORD code);
+
/**
* コードがキーの命令ハッシュ表を解放する
*/
-void free_code_type();
+void free_code_cmdtype();
#endif /* YACASL2_CASL2_INCLUDEDの終端 */