From 284f23c6eafc8adf5e1bfe19a89121b825942aad Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Sun, 22 May 2022 07:16:38 -0400 Subject: [PATCH] Implement JMP. --- .../68000ComparativeTests.mm | 7 +- .../Implementation/68000Mk2Implementation.hpp | 83 ++++++++++++------- 2 files changed, 56 insertions(+), 34 deletions(-) diff --git a/OSBindings/Mac/Clock SignalTests/68000ComparativeTests.mm b/OSBindings/Mac/Clock SignalTests/68000ComparativeTests.mm index d5d5eca3a..93f83cd5b 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:@[ - @"divu_divs.json", +// @"exg.json", // Below this line are passing tests. @"abcd_sbcd.json", @@ -169,16 +169,17 @@ struct TestProcessor: public CPU::MC68000Mk2::BusHandler { @"chk.json", @"cmp.json", @"dbcc_scc.json", + @"divu_divs.json", @"eor_and_or.json", @"eori_andi_ori.json", @"ext.json", - @"jsr.json", + @"jmp_jsr.json", @"movem.json", @"movep.json", @"nbcd.json", @"ext.json", @"swap.json", - ]]; // 19/32 = 59 % done, as far as the tests go. + ]]; // 20/32 = 63 % done, as far as the tests go. // _testSet = [NSSet setWithArray:@[@"Bcc 6000 [79]"]]; } diff --git a/Processors/68000Mk2/Implementation/68000Mk2Implementation.hpp b/Processors/68000Mk2/Implementation/68000Mk2Implementation.hpp index 9994ca000..c4e672114 100644 --- a/Processors/68000Mk2/Implementation/68000Mk2Implementation.hpp +++ b/Processors/68000Mk2/Implementation/68000Mk2Implementation.hpp @@ -135,14 +135,15 @@ enum ExecutionState: int { BSR, - JSRAddressRegisterIndirect, - JSRAddressRegisterIndirectWithDisplacement, - JSRAddressRegisterIndirectWithIndex8bitDisplacement, - JSRProgramCounterIndirectWithDisplacement, - JSRProgramCounterIndirectWithIndex8bitDisplacement, - JSRAbsoluteShort, - JSRAbsoluteLong, - JSR_push, + JSRJMPAddressRegisterIndirect, + JSRJMPAddressRegisterIndirectWithDisplacement, + JSRJMPAddressRegisterIndirectWithIndex8bitDisplacement, + JSRJMPProgramCounterIndirectWithDisplacement, + JSRJMPProgramCounterIndirectWithIndex8bitDisplacement, + JSRJMPAbsoluteShort, + JSRJMPAbsoluteLong, + + JSR, JMP, BCHG_BSET_Dn, BCLR_Dn, @@ -599,22 +600,27 @@ void Processor