1 //included from syntax.c only
6 SYNTAX_ARGVTYPE_EXPRESSION,
7 SYNTAX_ARGVTYPE_VARIABLE,
8 SYNTAX_ARGVTYPE_CONSTANT,
9 SYNTAX_ARGVTYPE_TRANSTYPE
16 SYNTAX_ARGV_TYPE_NUM = 4
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
27 enum script_opcode script_opcode;
28 enum syntax_permittion permittion;
30 enum syntax_compare compare;
31 const enum syntax_argvtype *argv_type;
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";
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
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
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
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
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
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
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
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
81 static const struct script_syntax SCRIPT_SYNTAX[] = {
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
90 script_opcode: SCRIPT_OPCODE_MIRROR,
91 permittion: PERMITTION_ROM_DUMP,
92 argc: 1, compare: SYNTAX_COMPARE_EQ,
93 argv_type: ARGV_TYPE_HV
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
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
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
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
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
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
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
138 script_opcode: SCRIPT_OPCODE_DUMP_START,
139 permittion: PERMITTION_ALL,
140 argc: 0, compare: SYNTAX_COMPARE_EQ,
141 argv_type: ARGV_TYPE_NULL
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
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
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
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
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
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
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
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
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,
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
209 script_opcode: SCRIPT_OPCODE_STEP_END,
210 permittion: PERMITTION_ALL,
211 argc: 0, compare: SYNTAX_COMPARE_EQ,
212 argv_type: ARGV_TYPE_NULL
215 script_opcode: SCRIPT_OPCODE_DUMP_END,
216 permittion: PERMITTION_ALL,
217 argc: 0, compare: SYNTAX_COMPARE_EQ,
218 argv_type: ARGV_TYPE_NULL
222 static const char *STR_TRANSTYPE[] = {
223 "EMPTY", "TOP", "BOTTOM", "FULL", NULL
226 static const char *STR_CONSTANTNAME[] = {
228 "P_START", "P_END", NULL