]> 4ch.mooo.com Git - 16.git/blobdiff - 16/v2/source/ENGINE/VCCODE.H
attempted font system added
[16.git] / 16 / v2 / source / ENGINE / VCCODE.H
diff --git a/16/v2/source/ENGINE/VCCODE.H b/16/v2/source/ENGINE/VCCODE.H
new file mode 100644 (file)
index 0000000..7449513
--- /dev/null
@@ -0,0 +1,111 @@
+/*\r
+Copyright (C) 1998 BJ Eirich (aka vecna)\r
+This program is free software; you can redistribute it and/or\r
+modify it under the terms of the GNU General Public License\r
+as published by the Free Software Foundation; either version 2\r
+of the License, or (at your option) any later version.\r
+This program is distributed in the hope that it will be useful,\r
+but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\r
+See the GNU General Public Lic\r
+See the GNU General Public License for more details.\r
+You should have received a copy of the GNU General Public License\r
+along with this program; if not, write to the Free Software\r
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\r
+*/\r
+\r
+// We never use zero as a tag. This makes it easier to track down misbehaving\r
+// VC code, since zero is commonly come-by when going off into uncharted\r
+// depths of memory.\r
+\r
+#define ERROR                 0\r
+\r
+// Opcode values.\r
+\r
+#define opEXEC_STDLIB         1\r
+#define opEXEC_LOCALFUNC      2\r
+#define opEXEC_EXTERNFUNC     3\r
+#define opIF                  4\r
+#define opELSE                5\r
+#define opGOTO                6\r
+#define opSWITCH              7\r
+#define opCASE                8\r
+#define opRETURN              9\r
+#define opASSIGN              10\r
+#define opSETRETVAL           11\r
+#define opSETLOCALSTACK       12\r
+\r
+// Operand types.\r
+\r
+#define op_IMMEDIATE          1\r
+#define op_HVAR0              2\r
+#define op_HVAR1              3\r
+#define op_UVAR               4\r
+#define op_UVARRAY            5\r
+#define op_LVAR               6\r
+#define op_BFUNC              7\r
+#define op_UFUNC              8\r
+#define op_GROUP              9\r
+#define op_STRING             10\r
+#define op_SARRAY             11\r
+#define op_SLOCAL             12\r
+\r
+// Variable types.\r
+\r
+#define v_IMMEDIATE           1  // is this necessary?\r
+#define v_CHAR                2\r
+#define v_PTR                 3\r
+#define v_INT                 4\r
+\r
+// IF relational operators.\r
+\r
+#define i_ZERO                1\r
+#define i_NONZERO             2\r
+#define i_EQUALTO             3\r
+#define i_NOTEQUAL            4\r
+#define i_GREATERTHAN         5\r
+#define i_LESSTHAN            6\r
+#define i_GREATERTHANOREQUAL  7\r
+#define i_LESSTHANOREQUAL     8\r
+#define i_GROUP               9\r
+#define i_UNGROUP             10\r
+#define i_AND                 11\r
+#define i_OR                  12\r
+\r
+// Assignment operators.\r
+\r
+#define a_SET                 1\r
+#define a_INC                 2\r
+#define a_DEC                 3\r
+#define a_INCSET              4\r
+#define a_DECSET              5\r
+#define a_MULTSET             6\r
+#define a_DIVSET              7\r
+\r
+// Operand combination operators.\r
+\r
+#define op_ADD                1\r
+#define op_SUB                2\r
+#define op_MULT               3\r
+#define op_DIV                4\r
+#define op_MOD                5\r
+#define op_SHL                6\r
+#define op_SHR                7\r
+#define op_AND                8\r
+#define op_OR                 9\r
+#define op_XOR                10\r
+#define op_END                11\r
+\r
+// String components\r
+\r
+#define s_IMMEDIATE           1\r
+#define s_GLOBAL              2\r
+#define s_ARRAY               3\r
+#define s_NUMSTR              4\r
+#define s_LEFT                5\r
+#define s_RIGHT               6\r
+#define s_MID                 7\r
+#define s_LOCAL               8\r
+#define s_ADD                 9\r
+#define s_CHR                 10\r
+#define s_END                 11\r