Add Glulxe and Git. They compile but don't work yet.
[rodin/chimara.git] / interpreters / glulxe / opcodes.h
diff --git a/interpreters/glulxe/opcodes.h b/interpreters/glulxe/opcodes.h
new file mode 100644 (file)
index 0000000..8da99d2
--- /dev/null
@@ -0,0 +1,113 @@
+/* opcodes.h: The big list of opcode values for Glulxe.
+    Designed by Andrew Plotkin <erkyrath@eblong.com>
+    http://eblong.com/zarf/glulx/index.html
+*/
+
+#ifndef _OPCODES_H
+#define _OPCODES_H
+
+#define op_nop          (0x00)
+
+#define op_add          (0x10)
+#define op_sub          (0x11)
+#define op_mul          (0x12)
+#define op_div          (0x13)
+#define op_mod          (0x14)
+#define op_neg          (0x15)
+#define op_bitand       (0x18)
+#define op_bitor        (0x19)
+#define op_bitxor       (0x1A)
+#define op_bitnot       (0x1B)
+#define op_shiftl       (0x1C)
+#define op_sshiftr      (0x1D)
+#define op_ushiftr      (0x1E)
+
+#define op_jump         (0x20)
+#define op_jz           (0x22)
+#define op_jnz          (0x23)
+#define op_jeq          (0x24)
+#define op_jne          (0x25)
+#define op_jlt          (0x26)
+#define op_jge          (0x27)
+#define op_jgt          (0x28)
+#define op_jle          (0x29)
+#define op_jltu         (0x2A)
+#define op_jgeu         (0x2B)
+#define op_jgtu         (0x2C)
+#define op_jleu         (0x2D)
+
+#define op_call         (0x30)
+#define op_return       (0x31)
+#define op_catch        (0x32)
+#define op_throw        (0x33)
+#define op_tailcall     (0x34)
+
+#define op_copy         (0x40)
+#define op_copys        (0x41)
+#define op_copyb        (0x42)
+#define op_sexs         (0x44)
+#define op_sexb         (0x45)
+#define op_aload        (0x48)
+#define op_aloads       (0x49)
+#define op_aloadb       (0x4A)
+#define op_aloadbit     (0x4B)
+#define op_astore       (0x4C)
+#define op_astores      (0x4D)
+#define op_astoreb      (0x4E)
+#define op_astorebit    (0x4F)
+
+#define op_stkcount     (0x50)
+#define op_stkpeek      (0x51)
+#define op_stkswap      (0x52)
+#define op_stkroll      (0x53)
+#define op_stkcopy      (0x54)
+
+#define op_streamchar   (0x70)
+#define op_streamnum    (0x71)
+#define op_streamstr    (0x72)
+#define op_streamunichar (0x73)
+
+#define op_gestalt      (0x100)
+#define op_debugtrap    (0x101)
+#define op_getmemsize   (0x102)
+#define op_setmemsize   (0x103)
+#define op_jumpabs      (0x104)
+
+#define op_random       (0x110)
+#define op_setrandom    (0x111)
+
+#define op_quit         (0x120)
+#define op_verify       (0x121)
+#define op_restart      (0x122)
+#define op_save         (0x123)
+#define op_restore      (0x124)
+#define op_saveundo     (0x125)
+#define op_restoreundo  (0x126)
+#define op_protect      (0x127)
+
+#define op_glk          (0x130)
+
+#define op_getstringtbl (0x140)
+#define op_setstringtbl (0x141)
+#define op_getiosys     (0x148)
+#define op_setiosys     (0x149)
+
+#define op_linearsearch (0x150)
+#define op_binarysearch (0x151)
+#define op_linkedsearch (0x152)
+
+#define op_callf        (0x160)
+#define op_callfi       (0x161)
+#define op_callfii      (0x162)
+#define op_callfiii     (0x163)
+
+#define op_mzero        (0x170)
+#define op_mcopy        (0x171)
+#define op_malloc       (0x178)
+#define op_mfree        (0x179)
+
+#define op_accelfunc    (0x180)
+#define op_accelparam   (0x181)
+
+#endif /* _OPCODES_H */
+