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