1 //included from script.c only
11 SYNTAX_ARGVTYPE_VALUE,
13 SYNTAX_ARGVTYPE_EXPRESSION,
14 SYNTAX_ARGVTYPE_VARIABLE,
15 SYNTAX_ARGVTYPE_CONSTANT,
16 SYNTAX_ARGVTYPE_TRANSTYPE
23 SYNTAX_ARGV_TYPE_NUM = 4
28 SCRIPT_OPCODE_CPU_ROMSIZE,
29 SCRIPT_OPCODE_CPU_RAMSIZE,
30 SCRIPT_OPCODE_CPU_FLASHSIZE,
31 SCRIPT_OPCODE_PPU_ROMSIZE,
32 SCRIPT_OPCODE_PPU_FLASHSIZE,
33 SCRIPT_OPCODE_DUMP_START,
34 SCRIPT_OPCODE_CPU_COMMAND,
35 SCRIPT_OPCODE_CPU_READ,
36 SCRIPT_OPCODE_CPU_WRITE,
37 SCRIPT_OPCODE_CPU_RAMRW,
38 SCRIPT_OPCODE_CPU_PROGRAM,
39 SCRIPT_OPCODE_PPU_COMMAND,
40 SCRIPT_OPCODE_PPU_RAMFIND,
41 SCRIPT_OPCODE_PPU_SRAMTEST,
42 SCRIPT_OPCODE_PPU_READ,
43 SCRIPT_OPCODE_PPU_WRITE,
44 SCRIPT_OPCODE_PPU_PROGRAM,
45 SCRIPT_OPCODE_STEP_START,
46 SCRIPT_OPCODE_STEP_END,
47 // SCRIPT_OPCODE_WAIT,
48 SCRIPT_OPCODE_DUMP_END,
49 SCRIPT_OPCODE_COMMENT,
53 PERMITTION_ROM_DUMP = 1 << MODE_ROM_DUMP,
54 PERMITTION_RAM_READ = 1 << MODE_RAM_READ,
55 PERMITTION_RAM_WRITE = 1 << MODE_RAM_WRITE,
56 PERMITTION_ROM_PROGRAM = 1 << MODE_ROM_PROGRAM,
57 PERMITTION_ALL = 0xffff
59 static const char OPSTR_CPU_ROMSIZE[] = "CPU_ROMSIZE";
60 static const char OPSTR_CPU_RAMSIZE[] = "CPU_RAMSIZE";
61 static const char OPSTR_CPU_FLASHSIZE[] = "CPU_FLASHSIZE";
62 static const char OPSTR_PPU_ROMSIZE[] = "PPU_ROMSIZE";
63 static const char OPSTR_PPU_FLASHSIZE[] = "PPU_FLASHSIZE";
64 static const char OPSTR_CPU_RAMRW[] = "CPU_RAMRW";
65 static const int ARGV_TYPE_VALUE_ONLY[SYNTAX_ARGV_TYPE_NUM] = {
66 SYNTAX_ARGVTYPE_VALUE, SYNTAX_ARGVTYPE_NULL,
67 SYNTAX_ARGVTYPE_NULL, SYNTAX_ARGVTYPE_NULL
69 static const int ARGV_TYPE_HV[SYNTAX_ARGV_TYPE_NUM] = {
70 SYNTAX_ARGVTYPE_HV, SYNTAX_ARGVTYPE_NULL,
71 SYNTAX_ARGVTYPE_NULL, SYNTAX_ARGVTYPE_NULL
73 static const int ARGV_TYPE_NULL[SYNTAX_ARGV_TYPE_NUM] = {
74 SYNTAX_ARGVTYPE_NULL, SYNTAX_ARGVTYPE_NULL,
75 SYNTAX_ARGVTYPE_NULL, SYNTAX_ARGVTYPE_NULL
77 static const int ARGV_TYPE_ADDRESS_EXPRESSION[SYNTAX_ARGV_TYPE_NUM] = {
78 SYNTAX_ARGVTYPE_VALUE,
79 SYNTAX_ARGVTYPE_EXPRESSION, SYNTAX_ARGVTYPE_EXPRESSION, SYNTAX_ARGVTYPE_EXPRESSION
81 static const int ARGV_TYPE_ADDRESS_LENGTH[SYNTAX_ARGV_TYPE_NUM] = {
82 SYNTAX_ARGVTYPE_VALUE, SYNTAX_ARGVTYPE_VALUE,
83 SYNTAX_ARGVTYPE_NULL, SYNTAX_ARGVTYPE_NULL
85 static const int ARGV_TYPE_STEP_START[SYNTAX_ARGV_TYPE_NUM] = {
86 SYNTAX_ARGVTYPE_VARIABLE, SYNTAX_ARGVTYPE_CONSTANT,
87 SYNTAX_ARGVTYPE_CONSTANT, SYNTAX_ARGVTYPE_VALUE
89 static const int ARGV_TYPE_ADDRESS_COMMAND[SYNTAX_ARGV_TYPE_NUM] = {
90 SYNTAX_ARGVTYPE_VALUE, SYNTAX_ARGVTYPE_VALUE,
91 SYNTAX_ARGVTYPE_VALUE, SYNTAX_ARGVTYPE_NULL
93 static const int ARGV_TYPE_FLASHSIZE[SYNTAX_ARGV_TYPE_NUM] = {
94 SYNTAX_ARGVTYPE_VALUE, SYNTAX_ARGVTYPE_TRANSTYPE,
95 SYNTAX_ARGVTYPE_VALUE, SYNTAX_ARGVTYPE_VALUE
97 static const struct script_syntax SCRIPT_SYNTAX[] = {
100 script_opcode: SCRIPT_OPCODE_MAPPER,
101 permittion: PERMITTION_ROM_DUMP | PERMITTION_ROM_PROGRAM,
102 argc: 1, compare: SYNTAX_COMPARE_EQ,
103 argv_type: ARGV_TYPE_VALUE_ONLY
106 script_opcode: SCRIPT_OPCODE_MIRROR,
107 permittion: PERMITTION_ROM_DUMP,
108 argc: 1, compare: SYNTAX_COMPARE_EQ,
109 argv_type: ARGV_TYPE_HV
111 name: OPSTR_CPU_ROMSIZE,
112 script_opcode: SCRIPT_OPCODE_CPU_ROMSIZE,
113 permittion: PERMITTION_ROM_DUMP,
114 argc: 1, compare: SYNTAX_COMPARE_EQ,
115 argv_type: ARGV_TYPE_VALUE_ONLY
117 name: OPSTR_CPU_RAMSIZE,
118 script_opcode: SCRIPT_OPCODE_CPU_RAMSIZE,
119 permittion: PERMITTION_RAM_READ | PERMITTION_RAM_WRITE,
120 argc: 1, compare: SYNTAX_COMPARE_EQ,
121 argv_type: ARGV_TYPE_VALUE_ONLY
123 name: OPSTR_CPU_FLASHSIZE,
124 script_opcode: SCRIPT_OPCODE_CPU_FLASHSIZE,
125 permittion: PERMITTION_ROM_PROGRAM,
126 argc: 4, compare: SYNTAX_COMPARE_EQ,
127 argv_type: ARGV_TYPE_FLASHSIZE
129 name: OPSTR_PPU_ROMSIZE,
130 script_opcode: SCRIPT_OPCODE_PPU_ROMSIZE,
131 permittion: PERMITTION_ROM_DUMP,
132 argc: 1, compare: SYNTAX_COMPARE_EQ,
133 argv_type: ARGV_TYPE_VALUE_ONLY
135 name: OPSTR_PPU_FLASHSIZE,
136 script_opcode: SCRIPT_OPCODE_PPU_FLASHSIZE,
137 permittion: PERMITTION_ROM_PROGRAM,
138 argc: 4, compare: SYNTAX_COMPARE_EQ,
139 argv_type: ARGV_TYPE_FLASHSIZE
142 script_opcode: SCRIPT_OPCODE_CPU_COMMAND,
143 permittion: PERMITTION_ROM_PROGRAM,
144 argc:3, compare: SYNTAX_COMPARE_EQ,
145 argv_type: ARGV_TYPE_ADDRESS_COMMAND
148 script_opcode: SCRIPT_OPCODE_PPU_COMMAND,
149 permittion: PERMITTION_ROM_PROGRAM,
150 argc:3, compare: SYNTAX_COMPARE_EQ,
151 argv_type: ARGV_TYPE_ADDRESS_COMMAND
154 script_opcode: SCRIPT_OPCODE_DUMP_START,
155 permittion: PERMITTION_ALL,
156 argc: 0, compare: SYNTAX_COMPARE_EQ,
157 argv_type: ARGV_TYPE_NULL
160 script_opcode: SCRIPT_OPCODE_CPU_READ,
161 permittion: PERMITTION_ROM_DUMP,
162 argc: 2, compare: SYNTAX_COMPARE_EQ,
163 argv_type: ARGV_TYPE_ADDRESS_LENGTH
166 script_opcode: SCRIPT_OPCODE_CPU_WRITE,
167 permittion: PERMITTION_ALL,
168 argc: 2, compare: SYNTAX_COMPARE_GT,
169 argv_type: ARGV_TYPE_ADDRESS_EXPRESSION
171 name: OPSTR_CPU_RAMRW,
172 script_opcode: SCRIPT_OPCODE_CPU_RAMRW,
173 permittion: PERMITTION_RAM_READ | PERMITTION_RAM_WRITE,
174 argc: 2, compare: SYNTAX_COMPARE_EQ,
175 argv_type: ARGV_TYPE_ADDRESS_LENGTH
178 script_opcode: SCRIPT_OPCODE_CPU_PROGRAM,
179 permittion: PERMITTION_ROM_PROGRAM,
180 argc: 2, compare: SYNTAX_COMPARE_EQ,
181 argv_type: ARGV_TYPE_ADDRESS_LENGTH
184 script_opcode: SCRIPT_OPCODE_PPU_RAMFIND,
185 permittion: PERMITTION_ROM_DUMP,
186 argc: 0, compare: SYNTAX_COMPARE_EQ,
187 argv_type: ARGV_TYPE_NULL
189 name: "PPU_SRAMTEST",
190 script_opcode: SCRIPT_OPCODE_PPU_SRAMTEST,
191 permittion: PERMITTION_ROM_DUMP,
192 argc: 2, compare: SYNTAX_COMPARE_EQ,
193 argv_type: ARGV_TYPE_ADDRESS_LENGTH
196 script_opcode: SCRIPT_OPCODE_PPU_READ,
197 permittion: PERMITTION_ROM_DUMP,
198 argc: 2, compare: SYNTAX_COMPARE_EQ,
199 argv_type: ARGV_TYPE_ADDRESS_LENGTH
204 script_opcode: SCRIPT_OPCODE_PPU_WRITE,
205 permittion: PERMITTION_ROM_DUMP | PERMITTION_ROM_PROGRAM,
206 argc: 2, compare: SYNTAX_COMPARE_GT,
207 argv_type: ARGV_TYPE_ADDRESS_EXPRESSION
212 script_opcode: SCRIPT_OPCODE_PPU_PROGRAM,
213 permittion: PERMITTION_ROM_PROGRAM,
214 argc: 2, compare: SYNTAX_COMPARE_EQ,
215 argv_type: ARGV_TYPE_ADDRESS_LENGTH,
219 script_opcode: SCRIPT_OPCODE_STEP_START,
220 permittion: PERMITTION_ALL,
221 argc: 4, compare: SYNTAX_COMPARE_EQ,
222 argv_type: ARGV_TYPE_STEP_START
225 script_opcode: SCRIPT_OPCODE_STEP_END,
226 permittion: PERMITTION_ALL,
227 argc: 0, compare: SYNTAX_COMPARE_EQ,
228 argv_type: ARGV_TYPE_NULL
233 script_opcode: SCRIPT_OPCODE_WAIT,
234 permittion: PERMITTION_ROM_PROGRAM,
235 argc: 1, compare: SYNTAX_COMPARE_EQ,
236 argv_type: ARGV_TYPE_VALUE_ONLY
241 script_opcode: SCRIPT_OPCODE_DUMP_END,
242 permittion: PERMITTION_ALL,
243 argc: 0, compare: SYNTAX_COMPARE_EQ,
244 argv_type: ARGV_TYPE_NULL
248 static const char *STR_TRANSTYPE[] = {
249 "EMPTY", "TOP", "BOTTOM", "FULL", NULL
252 static const char *STR_CONSTANTNAME[] = {
254 "P_START", "P_END", NULL