/*
* opcodes.h -- part of ZilUtils/ZilAsm
*
- * Copyright (C) 2016 Jason Self <j@jxself.org>
+ * Copyright (C) 2016, 2019 Jason Self <j@jxself.org>
*
* Based on ZILF (c) 2010, 2015 Jesse McGrew
*
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
*/
#ifndef ZILASM_OPCODES
#include "symtable.h"
-typedef enum {
- Zop_none = 0,
- Zop_store = 1, // ..stores a result
- Zop_branch = 2, // ..branches to a label
- Zop_extra = 4, // ..takes an extra operand type byte, for a total of 8 possible operands
- Zop_varargs = 8, // ..is nominally 2OP but can take up to 4 operands
- Zop_string = 16, // ..has a string literal operand
- Zop_label = 32, // ..can take a local label operand
- Zop_indvar = 64, // ..first operand is an indirect variable number
- Zop_call = 128, // ..first operand is a packed routine address
- Zop_term = 256 // ..control flow does not pass to the following instruction
+typedef enum
+{
+ Zop_none = 0,
+ Zop_store = 1, // ..stores a result
+ Zop_branch = 2, // ..branches to a label
+ Zop_extra = 4, // ..takes an extra operand type byte, for a total of 8 possible operands
+ Zop_varargs = 8, // ..is nominally 2OP but can take up to 4 operands
+ Zop_string = 16, // ..has a string literal operand
+ Zop_label = 32, // ..can take a local label operand
+ Zop_indvar = 64, // ..first operand is an indirect variable number
+ Zop_call = 128, // ..first operand is a packed routine address
+ Zop_term = 256 // ..control flow does not pass to the following instruction
} ZOpcode_flags;
-typedef struct {
- unsigned opcode;
- ZOpcode_flags flags;
+typedef struct
+{
+ unsigned opcode;
+ ZOpcode_flags flags;
} ZOpcode;
extern Symtable *Opcodes;
-void init_opcodes(int version, int inform_syntax);
+void init_opcodes (int version, int inform_syntax);
+
+enum Opcodes
+{
+ Opcode_ADD = 20,
+ Opcode_ASHIFT = 259,
+ Opcode_ASSIGNED = 255,
+ Opcode_BAND = 9,
+ Opcode_PRINT = 141,
+ Opcode_PRINTI = 178,
+ Opcode_PRINTR = 179,
+ Opcode_QUIT = 186,
+ Opcode_CRLF = 187
+};
+
-#endif /* ifndef ZILASM_OPCODES */
+#endif /* ifndef ZILASM_OPCODES */