1 //included from script.c only
11 SYNTAX_ARGVTYPE_VALUE,
13 SYNTAX_ARGVTYPE_EXPRESSION,
14 SYNTAX_ARGVTYPE_VARIABLE
21 SYNTAX_ARGV_TYPE_NUM = 4
26 SCRIPT_OPCODE_CPU_ROMSIZE,
27 SCRIPT_OPCODE_CPU_RAMSIZE,
28 SCRIPT_OPCODE_CPU_COMMAND,
29 SCRIPT_OPCODE_PPU_COMMAND,
30 SCRIPT_OPCODE_PPU_ROMSIZE,
31 SCRIPT_OPCODE_DUMP_START,
32 SCRIPT_OPCODE_CPU_READ,
33 SCRIPT_OPCODE_CPU_WRITE,
34 SCRIPT_OPCODE_CPU_RAMRW,
35 SCRIPT_OPCODE_CPU_PROGRAM,
36 SCRIPT_OPCODE_PPU_RAMFIND,
37 SCRIPT_OPCODE_PPU_SRAMTEST,
38 SCRIPT_OPCODE_PPU_READ,
39 SCRIPT_OPCODE_PPU_WRITE,
40 SCRIPT_OPCODE_PPU_PROGRAM,
41 SCRIPT_OPCODE_STEP_START,
42 SCRIPT_OPCODE_STEP_END,
43 // SCRIPT_OPCODE_WAIT,
44 SCRIPT_OPCODE_DUMP_END,
45 SCRIPT_OPCODE_COMMENT,
49 PERMITTION_ROM_DUMP = 1 << MODE_ROM_DUMP,
50 PERMITTION_RAM_READ = 1 << MODE_RAM_READ,
51 PERMITTION_RAM_WRITE = 1 << MODE_RAM_WRITE,
52 PERMITTION_ROM_PROGRAM = 1 << MODE_ROM_PROGRAM,
53 PERMITTION_ALL = 0xffff
55 static const char OPSTR_CPU_ROMSIZE[] = "CPU_ROMSIZE";
56 static const char OPSTR_CPU_RAMSIZE[] = "CPU_RAMSIZE";
57 static const char OPSTR_PPU_ROMSIZE[] = "PPU_ROMSIZE";
58 static const char OPSTR_CPU_RAMRW[] = "CPU_RAMRW";
59 static const int ARGV_TYPE_VALUE_ONLY[SYNTAX_ARGV_TYPE_NUM] = {
60 SYNTAX_ARGVTYPE_VALUE, SYNTAX_ARGVTYPE_NULL,
61 SYNTAX_ARGVTYPE_NULL, SYNTAX_ARGVTYPE_NULL
63 static const int ARGV_TYPE_HV[SYNTAX_ARGV_TYPE_NUM] = {
64 SYNTAX_ARGVTYPE_HV, SYNTAX_ARGVTYPE_NULL,
65 SYNTAX_ARGVTYPE_NULL, SYNTAX_ARGVTYPE_NULL
67 static const int ARGV_TYPE_NULL[SYNTAX_ARGV_TYPE_NUM] = {
68 SYNTAX_ARGVTYPE_NULL, SYNTAX_ARGVTYPE_NULL,
69 SYNTAX_ARGVTYPE_NULL, SYNTAX_ARGVTYPE_NULL
71 static const int ARGV_TYPE_ADDRESS_EXPRESSION[SYNTAX_ARGV_TYPE_NUM] = {
72 SYNTAX_ARGVTYPE_VALUE,
73 SYNTAX_ARGVTYPE_EXPRESSION, SYNTAX_ARGVTYPE_EXPRESSION, SYNTAX_ARGVTYPE_EXPRESSION
75 static const int ARGV_TYPE_ADDRESS_LENGTH[SYNTAX_ARGV_TYPE_NUM] = {
76 SYNTAX_ARGVTYPE_VALUE, SYNTAX_ARGVTYPE_VALUE,
77 SYNTAX_ARGVTYPE_NULL, SYNTAX_ARGVTYPE_NULL
79 static const int ARGV_TYPE_STEP_START[SYNTAX_ARGV_TYPE_NUM] = {
80 SYNTAX_ARGVTYPE_VARIABLE, SYNTAX_ARGVTYPE_VALUE,
81 SYNTAX_ARGVTYPE_VALUE, SYNTAX_ARGVTYPE_VALUE
83 static const int ARGV_TYPE_ADDRESS_COMMAND[SYNTAX_ARGV_TYPE_NUM] = {
84 SYNTAX_ARGVTYPE_VALUE, SYNTAX_ARGVTYPE_VALUE,
85 SYNTAX_ARGVTYPE_VALUE, SYNTAX_ARGVTYPE_NULL
87 static const struct script_syntax SCRIPT_SYNTAX[] = {
90 script_opcode: SCRIPT_OPCODE_MAPPER,
91 permittion: PERMITTION_ROM_DUMP | PERMITTION_ROM_PROGRAM,
92 argc: 1, compare: SYNTAX_COMPARE_EQ,
93 argv_type: ARGV_TYPE_VALUE_ONLY
96 script_opcode: SCRIPT_OPCODE_MIRROR,
97 permittion: PERMITTION_ROM_DUMP,
98 argc: 1, compare: SYNTAX_COMPARE_EQ,
99 argv_type: ARGV_TYPE_HV
101 name: OPSTR_CPU_ROMSIZE,
102 script_opcode: SCRIPT_OPCODE_CPU_ROMSIZE,
103 permittion: PERMITTION_ROM_DUMP | PERMITTION_ROM_PROGRAM,
104 argc: 1, compare: SYNTAX_COMPARE_EQ,
105 argv_type: ARGV_TYPE_VALUE_ONLY
107 name: OPSTR_CPU_RAMSIZE,
108 script_opcode: SCRIPT_OPCODE_CPU_RAMSIZE,
109 permittion: PERMITTION_RAM_READ | PERMITTION_RAM_WRITE,
110 argc: 1, compare: SYNTAX_COMPARE_EQ,
111 argv_type: ARGV_TYPE_VALUE_ONLY
113 name: OPSTR_PPU_ROMSIZE,
114 script_opcode: SCRIPT_OPCODE_PPU_ROMSIZE,
115 permittion: PERMITTION_ROM_DUMP | PERMITTION_ROM_PROGRAM,
116 argc: 1, compare: SYNTAX_COMPARE_EQ,
117 argv_type: ARGV_TYPE_VALUE_ONLY
120 script_opcode: SCRIPT_OPCODE_CPU_COMMAND,
121 permittion: PERMITTION_ROM_PROGRAM,
122 argc:3, compare: SYNTAX_COMPARE_EQ,
123 argv_type: ARGV_TYPE_ADDRESS_COMMAND
126 script_opcode: SCRIPT_OPCODE_PPU_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_DUMP_START,
133 permittion: PERMITTION_ALL,
134 argc: 0, compare: SYNTAX_COMPARE_EQ,
135 argv_type: ARGV_TYPE_NULL
138 script_opcode: SCRIPT_OPCODE_CPU_READ,
139 permittion: PERMITTION_ROM_DUMP,
140 argc: 2, compare: SYNTAX_COMPARE_EQ,
141 argv_type: ARGV_TYPE_ADDRESS_LENGTH
144 script_opcode: SCRIPT_OPCODE_CPU_WRITE,
145 permittion: PERMITTION_ALL,
146 argc: 2, compare: SYNTAX_COMPARE_GT,
147 argv_type: ARGV_TYPE_ADDRESS_EXPRESSION
149 name: OPSTR_CPU_RAMRW,
150 script_opcode: SCRIPT_OPCODE_CPU_RAMRW,
151 permittion: PERMITTION_RAM_READ | PERMITTION_RAM_WRITE,
152 argc: 2, compare: SYNTAX_COMPARE_EQ,
153 argv_type: ARGV_TYPE_ADDRESS_LENGTH
156 script_opcode: SCRIPT_OPCODE_CPU_PROGRAM,
157 permittion: PERMITTION_ROM_PROGRAM,
158 argc: 2, compare: SYNTAX_COMPARE_EQ,
159 argv_type: ARGV_TYPE_ADDRESS_LENGTH
160 },{ //version 0.5.3 ¤ÇÇѻߤ¹¤ë
162 script_opcode: SCRIPT_OPCODE_PPU_RAMFIND,
163 permittion: PERMITTION_ROM_DUMP,
164 argc: 0, compare: SYNTAX_COMPARE_EQ,
165 argv_type: ARGV_TYPE_NULL
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
217 script_opcode: SCRIPT_OPCODE_WAIT,
218 permittion: PERMITTION_ROM_PROGRAM,
219 argc: 1, compare: SYNTAX_COMPARE_EQ,
220 argv_type: ARGV_TYPE_VALUE_ONLY
225 script_opcode: SCRIPT_OPCODE_DUMP_END,
226 permittion: PERMITTION_ALL,
227 argc: 0, compare: SYNTAX_COMPARE_EQ,
228 argv_type: ARGV_TYPE_NULL