1 /******************************************************************************
2 *
3 * Copyright (C) 2006, The Gentee Group. All rights reserved.
4 * This file is part of the Gentee open source project <http://www.gentee.com>.
5 *
6 * THIS FILE IS PROVIDED UNDER THE TERMS OF THE GENTEE LICENSE ("AGREEMENT").
7 * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE CONSTITUTES RECIPIENTS
8 * ACCEPTANCE OF THE AGREEMENT.
9 *
10 * cmdlist_h 21.04.2008 0.0.A.
11 *
12 * Author: Generated with 'cmdlist' program
13 *
14 * Summary: This file contains a list of the embedded byte-code commands.
15 *
16 ******************************************************************************/
17
18 #ifndef _CMDLIST_
19 #define _CMDLIST_
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif // __cplusplus
24
25 #include "../common/types.h"
26
27 #define CMDCOUNT 235
28 #define STACK_COUNT 217
29
30 enum {
31 CNone, // 0x0, 0 Error command
32 TInt, // 0x1, 1 int type
33 TUint, // 0x2, 2 uint type
34 TByte, // 0x3, 3 byte type
35 TUbyte, // 0x4, 4 ubyte type
36 TShort, // 0x5, 5 short type
37 TUshort, // 0x6, 6 ushort type
38 TFloat, // 0x7, 7 float type
39 TDouble, // 0x8, 8 double type
40 TLong, // 0x9, 9 long type
41 TUlong, // 0xA, 10 ulong type
42 TReserved, // 0xB, 11 reserved type
43 TBuf, // 0xC, 12 buf type
44 TStr, // 0xD, 13 str type
45 TArr, // 0xE, 14 arr type
46 TCollection, // 0xF, 15 collection type
47 TAny, // 0x10, 16 any type
48 TFordata, // 0x11, 17 foreach type
49 CNop, // 0x12, 18 The command does nothing
50 CGoto, // 0x13, 19 The unconditional jump.
51 CGotonocls, // 0x14, 20 The unconditional jump without clearing stack.
52 CIfze, // 0x15, 21 The conditional jump
53 CIfznocls, // 0x16, 22 The conditional jump without clearing stack
54 CIfnze, // 0x17, 23 The conditional jump
55 CIfnznocls, // 0x18, 24 The conditional jump without clearing stack.
56 CByload, // 0x19, 25 The next ubyte push into stack. GE only
57 CShload, // 0x1A, 26 The next ushort push into stack. GE only
58 CDwload, // 0x1B, 27 The next uint push into stack.
59 CCmdload, // 0x1C, 28 The next ID push into stack.
60 CResload, // 0x1D, 29 The next ID (resource) push into stack.
61 CQwload, // 0x1E, 30 The next ulong push into stack.
62 CDwsload, // 0x1F, 31 The next uints ( cmd 1 ) ( cmd 2 ) push into the stack
63 CVarload, // 0x20, 32 Load the value of parameter or variable with number ( cmd 1)
64 CVarptrload, // 0x21, 33 Load the pointer to value of parameter or variable with number ( cmd 1)
65 CDatasize, // 0x22, 34 Load the pointer to the next data and the size
66 CLoglongtrue, // 0x23, 35 Return 1 if ulong in stack is not zero
67 CLognot, // 0x24, 36 Logical not
68 CLoglongnot, // 0x25, 37 Logical NOT for long ulong
69 CDup, // 0x26, 38 Duplicate top value
70 CDuplong, // 0x27, 39 Duplicate two top value
71 CTop, // 0x28, 40 Return the pointer to top
72 CPop, // 0x29, 41 Delete the top value
73 CGetUB, // 0x2A, 42 * ( pubyte )
74 CGetB, // 0x2B, 43 * ( pbyte )
75 CGetUS, // 0x2C, 44 * ( pushort )
76 CGetS, // 0x2D, 45 * ( pshort )
77 CGetI, // 0x2E, 46 * ( puint && pint && float )
78 CGetL, // 0x2F, 47 * ( pulong && plong && double )
79 CSetUB, // 0x30, 48 * ( pubyte ) =
80 CSetB, // 0x31, 49 * ( pbyte ) =
81 CSetUS, // 0x32, 50 * ( pushort ) =
82 CSetS, // 0x33, 51 * ( pshort ) =
83 CSetI, // 0x34, 52 * ( puint && pint && float ) =
84 CSetL, // 0x35, 53 * ( pulong && plong && double ) =
85 CAddUIUI, // 0x36, 54 +
86 CSubUIUI, // 0x37, 55 -
87 CMulUIUI, // 0x38, 56 *
88 CDivUIUI, // 0x39, 57 /
89 CModUIUI, // 0x3A, 58 %
90 CAndUIUI, // 0x3B, 59 &
91 COrUIUI, // 0x3C, 60 |
92 CXorUIUI, // 0x3D, 61 ^
93 CLeftUIUI, // 0x3E, 62 <<
94 CRightUIUI, // 0x3F, 63 >>
95 CLessUIUI, // 0x40, 64 <
96 CGreaterUIUI, // 0x41, 65 >
97 CEqUIUI, // 0x42, 66 ==
98 CNotUI, // 0x43, 67 ~
99 CIncLeftUI, // 0x44, 68 ++i
100 CIncRightUI, // 0x45, 69 i++
101 CDecLeftUI, // 0x46, 70 --i
102 CDecRightUI, // 0x47, 71 i--
103 CAddUI, // 0x48, 72 +=
104 CSubUI, // 0x49, 73 -=
105 CMulUI, // 0x4A, 74 *=
106 CDivUI, // 0x4B, 75 /=
107 CModUI, // 0x4C, 76 %=
108 CAndUI, // 0x4D, 77 &=
109 COrUI, // 0x4E, 78 |=
110 CXorUI, // 0x4F, 79 ^=
111 CLeftUI, // 0x50, 80 <<=
112 CRightUI, // 0x51, 81 >>=
113 CVarsInit, // 0x52, 82 Initialize variables in block cmd1
114 CGetText, // 0x53, 83 Get current output of text function
115 CSetText, // 0x54, 84 Print string to current output of text function
116 CPtrglobal, // 0x55, 85 Get to the global variable
117 CSubcall, // 0x56, 86 Call a subfunc cmd 1 - goto
118 CSubret, // 0x57, 87 The number of returned uint cmd 1
119 CSubpar, // 0x58, 88 Parameters of subfunc. cmd 1 - Set block
120 CSubreturn, // 0x59, 89 Return from a subfunc
121 CCmdcall, // 0x5A, 90 Call a funcion
122 CCallstd, // 0x5B, 91 Call a stdcall or cdecl funcion
123 CReturn, // 0x5C, 92 Return from the function.
124 CDbgTrace, // 0x5D, 93 Debug line tracing
125 CDbgFunc, // 0x5E, 94 Debug func entering
126 CMulII, // 0x5F, 95 *
127 CDivII, // 0x60, 96 /
128 CModII, // 0x61, 97 %
129 CLeftII, // 0x62, 98 <<
130 CRightII, // 0x63, 99 >>
131 CSignI, // 0x64, 100 change sign
132 CLessII, // 0x65, 101 <
133 CGreaterII, // 0x66, 102 >
134 CMulI, // 0x67, 103 *=
135 CDivI, // 0x68, 104 /=
136 CModI, // 0x69, 105 %=
137 CLeftI, // 0x6A, 106 <<=
138 CRightI, // 0x6B, 107 >>=
139 CMulB, // 0x6C, 108 *=
140 CDivB, // 0x6D, 109 /=
141 CModB, // 0x6E, 110 %=
142 CLeftB, // 0x6F, 111 <<=
143 CRightB, // 0x70, 112 >>=
144 CMulS, // 0x71, 113 *=
145 CDivS, // 0x72, 114 /=
146 CModS, // 0x73, 115 %=
147 CLeftS, // 0x74, 116 <<=
148 CRightS, // 0x75, 117 >>=
149 Cd2f, // 0x76, 118 double 2 float
150 Cd2i, // 0x77, 119 double 2 int
151 Cd2l, // 0x78, 120 double 2 long
152 Cf2d, // 0x79, 121 float 2 double
153 Cf2i, // 0x7A, 122 float 2 int
154 Cf2l, // 0x7B, 123 float 2 long
155 Ci2d, // 0x7C, 124 int 2 double
156 Ci2f, // 0x7D, 125 int 2 float
157 Ci2l, // 0x7E, 126 int 2 long
158 Cl2d, // 0x7F, 127 long 2 double
159 Cl2f, // 0x80, 128 long 2 float
160 Cl2i, // 0x81, 129 long 2 int
161 Cui2d, // 0x82, 130 uint 2 double
162 Cui2f, // 0x83, 131 uint 2 float
163 Cui2l, // 0x84, 132 uint 2 long
164 CAddULUL, // 0x85, 133 +
165 CSubULUL, // 0x86, 134 -
166 CMulULUL, // 0x87, 135 *
167 CDivULUL, // 0x88, 136 /
168 CModULUL, // 0x89, 137 %
169 CAndULUL, // 0x8A, 138 &
170 COrULUL, // 0x8B, 139 |
171 CXorULUL, // 0x8C, 140 ^
172 CLeftULUL, // 0x8D, 141 <<
173 CRightULUL, // 0x8E, 142 >>
174 CLessULUL, // 0x8F, 143 <
175 CGreaterULUL, // 0x90, 144 >
176 CEqULUL, // 0x91, 145 ==
177 CNotUL, // 0x92, 146 ~
178 CIncLeftUL, // 0x93, 147 ++
179 CIncRightUL, // 0x94, 148 ++
180 CDecLeftUL, // 0x95, 149 --
181 CDecRightUL, // 0x96, 150 --
182 CAddUL, // 0x97, 151 +=
183 CSubUL, // 0x98, 152 -=
184 CMulUL, // 0x99, 153 *=
185 CDivUL, // 0x9A, 154 /=
186 CModUL, // 0x9B, 155 %
187 CAndUL, // 0x9C, 156 &=
188 COrUL, // 0x9D, 157 |=
189 CXorUL, // 0x9E, 158 &=
190 CLeftUL, // 0x9F, 159 <<=
191 CRightUL, // 0xA0, 160 >>=
192 CMulLL, // 0xA1, 161 *
193 CDivLL, // 0xA2, 162 /
194 CModLL, // 0xA3, 163 %
195 CLeftLL, // 0xA4, 164 <<=
196 CRightLL, // 0xA5, 165 >>=
197 CSignL, // 0xA6, 166 sign
198 CLessLL, // 0xA7, 167 <
199 CGreaterLL, // 0xA8, 168 >
200 CMulL, // 0xA9, 169 *=
201 CDivL, // 0xAA, 170 /=
202 CModL, // 0xAB, 171 %=
203 CLeftL, // 0xAC, 172 <<=
204 CRightL, // 0xAD, 173 >>=
205 CAddFF, // 0xAE, 174 +
206 CSubFF, // 0xAF, 175 -
207 CMulFF, // 0xB0, 176 *
208 CDivFF, // 0xB1, 177 /
209 CSignF, // 0xB2, 178 sign
210 CLessFF, // 0xB3, 179 <
211 CGreaterFF, // 0xB4, 180 >
212 CEqFF, // 0xB5, 181 ==
213 CIncLeftF, // 0xB6, 182 ++
214 CIncRightF, // 0xB7, 183 ++
215 CDecLeftF, // 0xB8, 184 --
216 CDecRightF, // 0xB9, 185 --
217 CAddF, // 0xBA, 186 +=
218 CSubF, // 0xBB, 187 -=
219 CMulF, // 0xBC, 188 *=
220 CDivF, // 0xBD, 189 /=
221 CAddDD, // 0xBE, 190 +
222 CSubDD, // 0xBF, 191 -
223 CMulDD, // 0xC0, 192 *
224 CDivDD, // 0xC1, 193 /
225 CSignD, // 0xC2, 194 sign
226 CLessDD, // 0xC3, 195 <
227 CGreaterDD, // 0xC4, 196 >
228 CEqDD, // 0xC5, 197 ==
229 CIncLeftD, // 0xC6, 198 ++
230 CIncRightD, // 0xC7, 199 ++
231 CDecLeftD, // 0xC8, 200 --
232 CDecRightD, // 0xC9, 201 --
233 CAddD, // 0xCA, 202 +=
234 CSubD, // 0xCB, 203 -=
235 CMulD, // 0xCC, 204 *=
236 CDivD, // 0xCD, 205 /=
237 CIncLeftUB, // 0xCE, 206 ++
238 CIncRightUB, // 0xCF, 207 ++
239 CDecLeftUB, // 0xD0, 208 --
240 CDecRightUB, // 0xD1, 209 --
241 CAddUB, // 0xD2, 210 +=
242 CSubUB, // 0xD3, 211 -=
243 CMulUB, // 0xD4, 212 *=
244 CDivUB, // 0xD5, 213 /=
245 CModUB, // 0xD6, 214 %=
246 CAndUB, // 0xD7, 215 &=
247 COrUB, // 0xD8, 216 |=
248 CXorUB, // 0xD9, 217 ^=
249 CLeftUB, // 0xDA, 218 <<=
250 CRightUB, // 0xDB, 219 >>=
251 CIncLeftUS, // 0xDC, 220 ++
252 CIncRightUS, // 0xDD, 221 ++
253 CDecLeftUS, // 0xDE, 222 --
254 CDecRightUS, // 0xDF, 223 --
255 CAddUS, // 0xE0, 224 +=
256 CSubUS, // 0xE1, 225 -=
257 CMulUS, // 0xE2, 226 *=
258 CDivUS, // 0xE3, 227 /=
259 CModUS, // 0xE4, 228 %=
260 CAndUS, // 0xE5, 229 &=
261 COrUS, // 0xE6, 230 |=
262 CXorUS, // 0xE7, 231 ^=
263 CLeftUS, // 0xE8, 232 <<=
264 CRightUS, // 0xE9, 233 >>=
265 CCollectadd, // 0xEA, 234 Run-time loading collection
266
267 };
268
269 extern const ubyte shifts[];
270 extern const ubyte embtypes[];
271
272 #ifdef __cplusplus
273 }
274 #endif // __cplusplus
275
276 #endif // _CMDLIST_