From 9c6586cdd0170b4e89d0425c89b6add4918d2e59 Mon Sep 17 00:00:00 2001 From: Adrian Conlon <98398945+AdrianConlon@users.noreply.github.com> Date: Mon, 22 Jul 2024 09:31:03 +0100 Subject: [PATCH] Tie the 6502 disassembler to the "core" processor. --- M6502/Disassembler.cs | 4 ++-- M6502/M6502.HarteTest/Checker.cs | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/M6502/Disassembler.cs b/M6502/Disassembler.cs index 4020a69..b708841 100644 --- a/M6502/Disassembler.cs +++ b/M6502/Disassembler.cs @@ -7,10 +7,10 @@ namespace EightBit using System.Globalization; using System.Text; - public class Disassembler(Bus bus, M6502 processor, Files.Symbols.Parser symbols) + public class Disassembler(Bus bus, M6502Core processor, Files.Symbols.Parser symbols) { private readonly Bus bus = bus; - private readonly M6502 processor = processor; + private readonly M6502Core processor = processor; private readonly Files.Symbols.Parser symbols = symbols; private ushort address; diff --git a/M6502/M6502.HarteTest/Checker.cs b/M6502/M6502.HarteTest/Checker.cs index 537f669..bdf8141 100644 --- a/M6502/M6502.HarteTest/Checker.cs +++ b/M6502/M6502.HarteTest/Checker.cs @@ -29,7 +29,7 @@ public Checker(TestRunner runner) { this.Runner = runner; - this.Disassembler = new(this.Runner, this.Runner.CPU, this.Symbols); + this.Disassembler = new(this.Runner, (EightBit.M6502Core)this.Runner.CPU, this.Symbols); } public void Check(Test test) @@ -201,6 +201,12 @@ var y_good = this.Check("Y", final.Y, cpu.Y); var p_good = this.Check("P", final.P, cpu.P); + if (!p_good) + { + this.Messages.Add($"Expected flags: {EightBit.Disassembler.DumpFlags(final.P)}"); + this.Messages.Add($"Actual flags : {EightBit.Disassembler.DumpFlags(cpu.P)}"); + } + if (final.RAM == null) { throw new InvalidOperationException("Expected RAM cannot be null");