summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/m6502/om6510.lst
blob: 6a13d3ffe01792cd91649ca4df104e7a13b08627 (plain) (blame)
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
# license:BSD-3-Clause
# copyright-holders:Olivier Galibert
# 6510 undocumented instructions in a C64 context
anc_10_imm
	m_TMP2 = read_pc();
	m_PC++;
	m_A &= m_TMP2;
	set_nz(m_A);
	if(m_A & 0x80)
		m_P |= F_C;
	else
		m_P &= ~F_C;
	prefetch();

ane_10_imm
	m_TMP2 = read_pc();
	m_PC++;
	m_A = (m_A | 0xee) & m_TMP2 & m_X;
	set_nz(m_A);
	prefetch();

asr_10_imm
	m_TMP2 = read_pc();
	m_PC++;
	m_A = do_lsr(m_A & m_TMP2);
	set_nz(m_A);
	prefetch();

arr_10_imm
	m_TMP2 = read_pc();
	m_PC++;
	m_A &= m_TMP2;
	do_arr();
	prefetch();

las_10_aby
	m_TMP = read_pc();
	m_PC++;
	m_TMP = set_h(m_TMP, read_pc());
	m_PC++;
	if(page_changing(m_TMP, m_Y)) {
		read(set_l(m_TMP, m_TMP+m_Y));
	}
	m_TMP2 = read(m_TMP+m_Y);
	m_A = m_X = m_TMP2 & m_SP;
	m_SP = set_l(m_SP, m_A);
	set_nz(m_A);
	prefetch();

lxa_10_imm
	m_TMP2 = read_pc();
	m_PC++;
	m_A = m_X = (m_A | 0xee) & m_TMP2;
	set_nz(m_A);
	prefetch();