mirror of
https://github.com/MoleskiCoder/EightBitNet.git
synced 2026-04-25 09:16:41 +00:00
More analysis suggestions
This commit is contained in:
@@ -157,15 +157,15 @@
|
|||||||
|
|
||||||
var expected_address = expected_cycle.Address;
|
var expected_address = expected_cycle.Address;
|
||||||
var actual_address = actual_cycle.Address;
|
var actual_address = actual_cycle.Address;
|
||||||
this.Check("Cycle address", expected_address, actual_address);
|
_ = this.Check("Cycle address", expected_address, actual_address);
|
||||||
|
|
||||||
var expected_value = expected_cycle.Value;
|
var expected_value = expected_cycle.Value;
|
||||||
var actual_value = actual_cycle.Value;
|
var actual_value = actual_cycle.Value;
|
||||||
this.Check("Cycle value", expected_value, actual_value);
|
_ = this.Check("Cycle value", expected_value, actual_value);
|
||||||
|
|
||||||
var expected_action = expected_cycle.Type;
|
var expected_action = expected_cycle.Type;
|
||||||
var actual_action = actual_cycle.Type;
|
var actual_action = actual_cycle.Type;
|
||||||
this.Check("Cycle action", expected_action, actual_action);
|
_ = this.Check("Cycle action", expected_action, actual_action);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actual_idx < actual_cycles.Count)
|
if (actual_idx < actual_cycles.Count)
|
||||||
|
|||||||
@@ -23,8 +23,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.Address = ((System.Text.Json.JsonElement)input[0]).GetUInt16();
|
this.Address = ((System.Text.Json.JsonElement)input[0]).GetUInt16();
|
||||||
this.Value = ((System.Text.Json.JsonElement)input[1]).GetByte(); ;
|
this.Value = ((System.Text.Json.JsonElement)input[1]).GetByte();
|
||||||
this.Type = ((System.Text.Json.JsonElement)input[2]).GetString(); ;
|
this.Type = ((System.Text.Json.JsonElement)input[2]).GetString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
using System.Text.Json;
|
namespace M6502.HarteTest
|
||||||
using System.Text.Json.Serialization;
|
|
||||||
|
|
||||||
namespace M6502.HarteTest
|
|
||||||
{
|
{
|
||||||
|
using System.Text.Json;
|
||||||
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
internal class OpcodeTestSuite(string path) : IDisposable
|
internal class OpcodeTestSuite(string path) : IDisposable
|
||||||
{
|
{
|
||||||
private static readonly JsonSerializerOptions SerializerOptions = new()
|
private static readonly JsonSerializerOptions SerializerOptions = new()
|
||||||
|
|||||||
@@ -2,13 +2,13 @@
|
|||||||
// Copyright (c) Adrian Conlon. All rights reserved.
|
// Copyright (c) Adrian Conlon. All rights reserved.
|
||||||
// </copyright>
|
// </copyright>
|
||||||
|
|
||||||
using System.IO;
|
|
||||||
|
|
||||||
namespace M6502.HarteTest
|
namespace M6502.HarteTest
|
||||||
{
|
{
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
public static class Program
|
public static class Program
|
||||||
{
|
{
|
||||||
public static async Task Main(string[] args)
|
public static async Task Main(string[] _)
|
||||||
{
|
{
|
||||||
var directory = @"C:\github\spectrum\libraries\EightBit\modules\65x02\6502\v1";
|
var directory = @"C:\github\spectrum\libraries\EightBit\modules\65x02\6502\v1";
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
using EightBit;
|
namespace M6502.HarteTest
|
||||||
|
|
||||||
namespace M6502.HarteTest
|
|
||||||
{
|
{
|
||||||
internal class TestRunner : EightBit.Bus
|
using EightBit;
|
||||||
{
|
|
||||||
public EightBit.Ram RAM { get; } = new(0x10000);
|
|
||||||
|
|
||||||
public EightBit.M6502 CPU { get; }
|
internal class TestRunner : Bus
|
||||||
|
{
|
||||||
|
public Ram RAM { get; } = new(0x10000);
|
||||||
|
|
||||||
|
public M6502 CPU { get; }
|
||||||
|
|
||||||
private readonly MemoryMapping mapping;
|
private readonly MemoryMapping mapping;
|
||||||
|
|
||||||
|
|||||||
+8
-11
@@ -105,6 +105,7 @@ namespace EightBit
|
|||||||
|
|
||||||
private static int CarryTest(byte data) => data & (byte)StatusBits.CF;
|
private static int CarryTest(byte data) => data & (byte)StatusBits.CF;
|
||||||
|
|
||||||
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1030:Use events where appropriate", Justification = "The word 'raise' is used in an electrical sense")]
|
||||||
public virtual void RaiseNMI()
|
public virtual void RaiseNMI()
|
||||||
{
|
{
|
||||||
if (this.NMI.Lowered())
|
if (this.NMI.Lowered())
|
||||||
@@ -125,6 +126,7 @@ namespace EightBit
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1030:Use events where appropriate", Justification = "The word 'raise' is used in an electrical sense")]
|
||||||
public virtual void RaiseSO()
|
public virtual void RaiseSO()
|
||||||
{
|
{
|
||||||
if (this.SO.Lowered())
|
if (this.SO.Lowered())
|
||||||
@@ -145,6 +147,7 @@ namespace EightBit
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1030:Use events where appropriate", Justification = "The word 'raise' is used in an electrical sense")]
|
||||||
public virtual void RaiseRDY()
|
public virtual void RaiseRDY()
|
||||||
{
|
{
|
||||||
if (this.RDY.Lowered())
|
if (this.RDY.Lowered())
|
||||||
@@ -165,6 +168,7 @@ namespace EightBit
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1030:Use events where appropriate", Justification = "The word 'raise' is used in an electrical sense")]
|
||||||
public virtual void RaiseRW()
|
public virtual void RaiseRW()
|
||||||
{
|
{
|
||||||
if (this.RW.Lowered())
|
if (this.RW.Lowered())
|
||||||
@@ -586,6 +590,7 @@ namespace EightBit
|
|||||||
this.MemoryWrite(value);
|
this.MemoryWrite(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1030:Use events where appropriate", Justification = "The word 'raise' is used in an electrical sense")]
|
||||||
protected virtual void RaiseSYNC()
|
protected virtual void RaiseSYNC()
|
||||||
{
|
{
|
||||||
this.OnRaisingSYNC();
|
this.OnRaisingSYNC();
|
||||||
@@ -634,8 +639,6 @@ namespace EightBit
|
|||||||
|
|
||||||
private static byte ClearBit(byte f, StatusBits flag, int condition) => ClearBit(f, (byte)flag, condition);
|
private static byte ClearBit(byte f, StatusBits flag, int condition) => ClearBit(f, (byte)flag, condition);
|
||||||
|
|
||||||
private static byte ClearBit(byte f, StatusBits flag, bool condition) => ClearBit(f, (byte)flag, condition);
|
|
||||||
|
|
||||||
// Status flag operations
|
// Status flag operations
|
||||||
|
|
||||||
private void SetFlag(StatusBits flag)
|
private void SetFlag(StatusBits flag)
|
||||||
@@ -659,11 +662,6 @@ namespace EightBit
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void ResetFlag(StatusBits which, int condition)
|
private void ResetFlag(StatusBits which, int condition)
|
||||||
{
|
|
||||||
this.P = ClearBit(this.P, which, condition);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ResetFlag(StatusBits which, bool condition)
|
|
||||||
{
|
{
|
||||||
this.P = ClearBit(this.P, which, condition);
|
this.P = ClearBit(this.P, which, condition);
|
||||||
}
|
}
|
||||||
@@ -856,7 +854,7 @@ namespace EightBit
|
|||||||
|
|
||||||
private void AdjustZero(byte datum) => this.ResetFlag(StatusBits.ZF, datum);
|
private void AdjustZero(byte datum) => this.ResetFlag(StatusBits.ZF, datum);
|
||||||
|
|
||||||
private void AdjustNegative(byte datum) => SetFlag(StatusBits.NF, NegativeTest(datum));
|
private void AdjustNegative(byte datum) => this.SetFlag(StatusBits.NF, NegativeTest(datum));
|
||||||
|
|
||||||
private void AdjustNZ(byte datum)
|
private void AdjustNZ(byte datum)
|
||||||
{
|
{
|
||||||
@@ -874,8 +872,8 @@ namespace EightBit
|
|||||||
var relative = (sbyte)this.Bus.Data;
|
var relative = (sbyte)this.Bus.Data;
|
||||||
this.Swallow();
|
this.Swallow();
|
||||||
this.NoteFixedAddress(this.PC.Word + relative);
|
this.NoteFixedAddress(this.PC.Word + relative);
|
||||||
this.Jump(this.intermediate.Word);
|
|
||||||
this.MaybeFixup();
|
this.MaybeFixup();
|
||||||
|
this.Jump(this.Bus.Address.Word);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1261,5 +1259,4 @@ namespace EightBit
|
|||||||
this.ModifyWrite(this.DEC());
|
this.ModifyWrite(this.DEC());
|
||||||
this.CMP(this.A);
|
this.CMP(this.A);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
+1
-2
@@ -4,9 +4,8 @@
|
|||||||
|
|
||||||
namespace EightBit
|
namespace EightBit
|
||||||
{
|
{
|
||||||
using System;
|
|
||||||
|
|
||||||
[Flags]
|
[Flags]
|
||||||
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1028:Enum Storage should be Int32", Justification = "Must be castable to byte")]
|
||||||
public enum StatusBits : byte
|
public enum StatusBits : byte
|
||||||
{
|
{
|
||||||
None = 0,
|
None = 0,
|
||||||
|
|||||||
+1
-5
@@ -4,10 +4,6 @@
|
|||||||
|
|
||||||
namespace EightBit
|
namespace EightBit
|
||||||
{
|
{
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.IO;
|
|
||||||
|
|
||||||
public class Symbols
|
public class Symbols
|
||||||
{
|
{
|
||||||
private readonly Dictionary<string, Dictionary<string, Dictionary<string, string>>> parsed = [];
|
private readonly Dictionary<string, Dictionary<string, Dictionary<string, string>>> parsed = [];
|
||||||
@@ -98,7 +94,7 @@ namespace EightBit
|
|||||||
{
|
{
|
||||||
if (!this.parsed.ContainsKey(type))
|
if (!this.parsed.ContainsKey(type))
|
||||||
{
|
{
|
||||||
this.parsed[type] = new Dictionary<string, Dictionary<string, string>>();
|
this.parsed[type] = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
var id = data["id"];
|
var id = data["id"];
|
||||||
|
|||||||
Reference in New Issue
Block a user