Updated interpreters
[projects/chimara/chimara.git] / interpreters / glulxe / opcodes.h
1 /* opcodes.h: The big list of opcode values for Glulxe.
2     Designed by Andrew Plotkin <erkyrath@eblong.com>
3     http://eblong.com/zarf/glulx/index.html
4 */
5
6 #ifndef _OPCODES_H
7 #define _OPCODES_H
8
9 #define op_nop          (0x00)
10
11 #define op_add          (0x10)
12 #define op_sub          (0x11)
13 #define op_mul          (0x12)
14 #define op_div          (0x13)
15 #define op_mod          (0x14)
16 #define op_neg          (0x15)
17 #define op_bitand       (0x18)
18 #define op_bitor        (0x19)
19 #define op_bitxor       (0x1A)
20 #define op_bitnot       (0x1B)
21 #define op_shiftl       (0x1C)
22 #define op_sshiftr      (0x1D)
23 #define op_ushiftr      (0x1E)
24
25 #define op_jump         (0x20)
26 #define op_jz           (0x22)
27 #define op_jnz          (0x23)
28 #define op_jeq          (0x24)
29 #define op_jne          (0x25)
30 #define op_jlt          (0x26)
31 #define op_jge          (0x27)
32 #define op_jgt          (0x28)
33 #define op_jle          (0x29)
34 #define op_jltu         (0x2A)
35 #define op_jgeu         (0x2B)
36 #define op_jgtu         (0x2C)
37 #define op_jleu         (0x2D)
38
39 #define op_call         (0x30)
40 #define op_return       (0x31)
41 #define op_catch        (0x32)
42 #define op_throw        (0x33)
43 #define op_tailcall     (0x34)
44
45 #define op_copy         (0x40)
46 #define op_copys        (0x41)
47 #define op_copyb        (0x42)
48 #define op_sexs         (0x44)
49 #define op_sexb         (0x45)
50 #define op_aload        (0x48)
51 #define op_aloads       (0x49)
52 #define op_aloadb       (0x4A)
53 #define op_aloadbit     (0x4B)
54 #define op_astore       (0x4C)
55 #define op_astores      (0x4D)
56 #define op_astoreb      (0x4E)
57 #define op_astorebit    (0x4F)
58
59 #define op_stkcount     (0x50)
60 #define op_stkpeek      (0x51)
61 #define op_stkswap      (0x52)
62 #define op_stkroll      (0x53)
63 #define op_stkcopy      (0x54)
64
65 #define op_streamchar   (0x70)
66 #define op_streamnum    (0x71)
67 #define op_streamstr    (0x72)
68 #define op_streamunichar (0x73)
69
70 #define op_gestalt      (0x100)
71 #define op_debugtrap    (0x101)
72 #define op_getmemsize   (0x102)
73 #define op_setmemsize   (0x103)
74 #define op_jumpabs      (0x104)
75
76 #define op_random       (0x110)
77 #define op_setrandom    (0x111)
78
79 #define op_quit         (0x120)
80 #define op_verify       (0x121)
81 #define op_restart      (0x122)
82 #define op_save         (0x123)
83 #define op_restore      (0x124)
84 #define op_saveundo     (0x125)
85 #define op_restoreundo  (0x126)
86 #define op_protect      (0x127)
87
88 #define op_glk          (0x130)
89
90 #define op_getstringtbl (0x140)
91 #define op_setstringtbl (0x141)
92 #define op_getiosys     (0x148)
93 #define op_setiosys     (0x149)
94
95 #define op_linearsearch (0x150)
96 #define op_binarysearch (0x151)
97 #define op_linkedsearch (0x152)
98
99 #define op_callf        (0x160)
100 #define op_callfi       (0x161)
101 #define op_callfii      (0x162)
102 #define op_callfiii     (0x163)
103
104 #define op_mzero        (0x170)
105 #define op_mcopy        (0x171)
106 #define op_malloc       (0x178)
107 #define op_mfree        (0x179)
108
109 #define op_accelfunc    (0x180)
110 #define op_accelparam   (0x181)
111
112 #define op_numtof       (0x190)
113 #define op_ftonumz      (0x191)
114 #define op_ftonumn      (0x192)
115 #define op_ceil         (0x198)
116 #define op_floor        (0x199)
117 #define op_fadd         (0x1A0)
118 #define op_fsub         (0x1A1)
119 #define op_fmul         (0x1A2)
120 #define op_fdiv         (0x1A3)
121 #define op_fmod         (0x1A4)
122 #define op_sqrt         (0x1A8)
123 #define op_exp          (0x1A9)
124 #define op_log          (0x1AA)
125 #define op_pow          (0x1AB)
126 #define op_sin          (0x1B0)
127 #define op_cos          (0x1B1)
128 #define op_tan          (0x1B2)
129 #define op_asin         (0x1B3)
130 #define op_acos         (0x1B4)
131 #define op_atan         (0x1B5)
132 #define op_atan2        (0x1B6)
133 #define op_jfeq         (0x1C0)
134 #define op_jfne         (0x1C1)
135 #define op_jflt         (0x1C2)
136 #define op_jfle         (0x1C3)
137 #define op_jfgt         (0x1C4)
138 #define op_jfge         (0x1C5)
139 #define op_jisnan       (0x1C8)
140 #define op_jisinf       (0x1C9)
141
142 #endif /* _OPCODES_H */
143