1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-11-26 08:49:37 +00:00

Provides something on WAI/STP; sizes STY by the x flag; disables MSC test.

This commit is contained in:
Thomas Harte 2020-11-03 20:17:44 -05:00
parent ddc44ce0d1
commit cc5ec78156
2 changed files with 8 additions and 3 deletions

View File

@ -150,7 +150,6 @@ class Krom65816Tests: XCTestCase {
func testLDR() { runTest("CPULDR") } func testLDR() { runTest("CPULDR") }
func testLSR() { runTest("CPULSR") } func testLSR() { runTest("CPULSR") }
func testMOV() { runTest("CPUMOV") } func testMOV() { runTest("CPUMOV") }
func testMSC() { runTest("CPUMSC") }
func testORA() { runTest("CPUORA") } func testORA() { runTest("CPUORA") }
func testPHL() { runTest("CPUPHL") } func testPHL() { runTest("CPUPHL") }
func testPSR() { runTest("CPUPSR") } func testPSR() { runTest("CPUPSR") }
@ -160,4 +159,10 @@ class Krom65816Tests: XCTestCase {
func testSTR() { runTest("CPUSTR") } func testSTR() { runTest("CPUSTR") }
func testTRN() { runTest("CPUTRN") } func testTRN() { runTest("CPUTRN") }
// MSC isn't usable because it tests WAI and STP, having set itself up to receive
// some SNES-specific interrupts. Luckily those are the two final things it tests,
// and life seems to be good until there.
//
// TODO: reintroduce with a special stop-before inserted?
// func testMSC() { runTest("CPUMSC") }
} }

View File

@ -205,7 +205,7 @@ template <typename BusHandler, bool uses_ready_line> void Processor<BusHandler,
continue; continue;
} else { } else {
--next_op_; --next_op_;
perform_bus(0xffffff, nullptr, (required_exceptions_ & IRQ) ? MOS6502Esque::Ready : MOS6502Esque::None); perform_bus(0xffffff, &bus_throwaway_, (required_exceptions_ & IRQ) ? MOS6502Esque::Ready : MOS6502Esque::None);
} }
break; break;
@ -517,7 +517,7 @@ template <typename BusHandler, bool uses_ready_line> void Processor<BusHandler,
case STY: case STY:
data_buffer_.value = registers_.y.full & registers_.x_masks[1]; data_buffer_.value = registers_.y.full & registers_.x_masks[1];
data_buffer_.size = 2 - m_flag(); data_buffer_.size = 2 - x_flag();
break; break;
case PHB: case PHB: