OSDN Git Service

opcode名変更, CPU_COMMAND_xxxx -> CPU_COMMAND, ppu も同様
[unagi/old-svn-converted.git] / client / trunk / syntax.h
1 //included from script.c only
2 struct script_syntax{
3         const char *name;
4         int script_opcode;
5         int permittion;
6         int argc, compare;
7         const int *argv_type;
8 };
9 enum{
10         SYNTAX_ARGVTYPE_NULL,
11         SYNTAX_ARGVTYPE_VALUE,
12         SYNTAX_ARGVTYPE_HV,
13         SYNTAX_ARGVTYPE_EXPRESSION,
14         SYNTAX_ARGVTYPE_VARIABLE
15 };
16 enum{
17         SYNTAX_COMPARE_EQ,
18         SYNTAX_COMPARE_GT
19 };
20 enum{
21         SYNTAX_ARGV_TYPE_NUM = 4
22 };
23 enum{
24         SCRIPT_OPCODE_MAPPER,
25         SCRIPT_OPCODE_MIRROR,
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,
46         SCRIPT_OPCODE_NUM
47 };
48 enum{
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
54 };
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
62 };
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
66 };
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
70 };
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
74 };
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
78 };
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
82 };
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
86 };
87 static const struct script_syntax SCRIPT_SYNTAX[] = {
88         {
89                 name: "MAPPER",
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
94         },{
95                 name: "MIRROR",
96                 script_opcode: SCRIPT_OPCODE_MIRROR,
97                 permittion: PERMITTION_ROM_DUMP,
98                 argc: 1, compare: SYNTAX_COMPARE_EQ,
99                 argv_type: ARGV_TYPE_HV
100         },{
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
106         },{
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
112         },{
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
118         },{
119                 name: "CPU_COMMAND",
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
124         },{
125                 name: "PPU_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
130         },{
131                 name: "DUMP_START",
132                 script_opcode: SCRIPT_OPCODE_DUMP_START,
133                 permittion: PERMITTION_ALL,
134                 argc: 0, compare: SYNTAX_COMPARE_EQ,
135                 argv_type: ARGV_TYPE_NULL
136         },{
137                 name: "CPU_READ",
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
142         },{
143                 name: "CPU_WRITE",
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
148         },{
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
154         },{
155                 name: "CPU_PROGRAM",
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 ¤ÇÇѻߤ¹¤ë
161                 name: "PPU_RAMTEST",
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
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 #if 0
215         {
216                 name: "WAIT",
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
221         },
222 #endif
223         {
224                 name: "DUMP_END",
225                 script_opcode: SCRIPT_OPCODE_DUMP_END,
226                 permittion: PERMITTION_ALL,
227                 argc: 0, compare: SYNTAX_COMPARE_EQ,
228                 argv_type: ARGV_TYPE_NULL
229         }
230 };
231