1 /*
2      PLIB - A Suite of Portable Game Libraries
3      Copyright (C) 1998,2002  Steve Baker
4 
5      This library is free software; you can redistribute it and/or
6      modify it under the terms of the GNU Library General Public
7      License as published by the Free Software Foundation; either
8      version 2 of the License, or (at your option) any later version.
9 
10      This library is distributed in the hope that it will be useful,
11      but WITHOUT ANY WARRANTY; without even the implied warranty of
12      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13      Library General Public License for more details.
14 
15      You should have received a copy of the GNU Library General Public
16      License along with this library; if not, write to the Free Software
17      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
18 
19      For further information visit http://plib.sourceforge.net
20 
21      $Id: pslOpcodes.h 1700 2002-09-22 18:25:16Z sjbaker $
22 */
23 
24 
25 /* Code Opcodes */
26 
27 #define OPCODE_BAD                   0x00
28 #define OPCODE_PUSH_INT_CONSTANT     0x01
29 #define OPCODE_PUSH_FLOAT_CONSTANT   0x02
30 #define OPCODE_PUSH_STRING_CONSTANT  0x03
31 #define OPCODE_CALL                  0x04
32 #define OPCODE_SUB                   0x05
33 #define OPCODE_ADD                   0x06
34 #define OPCODE_DIV                   0x07
35 #define OPCODE_MULT                  0x08
36 #define OPCODE_MOD                   0x09
37 #define OPCODE_NEG                   0x0A
38 #define OPCODE_NOT                   0x0B
39 #define OPCODE_TWIDDLE               0x0C
40 #define OPCODE_OROR                  0x0D
41 #define OPCODE_ANDAND                0x0E
42 #define OPCODE_SHIFTLEFT             0x0F
43 
44 #define OPCODE_SHIFTRIGHT            0x10
45 #define OPCODE_OR                    0x11
46 #define OPCODE_AND                   0x12
47 #define OPCODE_XOR                   0x13
48 #define OPCODE_LESS                  0x14
49 #define OPCODE_LESSEQUAL             0x15
50 #define OPCODE_GREATER               0x16
51 #define OPCODE_GREATEREQUAL          0x17
52 #define OPCODE_NOTEQUAL              0x18
53 #define OPCODE_EQUAL                 0x19
54 #define OPCODE_JUMP_FALSE            0x1A
55 #define OPCODE_JUMP_TRUE             0x1B
56 #define OPCODE_JUMP                  0x1C
57 #define OPCODE_POP                   0x1D
58 #define OPCODE_HALT                  0x1E
59 #define OPCODE_CALLEXT               0x1F
60 
61 #define OPCODE_PAUSE                 0x20
62 #define OPCODE_RETURN                0x21
63 #define OPCODE_PUSH_VARIABLE         0x22
64 #define OPCODE_POP_VARIABLE          0x23
65 #define OPCODE_SET_INT_VARIABLE      0x24
66 #define OPCODE_SET_FLOAT_VARIABLE    0x25
67 #define OPCODE_SET_STRING_VARIABLE   0x26
68 #define OPCODE_STACK_DUPLICATE       0x27
69 #define OPCODE_GET_PARAMETER         0x28
70 
71 #define OPCODE_PEEK_JUMP_FALSE       0x2B
72 #define OPCODE_PEEK_JUMP_TRUE        0x2C
73 #define OPCODE_LINE_NUMBER           0x2D
74 
75 
76 
77 #define OPCODE_POP_ADD_VARIABLE      0x30
78 #define OPCODE_POP_SUB_VARIABLE      0x31
79 #define OPCODE_POP_MUL_VARIABLE      0x32
80 #define OPCODE_POP_MOD_VARIABLE      0x33
81 #define OPCODE_POP_DIV_VARIABLE      0x34
82 #define OPCODE_POP_AND_VARIABLE      0x35
83 #define OPCODE_POP_OR_VARIABLE       0x36
84 #define OPCODE_POP_XOR_VARIABLE      0x37
85 #define OPCODE_POP_SHL_VARIABLE      0x38
86 #define OPCODE_POP_SHR_VARIABLE      0x39
87 #define OPCODE_EXCHANGE              0x3A
88 #define OPCODE_SET_INT_ARRAY         0x3B
89 #define OPCODE_SET_FLOAT_ARRAY       0x3C
90 #define OPCODE_SET_STRING_ARRAY      0x3D
91 
92 
93 
94 #define OPCODE_FETCH                 0x40
95 #define OPCODE_INCREMENT_FETCH       0x41
96 #define OPCODE_DECREMENT_FETCH       0x42
97 #define OPCODE_INCREMENT_LVALUE      0x43
98 #define OPCODE_DECREMENT_LVALUE      0x44
99 
100 
101