OSDN Git Service

flash programming is supported
[unagi/old-svn-converted.git] / client / tag / 0.6.2 / syntax_data.h
1 //included from syntax.c only
2 enum syntax_argvtype{
3         SYNTAX_ARGVTYPE_NULL,
4         SYNTAX_ARGVTYPE_VALUE,
5         SYNTAX_ARGVTYPE_HV,
6         SYNTAX_ARGVTYPE_EXPRESSION,
7         SYNTAX_ARGVTYPE_VARIABLE,
8         SYNTAX_ARGVTYPE_CONSTANT,
9         SYNTAX_ARGVTYPE_TRANSTYPE
10 };
11 enum syntax_compare{
12         SYNTAX_COMPARE_EQ,
13         SYNTAX_COMPARE_GT
14 };
15 enum{
16         SYNTAX_ARGV_TYPE_NUM = 4
17 };
18 enum syntax_permittion{
19         PERMITTION_ROM_DUMP = 1 << MODE_ROM_DUMP,
20         PERMITTION_RAM_READ = 1 << MODE_RAM_READ,
21         PERMITTION_RAM_WRITE = 1 << MODE_RAM_WRITE,
22         PERMITTION_ROM_PROGRAM = 1 << MODE_ROM_PROGRAM,
23         PERMITTION_ALL = 0xffff
24 };
25 struct script_syntax{
26         const char *name;
27         enum script_opcode script_opcode;
28         enum syntax_permittion permittion;
29         int argc;
30         enum syntax_compare compare;
31         const enum syntax_argvtype *argv_type;
32 };
33 //¤³¤ì¤é¤Îʸ»úÎó¤Ï script_engine.c ¤Ç¤â»ÈÍѤ¹¤ë
34 const char OPSTR_CPU_ROMSIZE[] = "CPU_ROMSIZE";
35 const char OPSTR_CPU_RAMSIZE[] = "CPU_RAMSIZE";
36 const char OPSTR_CPU_FLASHSIZE[] = "CPU_FLASHSIZE";
37 const char OPSTR_PPU_ROMSIZE[] = "PPU_ROMSIZE";
38 const char OPSTR_PPU_FLASHSIZE[] = "PPU_FLASHSIZE";
39 const char OPSTR_CPU_RAMRW[] = "CPU_RAMRW";
40
41 static const enum syntax_argvtype 
42 ARGV_TYPE_VALUE_ONLY[SYNTAX_ARGV_TYPE_NUM] = {
43         SYNTAX_ARGVTYPE_VALUE, SYNTAX_ARGVTYPE_NULL,
44         SYNTAX_ARGVTYPE_NULL, SYNTAX_ARGVTYPE_NULL
45 };
46 static const enum syntax_argvtype 
47 ARGV_TYPE_HV[SYNTAX_ARGV_TYPE_NUM] = {
48         SYNTAX_ARGVTYPE_HV, SYNTAX_ARGVTYPE_NULL,
49         SYNTAX_ARGVTYPE_NULL, SYNTAX_ARGVTYPE_NULL
50 };
51 static const enum syntax_argvtype 
52 ARGV_TYPE_NULL[SYNTAX_ARGV_TYPE_NUM] = {
53         SYNTAX_ARGVTYPE_NULL, SYNTAX_ARGVTYPE_NULL,
54         SYNTAX_ARGVTYPE_NULL, SYNTAX_ARGVTYPE_NULL
55 };
56 static const enum syntax_argvtype 
57 ARGV_TYPE_ADDRESS_EXPRESSION[SYNTAX_ARGV_TYPE_NUM] = {
58         SYNTAX_ARGVTYPE_VALUE,
59         SYNTAX_ARGVTYPE_EXPRESSION, SYNTAX_ARGVTYPE_EXPRESSION, SYNTAX_ARGVTYPE_EXPRESSION
60 };
61 static const enum syntax_argvtype 
62 ARGV_TYPE_ADDRESS_LENGTH[SYNTAX_ARGV_TYPE_NUM] = {
63         SYNTAX_ARGVTYPE_VALUE, SYNTAX_ARGVTYPE_VALUE,
64         SYNTAX_ARGVTYPE_NULL, SYNTAX_ARGVTYPE_NULL
65 };
66 static const enum syntax_argvtype 
67 ARGV_TYPE_STEP_START[SYNTAX_ARGV_TYPE_NUM] = {
68         SYNTAX_ARGVTYPE_VARIABLE, SYNTAX_ARGVTYPE_CONSTANT,
69         SYNTAX_ARGVTYPE_CONSTANT, SYNTAX_ARGVTYPE_VALUE
70 };
71 static const enum syntax_argvtype 
72 ARGV_TYPE_ADDRESS_COMMAND[SYNTAX_ARGV_TYPE_NUM] = {
73         SYNTAX_ARGVTYPE_VALUE, SYNTAX_ARGVTYPE_VALUE,
74         SYNTAX_ARGVTYPE_VALUE, SYNTAX_ARGVTYPE_NULL
75 };
76 static const enum syntax_argvtype 
77 ARGV_TYPE_FLASHSIZE[SYNTAX_ARGV_TYPE_NUM] = {
78         SYNTAX_ARGVTYPE_VALUE, SYNTAX_ARGVTYPE_TRANSTYPE,
79         SYNTAX_ARGVTYPE_VALUE, SYNTAX_ARGVTYPE_VALUE
80 };
81 static const struct script_syntax SCRIPT_SYNTAX[] = {
82         {
83                 name: "MAPPER",
84                 script_opcode: SCRIPT_OPCODE_MAPPER,
85                 permittion: PERMITTION_ROM_DUMP | PERMITTION_ROM_PROGRAM,
86                 argc: 1, compare: SYNTAX_COMPARE_EQ,
87                 argv_type: ARGV_TYPE_VALUE_ONLY
88         },{
89                 name: "MIRROR",
90                 script_opcode: SCRIPT_OPCODE_MIRROR,
91                 permittion: PERMITTION_ROM_DUMP,
92                 argc: 1, compare: SYNTAX_COMPARE_EQ,
93                 argv_type: ARGV_TYPE_HV
94         },{
95                 name: OPSTR_CPU_ROMSIZE,
96                 script_opcode: SCRIPT_OPCODE_CPU_ROMSIZE,
97                 permittion: PERMITTION_ROM_DUMP,
98                 argc: 1, compare: SYNTAX_COMPARE_EQ,
99                 argv_type: ARGV_TYPE_VALUE_ONLY
100         },{
101                 name: OPSTR_CPU_RAMSIZE,
102                 script_opcode: SCRIPT_OPCODE_CPU_RAMSIZE,
103                 permittion: PERMITTION_RAM_READ | PERMITTION_RAM_WRITE,
104                 argc: 1, compare: SYNTAX_COMPARE_EQ,
105                 argv_type: ARGV_TYPE_VALUE_ONLY
106         },{
107                 name: OPSTR_CPU_FLASHSIZE,
108                 script_opcode: SCRIPT_OPCODE_CPU_FLASHSIZE,
109                 permittion: PERMITTION_ROM_PROGRAM,
110                 argc: 4, compare: SYNTAX_COMPARE_EQ,
111                 argv_type: ARGV_TYPE_FLASHSIZE
112         },{
113                 name: OPSTR_PPU_ROMSIZE,
114                 script_opcode: SCRIPT_OPCODE_PPU_ROMSIZE,
115                 permittion: PERMITTION_ROM_DUMP,
116                 argc: 1, compare: SYNTAX_COMPARE_EQ,
117                 argv_type: ARGV_TYPE_VALUE_ONLY
118         },{
119                 name: OPSTR_PPU_FLASHSIZE,
120                 script_opcode: SCRIPT_OPCODE_PPU_FLASHSIZE,
121                 permittion: PERMITTION_ROM_PROGRAM,
122                 argc: 4, compare: SYNTAX_COMPARE_EQ,
123                 argv_type: ARGV_TYPE_FLASHSIZE
124         },{
125                 name: "CPU_COMMAND",
126                 script_opcode: SCRIPT_OPCODE_CPU_COMMAND,
127                 permittion: PERMITTION_ROM_PROGRAM,
128                 argc:3, compare: SYNTAX_COMPARE_EQ,
129                 argv_type: ARGV_TYPE_ADDRESS_COMMAND
130         },{
131                 name: "PPU_COMMAND",
132                 script_opcode: SCRIPT_OPCODE_PPU_COMMAND,
133                 permittion: PERMITTION_ROM_PROGRAM,
134                 argc:3, compare: SYNTAX_COMPARE_EQ,
135                 argv_type: ARGV_TYPE_ADDRESS_COMMAND
136         },{
137                 name: "DUMP_START",
138                 script_opcode: SCRIPT_OPCODE_DUMP_START,
139                 permittion: PERMITTION_ALL,
140                 argc: 0, compare: SYNTAX_COMPARE_EQ,
141                 argv_type: ARGV_TYPE_NULL
142         },{
143                 name: "CPU_READ",
144                 script_opcode: SCRIPT_OPCODE_CPU_READ,
145                 permittion: PERMITTION_ROM_DUMP,
146                 argc: 2, compare: SYNTAX_COMPARE_EQ,
147                 argv_type: ARGV_TYPE_ADDRESS_LENGTH
148         },{
149                 name: "CPU_WRITE",
150                 script_opcode: SCRIPT_OPCODE_CPU_WRITE,
151                 permittion: PERMITTION_ALL,
152                 argc: 2, compare: SYNTAX_COMPARE_GT,
153                 argv_type: ARGV_TYPE_ADDRESS_EXPRESSION
154         },{
155                 name: OPSTR_CPU_RAMRW,
156                 script_opcode: SCRIPT_OPCODE_CPU_RAMRW,
157                 permittion: PERMITTION_RAM_READ | PERMITTION_RAM_WRITE,
158                 argc: 2, compare: SYNTAX_COMPARE_EQ,
159                 argv_type: ARGV_TYPE_ADDRESS_LENGTH
160         },{
161                 name: "CPU_PROGRAM",
162                 script_opcode: SCRIPT_OPCODE_CPU_PROGRAM,
163                 permittion: PERMITTION_ROM_PROGRAM,
164                 argc: 2, compare: SYNTAX_COMPARE_EQ,
165                 argv_type: ARGV_TYPE_ADDRESS_LENGTH
166         },{
167                 name: "PPU_RAMFIND",
168                 script_opcode: SCRIPT_OPCODE_PPU_RAMFIND,
169                 permittion: PERMITTION_ROM_DUMP,
170                 argc: 0, compare: SYNTAX_COMPARE_EQ,
171                 argv_type: ARGV_TYPE_NULL
172         },{
173                 name: "PPU_SRAMTEST",
174                 script_opcode: SCRIPT_OPCODE_PPU_SRAMTEST,
175                 permittion: PERMITTION_ROM_DUMP,
176                 argc: 2, compare: SYNTAX_COMPARE_EQ,
177                 argv_type: ARGV_TYPE_ADDRESS_LENGTH
178         },{
179                 name: "PPU_READ",
180                 script_opcode: SCRIPT_OPCODE_PPU_READ,
181                 permittion: PERMITTION_ROM_DUMP,
182                 argc: 2, compare: SYNTAX_COMPARE_EQ,
183                 argv_type: ARGV_TYPE_ADDRESS_LENGTH
184         },
185 #if DEBUG==1
186         {
187                 name: "PPU_WRITE",
188                 script_opcode: SCRIPT_OPCODE_PPU_WRITE,
189                 permittion: PERMITTION_ROM_DUMP | PERMITTION_ROM_PROGRAM,
190                 argc: 2, compare: SYNTAX_COMPARE_GT,
191                 argv_type: ARGV_TYPE_ADDRESS_EXPRESSION
192         },
193 #endif
194         {
195                 name: "PPU_PROGRAM",
196                 script_opcode: SCRIPT_OPCODE_PPU_PROGRAM,
197                 permittion: PERMITTION_ROM_PROGRAM,
198                 argc: 2, compare: SYNTAX_COMPARE_EQ,
199                 argv_type: ARGV_TYPE_ADDRESS_LENGTH,
200         },
201         {
202                 name: "STEP_START",
203                 script_opcode: SCRIPT_OPCODE_STEP_START,
204                 permittion: PERMITTION_ALL,
205                 argc: 4, compare: SYNTAX_COMPARE_EQ,
206                 argv_type: ARGV_TYPE_STEP_START
207         },{
208                 name: "STEP_END",
209                 script_opcode: SCRIPT_OPCODE_STEP_END,
210                 permittion: PERMITTION_ALL,
211                 argc: 0, compare: SYNTAX_COMPARE_EQ,
212                 argv_type: ARGV_TYPE_NULL
213         },{
214                 name: "DUMP_END",
215                 script_opcode: SCRIPT_OPCODE_DUMP_END,
216                 permittion: PERMITTION_ALL,
217                 argc: 0, compare: SYNTAX_COMPARE_EQ,
218                 argv_type: ARGV_TYPE_NULL
219         }
220 };
221
222 static const char *STR_TRANSTYPE[] = {
223         "EMPTY", "TOP", "BOTTOM", "FULL", NULL
224 };
225
226 static const char *STR_CONSTANTNAME[] = {
227         "C_START", "C_END",
228         "P_START", "P_END", NULL
229 };