YACASL2
Loading...
Searching...
No Matches
struct.h
Go to the documentation of this file.
1#ifndef YACASL2_STRUCT_H_INCLUDED
2#define YACASL2_STRUCT_H_INCLUDED
3
4#include <stdio.h>
5#include <assert.h>
6#include <string.h>
7#include <time.h>
8#include "word.h"
9#include "cmem.h"
10#include "hash.h"
11
12typedef unsigned int CLOCK;
13
17enum {
18 CMDSIZE = 4,
19 GRSIZE = 8,
20 MAX_MEMSIZE = 65536,
22 MAX_CLOCKS = 1000000,
24};
25
29enum {
30 OF = 0x4,
31 SF = 0x2,
32 ZF = 0x1,
33};
34
38typedef struct {
43} CPU;
44
54
58extern SYSTEM *sys;
59
68
73typedef enum {
80 R_ADR_X = 01,
86 R1_R2 = 02,
92 ADR_X = 03,
97 R_ = 04,
101 NONE = 0,
102} CMDTYPE;
103
107typedef struct {
108 char *name;
109 const void (*ptr);
110} CMD;
111
115typedef struct {
116 char *name;
119 const void (*ptr);
120} COMET2CMD;
121
125typedef struct _CMDTAB {
126 struct _CMDTAB *next;
127 const COMET2CMD *cmd;
129
133typedef struct {
136 bool stop;
137} EXECPTR;
138
139extern EXECPTR *execptr;
140
144typedef struct {
145 bool trace;
146 bool logical;
147 bool dump;
150 bool monitor;
151 bool step;
152} EXECMODE;
153
157extern EXECMODE execmode;
158
166char *grstr(WORD word);
167
175WORD memsize_str2word(const char *str);
176
183void comet2_init(WORD memsize, CLOCK clocks);
184
188void comet2_reset();
189
193void comet2_resetall();
194
198void comet2_shutdown();
199
206
211
216WORD getcmdcode(const char *cmd, CMDTYPE type);
217
221const void (*getcmdptr(WORD code));
222
227
231char *getcmdname(WORD code);
232
233#endif
unsigned hash(int keyc, HKEY *keyv[], int tabsize)
ハッシュ値を取得する
Definition hash.c:3
WORD memsize_str2word(const char *str)
メモリーサイズを表す数値文字列をWORD値に変換して返す。WORD値に変換できない場合は、エラーを表示して0を返す
Definition struct.c:261
CMDTAB_HASH
Definition struct.h:63
@ HASH_CMDTYPE
Definition struct.h:64
@ HASH_MAX
Definition struct.h:66
@ HASH_CODE
Definition struct.h:65
@ MAX_MEMSIZE
Definition struct.h:20
@ DEFAULT_MEMSIZE
Definition struct.h:21
@ DEFAULT_CLOCKS
Definition struct.h:23
@ CMDSIZE
Definition struct.h:18
@ GRSIZE
Definition struct.h:19
@ MAX_CLOCKS
Definition struct.h:22
void comet2_shutdown()
COMET II仮想マシンのシャットダウン
Definition struct.c:331
CMDTYPE getcmdtype(WORD code)
Definition struct.c:216
EXECPTR * execptr
Definition struct.c:13
bool create_cmdtable(CMDTAB_HASH hash)
命令ハッシュ表を作成する
Definition struct.c:124
@ OF
Definition struct.h:30
@ ZF
Definition struct.h:32
@ SF
Definition struct.h:31
const void * getcmdptr(WORD code)
Definition struct.c:199
char * grstr(WORD word)
汎用レジスタの番号からレジスタを表す文字列を返す
Definition struct.c:251
unsigned int CLOCK
Definition struct.h:12
CMDTYPE
Definition struct.h:73
@ R_
Definition struct.h:97
@ R_ADR_X
Definition struct.h:80
@ ADR_X
Definition struct.h:92
@ NONE
Definition struct.h:101
@ R1_R2
Definition struct.h:86
void free_cmdtable(CMDTAB_HASH hash)
Definition struct.c:146
SYSTEM * sys
COMET IIの仮想実行マシンシステム
Definition struct.c:8
struct _CMDTAB CMDTAB
void comet2_resetall()
Definition struct.c:320
void comet2_reset()
COMET II仮想マシンのCPUをリセット
Definition struct.c:311
char * getcmdname(WORD code)
Definition struct.c:233
WORD getcmdcode(const char *cmd, CMDTYPE type)
Definition struct.c:164
void comet2_init(WORD memsize, CLOCK clocks)
COMET II仮想マシンの初期化
Definition struct.c:268
EXECMODE execmode
実行モード: trace, logical, dump, monitor, step
Definition exec.c:90
const COMET2CMD * cmd
Definition struct.h:127
struct _CMDTAB * next
Definition struct.h:126
Definition struct.h:107
const void * ptr
Definition struct.h:109
char * name
Definition struct.h:108
const void * ptr
Definition struct.h:119
CMDTYPE type
Definition struct.h:117
char * name
Definition struct.h:116
WORD code
Definition struct.h:118
COMET IIのCPUを表すデータ型
Definition struct.h:38
WORD gr[GRSIZE]
Definition struct.h:39
WORD sp
Definition struct.h:40
WORD fr
Definition struct.h:42
WORD pr
Definition struct.h:41
実行モードを表すデータ型
Definition struct.h:144
bool step
Definition struct.h:151
bool dump
Definition struct.h:147
bool trace
Definition struct.h:145
bool logical
Definition struct.h:146
int dump_start
Definition struct.h:148
int dump_end
Definition struct.h:149
bool monitor
Definition struct.h:150
WORD start
Definition struct.h:134
WORD end
Definition struct.h:135
bool stop
Definition struct.h:136
COMET IIの仮想実行マシンシステムを表すデータ型
Definition struct.h:48
CLOCK clocks
Definition struct.h:52
WORD memsize
Definition struct.h:51
WORD * memory
Definition struct.h:50
CPU * cpu
Definition struct.h:49
unsigned short WORD
16ビットの数値を表すデータ型
Definition word.h:9