kc5tja / lib65816

A statically linked library containing an emulator for the W65C816 microprocessor.

Clone this repository (size: 47.0 KB): HTTPS / SSH
$ hg clone http://bitbucket.org/kc5tja/lib65816/
commit 7: 38b425fde321
parent 6: c599f2be6093
branch: default
When in emulation mode, bits 4 and 5 should always be read as 1.
kc5...@localhost.localdomain
6 months ago

Changed (Δ67 bytes):

raw changeset »

src/opcodes.h (9 lines added, 5 lines removed)

Up to file-list src/opcodes.h:

@@ -54,7 +54,7 @@ BEGIN_CPU_FUNC(opcode_0x00) /* BRK s
54
54
#else
55
55
	S_PUSH(PC.B.H);
56
56
	S_PUSH(PC.B.L);
57
	S_PUSH(P | 0x10);  /* ed spittles  set brk flag */
57
	S_PUSH(P | 0x30);
58
58
	F_setD(0);
59
59
	F_setI(1);
60
60
	F_setB(0);
@@ -85,7 +85,7 @@ BEGIN_CPU_FUNC(opcode_0x02) /* COP s
85
85
#else
86
86
	S_PUSH(PC.B.H);
87
87
	S_PUSH(PC.B.L);
88
	S_PUSH((byte) (P & ~0x10));
88
	S_PUSH((byte) ((P & ~0x10) | 0x20));
89
89
	F_setD(0);
90
90
	F_setI(1);
91
91
	DB = 0;
@@ -121,7 +121,11 @@ BEGIN_CPU_FUNC(opcode_0x07)
121
121
END_CPU_FUNC
122
122
123
123
BEGIN_CPU_FUNC(opcode_0x08)
124
#ifdef NATIVE_MODE
124
125
	S_PUSH(P);					/* PHP s */
126
#else
127
    S_PUSH((P & ~0x10) | 0x20);
128
#endif
125
129
END_CPU_FUNC
126
130
127
131
BEGIN_CPU_FUNC(opcode_0x09)
@@ -1637,7 +1641,7 @@ BEGIN_CPU_FUNC(abort)
1637
1641
#else
1638
1642
	S_PUSH(PC.B.H);
1639
1643
	S_PUSH(PC.B.L);
1640
	S_PUSH((byte) (P & ~0x10));
1644
	S_PUSH((byte) ((P & ~0x10) | 0x20));
1641
1645
	F_setD(0);
1642
1646
	F_setI(1);
1643
1647
	DB = 0;
@@ -1665,7 +1669,7 @@ BEGIN_CPU_FUNC(nmi)
1665
1669
#else
1666
1670
	S_PUSH(PC.B.H);
1667
1671
	S_PUSH(PC.B.L);
1668
	S_PUSH((byte) (P & ~0x10));
1672
	S_PUSH((byte) ((P & ~0x10) | 0x20));
1669
1673
	F_setD(0);
1670
1674
	F_setI(1);
1671
1675
	DB = 0;
@@ -1693,7 +1697,7 @@ BEGIN_CPU_FUNC(irq)
1693
1697
#else
1694
1698
	S_PUSH(PC.B.H);
1695
1699
	S_PUSH(PC.B.L);
1696
	S_PUSH((byte) (P & ~0x10));
1700
	S_PUSH((byte) ((P & ~0x10) | 0x20));
1697
1701
	F_setD(0);
1698
1702
	F_setI(1);
1699
1703
	F_setB(1);