forked from BigEd/stm6502
-
Notifications
You must be signed in to change notification settings - Fork 0
/
instructions.h
92 lines (84 loc) · 1.7 KB
/
instructions.h
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
// instructions.h -- declare everything in instructions.c, even if it
// doesn't quite look like it..
// Copyright (C) 2012 Chris J. Baird <cjb@brushtail.apana.org.au>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>
// derived from unlicenced/BSD-2clause code by Charlie Somerville
// https://github.com/charliesome/6502
#ifndef INSTRUCTIONS_H
#define INSTRUCTIONS_H
#include "cpu.h"
typedef void(*ins_t)(cpu_t*, unsigned short);
#define INS(name) void ins_##name(cpu_t* cpu, unsigned short param)
INS(adc);
INS(and);
INS(asl);
INS(asl_a);
INS(bcc);
INS(bcs);
INS(beq);
INS(bit);
INS(bmi);
INS(bne);
INS(bpl);
INS(brk);
INS(bvc);
INS(bvs);
INS(clc);
INS(cld);
INS(cli);
INS(clv);
INS(cmp);
INS(cpx);
INS(cpy);
INS(dec);
INS(dex);
INS(dey);
INS(eor);
INS(inc);
INS(inx);
INS(iny);
INS(jmp);
INS(jsr);
INS(lda);
INS(ldx);
INS(ldy);
INS(lsr);
INS(lsr_a);
INS(nop);
INS(ora);
INS(pha);
INS(php);
INS(pla);
INS(plp);
INS(rol);
INS(rol_a);
INS(ror);
INS(ror_a);
INS(rti);
INS(rts);
INS(sbc);
INS(sec);
INS(sed);
INS(sei);
INS(sta);
INS(stx);
INS(sty);
INS(tax);
INS(tay);
INS(tsx);
INS(txa);
INS(txs);
INS(tya);
#endif /* INSTRUCTIONS_H */