kc5tja / lib65816
A statically linked library containing an emulator for the W65C816 microprocessor.
| commit 7: | 38b425fde321 |
| parent 6: | c599f2be6093 |
| branch: | default |
When in emulation mode, bits 4 and 5 should always be read as 1.
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 | 0x |
|
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) ( |
|
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) ( |
|
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) ( |
|
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) ( |
|
1700 |
S_PUSH((byte) ((P & ~0x10) | 0x20)); |
|
1697 |
1701 |
F_setD(0); |
1698 |
1702 |
F_setI(1); |
1699 |
1703 |
F_setB(1); |
