Added ability to define multiple functions (without parameters) and
[zilutils.git] / zilasm / opcodes.h
index 21e8ac0d0c9140eb45feb57b00ecf2673093a7d8..95a0f4fabdf1ff1ed5ae23632958fdf71e7a673a 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * opcodes.h -- part of ZilUtils/ZilAsm
  *
- * Copyright (C) 2016 Jason Self <j@jxself.org>
+ * Copyright (C) 2016, 2019, 2020 Jason Self <j@jxself.org>
  *
  * Based on ZILF (c) 2010, 2015 Jesse McGrew
  *
 
 #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);
 
-#endif  /* ifndef ZILASM_OPCODES */
+enum Opcodes
+{
+  Opcode_ADD = 20,
+  Opcode_ASHIFT = 259,
+  Opcode_ASSIGNED = 255,
+  Opcode_BAND = 9,
+  Opcode_CRLF = 187,
+  Opcode_ICALL1 = 143,
+  Opcode_ICALL2 = 26,
+  Opcode_PRINT = 141,
+  Opcode_PRINTI = 178,
+  Opcode_PRINTR = 179,
+  Opcode_QUIT = 186,
+  Opcode_RTRUE = 176
+};
+
+
+#endif /* ifndef ZILASM_OPCODES */