aboutsummaryrefslogtreecommitdiff
path: root/include/instset.h
blob: e819ff3b3b7d05c93d13608a3ef3eb1d56ec9697 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#ifndef SALIS_INSTSET_H
#define SALIS_INSTSET_H

#define SINST_COUNT 64

#define SINST_LIST \
	SINST(SNOOP, ' ') \
	SINST(SNOP0, '0') \
	SINST(SNOP1, '1') \
	SINST(SNOP2, '2') \
	SINST(SNOP3, '3') \
	\
	SINST(SJMPB, '(') \
	SINST(SJMPF, ')') \
	SINST(SADRB, '[') \
	SINST(SADRF, ']') \
	SINST(SIFNZ, '?') \
	\
	SINST(SALLB, '{') \
	SINST(SALLF, '}') \
	SINST(SBSWP, '%') \
	SINST(SBCLR, '|') \
	SINST(SSPLT, '$') \
	\
	SINST(SADDN, '+') \
	SINST(SSUBN, '-') \
	SINST(SMULN, '*') \
	SINST(SDIVN, '/') \
	SINST(SINCN, '^') \
	SINST(SDECN, 'v') \
	SINST(SNOTN, '!') \
	SINST(SSHFL, '<') \
	SINST(SSHFR, '>') \
	SINST(SZERO, 'z') \
	SINST(SUNIT, 'u') \
	\
	SINST(SPSHN, '#') \
	SINST(SPOPN, '~') \
	\
	SINST(SLOAD, '.') \
	SINST(SWRTE, ':') \
	SINST(SDUPL, '"') \
	SINST(SSWAP, 'x') \
	\
	SINST(SKEYA, 'a') \
	SINST(SKEYB, 'b') \
	SINST(SKEYC, 'c') \
	SINST(SKEYD, 'd') \
	SINST(SKEYE, 'e') \
	SINST(SKEYF, 'f') \
	SINST(SKEYG, 'g') \
	SINST(SKEYH, 'h') \
	SINST(SKEYI, 'i') \
	SINST(SKEYJ, 'j') \
	SINST(SKEYK, 'k') \
	SINST(SKEYL, 'l') \
	SINST(SKEYM, 'm') \
	SINST(SKEYN, 'n') \
	SINST(SKEYO, 'o') \
	SINST(SKEYP, 'p') \
	\
	SINST(SLOKA, 'A') \
	SINST(SLOKB, 'B') \
	SINST(SLOKC, 'C') \
	SINST(SLOKD, 'D') \
	SINST(SLOKE, 'E') \
	SINST(SLOKF, 'F') \
	SINST(SLOKG, 'G') \
	SINST(SLOKH, 'H') \
	SINST(SLOKI, 'I') \
	SINST(SLOKJ, 'J') \
	SINST(SLOKK, 'K') \
	SINST(SLOKL, 'L') \
	SINST(SLOKM, 'M') \
	SINST(SLOKN, 'N') \
	SINST(SLOKO, 'O') \
	SILST(SLOKP, 'P')

enum sinst {
#define SINST(name, symb) name,
#define SILST(name, symb) name
	SINST_LIST
#undef SINST
#undef SILST
};

sbool si_isInst       (sbyte inst);
sbool si_isMod        (sbyte inst);
sbool si_isKey        (sbyte inst);
sbool si_isLock       (sbyte inst);
sbool si_keyLockMatch (sbyte key, sbyte lock);

#endif