diff --git a/OSBindings/Mac/Clock SignalTests/68000ComparativeTests.mm b/OSBindings/Mac/Clock SignalTests/68000ComparativeTests.mm index eac92112b..8b3f1ec14 100644 --- a/OSBindings/Mac/Clock SignalTests/68000ComparativeTests.mm +++ b/OSBindings/Mac/Clock SignalTests/68000ComparativeTests.mm @@ -156,7 +156,7 @@ struct TestProcessor: public CPU::MC68000Mk2::BusHandler { // To limit tests run to a subset of files and/or of tests, uncomment and fill in below. _fileSet = [NSSet setWithArray:@[ - @"movem.json", + @"chk.json", // Below this line are passing tests. @"abcd_sbcd.json", @@ -171,12 +171,14 @@ struct TestProcessor: public CPU::MC68000Mk2::BusHandler { @"eor_and_or.json", @"eori_andi_ori.json", @"ext.json", + @"jsr.json", + @"movem.json", @"movep.json", @"nbcd.json", @"ext.json", @"swap.json", - ]]; // 16/32 = 50 % done, as far as the tests go. -// _testSet = [NSSet setWithArray:@[@"MOVEM 00fa (13)"]]; + ]]; // 18/32 = 56 % done, as far as the tests go. +// _testSet = [NSSet setWithArray:@[@"MOVEM 0067 (5)"]]; } - (void)testAll { @@ -287,7 +289,7 @@ struct TestProcessor: public CPU::MC68000Mk2::BusHandler { NSNumber *const value = [enumerator nextObject]; if(!address || !value) break; -// XCTAssertEqual(test68000->ram[address.integerValue ^ 1], value.integerValue, @"%@: Memory at location %@ inconsistent", name, address); + XCTAssertEqual(test68000->ram[address.integerValue ^ 1], value.integerValue, @"%@: Memory at location %@ inconsistent", name, address); if(test68000->ram[address.integerValue ^ 1] != value.integerValue) [_failures addObject:name]; } diff --git a/Processors/68000Mk2/Implementation/68000Mk2Implementation.hpp b/Processors/68000Mk2/Implementation/68000Mk2Implementation.hpp index a930b2324..4c48f88f7 100644 --- a/Processors/68000Mk2/Implementation/68000Mk2Implementation.hpp +++ b/Processors/68000Mk2/Implementation/68000Mk2Implementation.hpp @@ -134,6 +134,15 @@ enum ExecutionState: int { BSR, + JSRAddressRegisterIndirect, + JSRAddressRegisterIndirectWithDisplacement, + JSRAddressRegisterIndirectWithIndex8bitDisplacement, + JSRProgramCounterIndirectWithDisplacement, + JSRProgramCounterIndirectWithIndex8bitDisplacement, + JSRAbsoluteShort, + JSRAbsoluteLong, + JSR_push, + BCHG_BSET_Dn, BCLR_Dn, @@ -587,6 +596,27 @@ void Processor