projects
/
YACASL2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
CLOCKSの型を修正
[YACASL2.git]
/
include
/
struct.h
diff --git
a/include/struct.h
b/include/struct.h
index
0825ac1
..
e862786
100644
(file)
--- a/
include/struct.h
+++ b/
include/struct.h
@@
-1,6
+1,7
@@
#ifndef YACASL2_CASL2_INCLUDED
#define YACASL2_CASL2_INCLUDED
#ifndef YACASL2_CASL2_INCLUDED
#define YACASL2_CASL2_INCLUDED
+#include <time.h>
#include "word.h"
/**
#include "word.h"
/**
@@
-39,7
+40,7
@@
typedef struct {
CPU *cpu; /**<CPU */
WORD *memory; /**<メモリ */
int memsize; /**<メモリサイズ */
CPU *cpu; /**<CPU */
WORD *memory; /**<メモリ */
int memsize; /**<メモリサイズ */
-
int clocks;
/**<クロック周波数 */
+
clock_t clocks;
/**<クロック周波数 */
} SYSTEM;
extern SYSTEM *sys;
} SYSTEM;
extern SYSTEM *sys;
@@
-50,38
+51,32
@@
extern SYSTEM *sys;
*/
typedef enum {
/**
*/
typedef enum {
/**
- * オペランド数2または3
+ * オペランド数2または3
。命令語長2
* 第1オペランド: 汎用レジスタ
* 第2オペランド: アドレス
* 第3オペランド: 指標レジスタ
*/
R_ADR_X = 010,
/**
* 第1オペランド: 汎用レジスタ
* 第2オペランド: アドレス
* 第3オペランド: 指標レジスタ
*/
R_ADR_X = 010,
/**
- * オペランド数2または3
+ * オペランド数2または3
。。命令語長2
* 第1オペランド: 汎用レジスタ
* 第2オペランド: アドレスに格納されている内容
* 第3オペランド: 指標レジスタ
*/
* 第1オペランド: 汎用レジスタ
* 第2オペランド: アドレスに格納されている内容
* 第3オペランド: 指標レジスタ
*/
- R_ADR_X_ = 011,
- /**
- * オペランド数2
- * 第1オペランド: 汎用レジスタ
- * 第2オペランド: 汎用レジスタ
- */
R1_R2 = 020,
/**
R1_R2 = 020,
/**
- * オペランド数1または2
+ * オペランド数1または2
。命令語長1
* 第1オペランド: アドレス
* 第2オペランド: 指標レジスタ
*/
ADR_X = 030,
/**
* 第1オペランド: アドレス
* 第2オペランド: 指標レジスタ
*/
ADR_X = 030,
/**
- * オペランド数1
+ * オペランド数1
。命令語長1
* 第1オペランド: 汎用レジスタ
*/
R_ = 040,
/**
* 第1オペランド: 汎用レジスタ
*/
R_ = 040,
/**
- * オペランドなし
+ * オペランドなし
。命令語長1
*/
NONE = 0,
/**
*/
NONE = 0,
/**
@@
-93,19
+88,27
@@
typedef enum {
/**
* 命令コード表の項目
*/
/**
* 命令コード表の項目
*/
+typedef struct {
+ char *name; /**<命令名 */
+ const void (*ptr); /**<命令の関数ポインタ */
+} CMD;
+
+/**
+ * COMET II命令コード表の項目
+ */
typedef struct {
char *name; /**<命令名 */
CMDTYPE type; /**<命令タイプ */
WORD code; /**<命令コード */
typedef struct {
char *name; /**<命令名 */
CMDTYPE type; /**<命令タイプ */
WORD code; /**<命令コード */
- const void (*ptr);
/**<命令の関数ポインタ */
-} CMD;
+ const void (*ptr); /**<命令の関数ポインタ */
+} C
OMET2C
MD;
/**
* 命令コードのハッシュ表
*/
typedef struct _CMDTAB {
struct _CMDTAB *next; /**<リスト次項目へのポインタ */
/**
* 命令コードのハッシュ表
*/
typedef struct _CMDTAB {
struct _CMDTAB *next; /**<リスト次項目へのポインタ */
- C
MD *cmd;
/**<命令コード表の項目 */
+ C
OMET2CMD *cmd;
/**<命令コード表の項目 */
} CMDTAB;
/**
} CMDTAB;
/**
@@
-150,12
+153,6
@@
void free_cmdtype_code();
*/
bool create_code_type();
*/
bool create_code_type();
-/**
- * 命令コードから命令を返す
- * 命令コードでない場合はNULLを返す
- */
-CMD *getcmd(WORD code);
-
/**
* 命令コードから命令の関数ポインタを返す
*/
/**
* 命令コードから命令の関数ポインタを返す
*/