From 4c040a1583a3d12f67b6afda8e98a90710cdc826 Mon Sep 17 00:00:00 2001 From: Kevin Ferrare Date: Tue, 29 Sep 2026 22:41:01 +0200 Subject: [PATCH] feat: Better constants in generated code --- .../CfgCpu/Ast/Value/Constant/ConstantNode.cs | 18 +- .../CfgCodeGeneration/CSharpAstEmitter.cs | 82 +- .../CfgCodeGeneration/Model/CSharpFragment.cs | 8 +- .../CSharpAstEmitterConstantTest.cs | 90 ++ .../CSharpAstEmitterFragmentTest.cs | 18 +- .../Ast/Value/Constant/ConstantNodeTest.cs | 36 + .../res/GeneratedCode/add.spec.cs.txt | 202 +-- .../res/GeneratedCode/bcdcnv.spec.cs.txt | 340 ++-- .../res/GeneratedCode/bitwise.spec.cs.txt | 214 +-- .../res/GeneratedCode/cmpneg.spec.cs.txt | 146 +- .../res/GeneratedCode/control.spec.cs.txt | 14 +- .../res/GeneratedCode/datatrnf.spec.cs.txt | 96 +- .../res/GeneratedCode/div.spec.cs.txt | 464 +++--- .../res/GeneratedCode/div2.spec.cs.txt | 22 +- .../GeneratedCode/divfaultloop.spec.cs.txt | 34 +- .../GeneratedCode/externalint.pit.spec.cs.txt | 44 +- .../GeneratedCode/intchain.ivt.spec.cs.txt | 34 +- .../res/GeneratedCode/interrupt.spec.cs.txt | 56 +- .../res/GeneratedCode/jmpmov.spec.cs.txt | 58 +- .../res/GeneratedCode/jump1.spec.cs.txt | 32 +- .../res/GeneratedCode/jump2.spec.cs.txt | 66 +- ...nearsamesegmenteddifferent.a20.spec.cs.txt | 24 +- .../res/GeneratedCode/lockprefix.spec.cs.txt | 32 +- .../res/GeneratedCode/mul.spec.cs.txt | 286 ++-- .../multimisalignedcall.spec.cs.txt | 32 +- .../partition_cross_function_loop.spec.cs.txt | 12 +- .../partition_indirect_call_jump.spec.cs.txt | 12 +- ...tion_jump_into_function_middle.spec.cs.txt | 10 +- ...rtition_mixed_activation_cycle.spec.cs.txt | 12 +- ...n_multi_entry_dominated_shared.spec.cs.txt | 24 +- ...multi_entry_irreducible_shared.spec.cs.txt | 16 +- ...tition_mutual_recursion_unwind.spec.cs.txt | 20 +- .../partition_shared_tail.spec.cs.txt | 12 +- .../pushcs_callnear_retfar.spec.cs.txt | 12 +- .../res/GeneratedCode/rep.spec.cs.txt | 296 ++-- .../returnedterminator.spec.cs.txt | 8 +- .../res/GeneratedCode/rotate.spec.cs.txt | 186 +-- .../res/GeneratedCode/segpr.spec.cs.txt | 82 +- .../GeneratedCode/selfmodifycall.spec.cs.txt | 18 +- .../selfmodifycalltarget.spec.cs.txt | 30 +- .../selfmodifyinstructions.spec.cs.txt | 26 +- .../GeneratedCode/selfmodifyje.spec.cs.txt | 14 +- .../selfmodifyterminator.spec.cs.txt | 26 +- .../GeneratedCode/selfmodifyvalue.spec.cs.txt | 12 +- .../res/GeneratedCode/shifts.spec.cs.txt | 140 +- .../speculative_branch.spec.cs.txt | 10 +- .../speculative_call_entry.spec.cs.txt | 12 +- .../speculative_closure.spec.cs.txt | 14 +- .../speculative_convergence.spec.cs.txt | 12 +- .../speculative_discard.spec.cs.txt | 10 +- .../speculative_invalid_opcode.spec.cs.txt | 8 +- .../speculative_mixed_block.spec.cs.txt | 12 +- .../speculative_smc_guard.spec.cs.txt | 12 +- .../res/GeneratedCode/sticli.spec.cs.txt | 4 +- .../GeneratedCode/stipending.pit.spec.cs.txt | 52 +- .../res/GeneratedCode/strings.spec.cs.txt | 42 +- .../res/GeneratedCode/sub.spec.cs.txt | 202 +-- .../test386.failport.spec.cs.txt | 1404 ++++++++--------- 58 files changed, 2707 insertions(+), 2503 deletions(-) create mode 100644 tests/Spice86.Tests/CfgCodeGeneration/CSharpAstEmitterConstantTest.cs diff --git a/src/Spice86.Core/Emulator/CPU/CfgCpu/Ast/Value/Constant/ConstantNode.cs b/src/Spice86.Core/Emulator/CPU/CfgCpu/Ast/Value/Constant/ConstantNode.cs index 75caf21941..21e342ca62 100644 --- a/src/Spice86.Core/Emulator/CPU/CfgCpu/Ast/Value/Constant/ConstantNode.cs +++ b/src/Spice86.Core/Emulator/CPU/CfgCpu/Ast/Value/Constant/ConstantNode.cs @@ -38,7 +38,10 @@ public ulong Convert(DataType targetType) { return Value & Mask(targetType.BitWidth); } - private ulong Mask(BitWidth bitWidth) { + /// + /// Returns the bit mask covering the given bit width. + /// + public static ulong Mask(BitWidth bitWidth) { return bitWidth switch { BitWidth.NIBBLE_4 => 0x0F, BitWidth.QUIBBLE_5 => 0b11111, @@ -51,6 +54,19 @@ private ulong Mask(BitWidth bitWidth) { }; } + /// + /// Converts the value the way an unchecked C# cast does: a signed source is sign-extended before + /// truncation to the target width, regardless of the target's signedness. Converting to bool yields 1 for + /// any non-zero value. + /// + public ulong ConvertAsCSharpCast(DataType targetType) { + if (targetType == DataType.BOOL) { + return Value == 0 ? 0UL : 1UL; + } + long widened = DataType.Signed ? SignedValue : unchecked((long)Value); + return unchecked((ulong)widened) & Mask(targetType.BitWidth); + } + public override T Accept(IAstVisitor astVisitor) { return astVisitor.VisitConstantNode(this); } diff --git a/src/Spice86.Core/Emulator/ReverseEngineer/CfgCodeGeneration/CSharpAstEmitter.cs b/src/Spice86.Core/Emulator/ReverseEngineer/CfgCodeGeneration/CSharpAstEmitter.cs index 4c3f3bfd77..8233bbbf30 100644 --- a/src/Spice86.Core/Emulator/ReverseEngineer/CfgCodeGeneration/CSharpAstEmitter.cs +++ b/src/Spice86.Core/Emulator/ReverseEngineer/CfgCodeGeneration/CSharpAstEmitter.cs @@ -16,6 +16,7 @@ namespace Spice86.Core.Emulator.ReverseEngineer.CfgCodeGeneration; using Spice86.Core.Emulator.ReverseEngineer.FunctionPartitioning.Model; using Spice86.Shared.Emulator.Memory; +using System.Globalization; using System.Linq; using System.Reflection; @@ -184,13 +185,13 @@ public EmittedCode VisitInterruptCallNode(InterruptCallNode node) { CallContinuation continuation = Context.ResolveCallContinuation(node.Instruction); SegmentedAddress expectedReturn = continuation.ExpectedReturnAddress; return EmittedCode.Concat( - EmittedCode.Line($"InterruptCall({Context.GetSegmentVariable(expectedReturn.Segment)}, 0x{expectedReturn.Offset:X4}, unchecked((byte)({Expr(node.VectorNumber)})));"), + EmittedCode.Line($"InterruptCall({Context.GetSegmentVariable(expectedReturn.Segment)}, 0x{expectedReturn.Offset:X4}, {Cast(DataType.UINT8, Expr(node.VectorNumber))});"), Transfer.EmitPostCallContinuation(node.Instruction, continuation, CurrentMethod)); } public EmittedCode VisitCallbackNode(CallbackNode node) => EmittedCode.Concat( - EmittedCode.Line($"Callback(unchecked((ushort)({Expr(node.CallbackNumber)})));"), + EmittedCode.Line($"Callback({Cast(DataType.UINT16, Expr(node.CallbackNumber))});"), Transfer.EmitFallthroughIfNeeded(node.Instruction, CurrentMethod)); public EmittedCode VisitSelectorNode(SelectorNode node) => LowerSelector(node.CfgSelector); @@ -549,20 +550,7 @@ public EmittedCode VisitSegmentedPointer(SegmentedPointerNode node) { public EmittedCode VisitAbsolutePointerNode(AbsolutePointerNode node) => Atomic($"{ToMemoryIndexer(node.DataType)}[unchecked((uint)({Expr(node.AbsoluteAddress)}))]", node.DataType); - public EmittedCode VisitConstantNode(ConstantNode node) { - if (node.DataType == DataType.BOOL) { - return Atomic(node.Value == 0 ? "false" : "true", DataType.BOOL); - } - - string literal = node.DataType.BitWidth switch { - BitWidth.BYTE_8 => node.DataType.Signed ? $"(sbyte){node.SignedValue}" : $"(byte)0x{node.Value:X2}", - BitWidth.WORD_16 => node.DataType.Signed ? $"(short){node.SignedValue}" : $"(ushort)0x{node.Value:X4}", - BitWidth.DWORD_32 or BitWidth.BOOL_1 => node.DataType.Signed ? $"{node.SignedValue}" : $"0x{node.Value:X8}u", - BitWidth.QWORD_64 => node.DataType.Signed ? $"{node.SignedValue}L" : $"0x{node.Value:X16}UL", - _ => throw Unsupported(node) - }; - return Atomic(literal, node.DataType); - } + public EmittedCode VisitConstantNode(ConstantNode node) => ConstantLiteral(node); public EmittedCode VisitNearAddressNode(NearAddressNode node) => VisitConstantNode(node); @@ -613,7 +601,8 @@ public EmittedCode VisitUnaryOperationNode(UnaryOperationNode node) { UnaryOperation.BITWISE_NOT => "~", _ => throw Unsupported(node) }; - string operand = Parenthesize(Expr(node.Value), UnaryPrecedence); + int operandPrecedence = node.UnaryOperation == UnaryOperation.NEGATE ? UnaryPrecedence + 1 : UnaryPrecedence; + string operand = Parenthesize(Expr(node.Value), operandPrecedence); // Logical NOT yields bool; arithmetic/bitwise unary ops promote to int, so their evaluated type is // not the node's semantic DataType. DataType? resultType = node.UnaryOperation == UnaryOperation.NOT ? DataType.BOOL : null; @@ -622,6 +611,9 @@ public EmittedCode VisitUnaryOperationNode(UnaryOperationNode node) { public EmittedCode VisitTypeConversionNode(TypeConversionNode node) { CSharpFragment inner = Expr(node.Value); + if (inner.Constant is ConstantNode constant) { + return ConstantLiteral(new ConstantNode(node.DataType, constant.ConvertAsCSharpCast(node.DataType))); + } if (inner.Type == node.DataType || node.DataType == DataType.BOOL && inner.Type == DataType.BOOL) { // Converting to a type the value already has is a no-op; keep the inner fragment as-is. return inner; @@ -654,7 +646,7 @@ public EmittedCode VisitVariableDeclarationNode(VariableDeclarationNode node) => (CSharpFragment)$"{ToCSharpType(node.DataType)} {LocalVariableName(node.VariableName)} = {Cast(node.DataType, Expr(node.Initializer))}"; public EmittedCode VisitInstructionNode(InstructionNode node) => throw Unsupported(node); public EmittedCode VisitSegmentedAddressNode(SegmentedAddressNode node) => - (CSharpFragment)$"new SegmentedAddress(unchecked((ushort)({Expr(node.Segment)})), unchecked((ushort)({Expr(node.Offset)})))"; + (CSharpFragment)$"new SegmentedAddress({Cast(DataType.UINT16, Expr(node.Segment))}, {Cast(DataType.UINT16, Expr(node.Offset))})"; private string NearRetExpression(ReturnNearNode node) { string helperName = node.RetBitWidth == BitWidth.WORD_16 ? "NearRet" : "NearRet32"; @@ -725,6 +717,60 @@ private static string Cast(Type targetType, CSharpFragment expression) { private static CSharpFragment Atomic(string text, DataType type) => new(text, type, CSharpFragment.AtomicPrecedence); + /// + /// Renders a constant as a C# literal: magnitudes 0-9 in decimal, larger ones in hex zero-padded to the + /// operand width, a leading minus for negative signed values, and a suffix where C# needs one. + /// + internal static CSharpFragment ConstantLiteral(ConstantNode node) { + if (node.DataType == DataType.BOOL) { + return new CSharpFragment(node.Value == 0 ? "false" : "true", DataType.BOOL, CSharpFragment.AtomicPrecedence) { Constant = node }; + } + string? minValueName = MinValueName(node); + if (minValueName is not null) { + return new CSharpFragment(minValueName, node.DataType, CSharpFragment.AtomicPrecedence) { Constant = node }; + } + bool negative = node.IsNegative; + ulong magnitude = negative ? (ulong)(-node.SignedValue) : node.Value; + string sign = negative ? "-" : ""; + string text = sign + FormatMagnitude(magnitude, node.DataType.BitWidth) + LiteralSuffix(node.DataType, node.Value); + int precedence = negative ? UnaryPrecedence : CSharpFragment.AtomicPrecedence; + return new CSharpFragment(text, node.DataType, precedence) { Constant = node }; + } + + private static string? MinValueName(ConstantNode node) { + if (node.DataType == DataType.INT32 && node.SignedValue == int.MinValue) { + return "int.MinValue"; + } + if (node.DataType == DataType.INT64 && node.SignedValue == long.MinValue) { + return "long.MinValue"; + } + return null; + } + + private static string FormatMagnitude(ulong value, BitWidth width) { + if (value <= 9) { + return value.ToString(CultureInfo.InvariantCulture); + } + int hexDigits = width switch { + BitWidth.BYTE_8 => 2, + BitWidth.WORD_16 => 4, + BitWidth.DWORD_32 or BitWidth.BOOL_1 => 8, + BitWidth.QWORD_64 => 16, + _ => throw new NotSupportedException($"Unsupported bit width {width}") + }; + return "0x" + value.ToString("X" + hexDigits, CultureInfo.InvariantCulture); + } + + private static string LiteralSuffix(DataType dataType, ulong value) { + if (dataType.BitWidth == BitWidth.QWORD_64) { + return dataType.Signed ? "L" : "UL"; + } + if (!dataType.Signed && dataType.BitWidth == BitWidth.DWORD_32 && value > int.MaxValue) { + return "u"; + } + return ""; + } + /// /// Renders a memory-indexer offset. A constant or single register/variable offset is emitted directly /// (the indexer has a ushort overload); a compound arithmetic offset is wrapped in diff --git a/src/Spice86.Core/Emulator/ReverseEngineer/CfgCodeGeneration/Model/CSharpFragment.cs b/src/Spice86.Core/Emulator/ReverseEngineer/CfgCodeGeneration/Model/CSharpFragment.cs index 141fab0269..1e3281e523 100644 --- a/src/Spice86.Core/Emulator/ReverseEngineer/CfgCodeGeneration/Model/CSharpFragment.cs +++ b/src/Spice86.Core/Emulator/ReverseEngineer/CfgCodeGeneration/Model/CSharpFragment.cs @@ -1,6 +1,7 @@ namespace Spice86.Core.Emulator.ReverseEngineer.CfgCodeGeneration.Model; using Spice86.Core.Emulator.CPU.CfgCpu.Ast; +using Spice86.Core.Emulator.CPU.CfgCpu.Ast.Value.Constant; /// /// A piece of generated C# emitted by for an execution-AST node. It carries @@ -8,9 +9,11 @@ namespace Spice86.Core.Emulator.ReverseEngineer.CfgCodeGeneration.Model; /// /// : the C# data type the expression evaluates to, or null when unknown /// (e.g. the int-promoted result of binary arithmetic). A cast to a type the fragment already has is -/// skipped. +/// skipped. For a constant literal this is the constant's semantic type; the literal itself may be an unsuffixed C# +/// int, which C# implicitly converts to any integral type that can hold the value. /// : the binding strength of the top-level operator, used to drop parentheses /// that are not required by C# precedence. +/// : the source constant when the fragment is a literal, used to fold conversions of constants. /// /// Implicit conversions to/from keep interpolation transparent; a raw string is treated /// as an atomic expression of unknown type. @@ -19,6 +22,9 @@ internal readonly record struct CSharpFragment(string Text, DataType? Type, int /// Precedence of a primary expression (literal, identifier, call, indexer, cast, parenthesized). public const int AtomicPrecedence = 13; + /// The constant this fragment renders, or null when the fragment is not a constant literal. + public ConstantNode? Constant { get; init; } + public CSharpFragment(string Text) : this(Text, null, AtomicPrecedence) { } diff --git a/tests/Spice86.Tests/CfgCodeGeneration/CSharpAstEmitterConstantTest.cs b/tests/Spice86.Tests/CfgCodeGeneration/CSharpAstEmitterConstantTest.cs new file mode 100644 index 0000000000..4c9ca13696 --- /dev/null +++ b/tests/Spice86.Tests/CfgCodeGeneration/CSharpAstEmitterConstantTest.cs @@ -0,0 +1,90 @@ +namespace Spice86.Tests.CfgCodeGeneration; + +using FluentAssertions; + +using Spice86.Core.Emulator.CPU.CfgCpu.Ast; +using Spice86.Core.Emulator.CPU.CfgCpu.Ast.Value.Constant; +using Spice86.Core.Emulator.ReverseEngineer.CfgCodeGeneration; +using Spice86.Core.Emulator.ReverseEngineer.CfgCodeGeneration.Model; +using Spice86.Shared.Emulator.Memory; + +using Xunit; + +/// +/// Unit tests for constant literal rendering in . +/// +public class CSharpAstEmitterConstantTest { + public static TheoryData ConstantLiteralCases => new() { + // BOOL + { DataType.BOOL, 0UL, "false", true }, + { DataType.BOOL, 1UL, "true", true }, + + // UINT8 + { DataType.UINT8, 0UL, "0", true }, + { DataType.UINT8, 9UL, "9", true }, + { DataType.UINT8, 0x0AUL, "0x0A", true }, + { DataType.UINT8, 0xFFUL, "0xFF", true }, + + // UINT16 + { DataType.UINT16, 0UL, "0", true }, + { DataType.UINT16, 9UL, "9", true }, + { DataType.UINT16, 0x0AUL, "0x000A", true }, + { DataType.UINT16, 0xFFUL, "0x00FF", true }, + { DataType.UINT16, 0xFFFFUL, "0xFFFF", true }, + + // UINT32 + { DataType.UINT32, 0UL, "0", true }, + { DataType.UINT32, 0x0AUL, "0x0000000A", true }, + { DataType.UINT32, 0x7FFFFFFFUL, "0x7FFFFFFF", true }, + { DataType.UINT32, 0x80000000UL, "0x80000000u", true }, + { DataType.UINT32, 0xFFFFFFFFUL, "0xFFFFFFFFu", true }, + + // UINT64 + { DataType.UINT64, 1UL, "1UL", true }, + { DataType.UINT64, 0xFFFFFFFFFFFFFFFFUL, "0xFFFFFFFFFFFFFFFFUL", true }, + + // INT8 + { DataType.INT8, 0xFEUL, "-2", false }, + { DataType.INT8, 0xF7UL, "-9", false }, + { DataType.INT8, 0xF6UL, "-0x0A", false }, + { DataType.INT8, 0x80UL, "-0x80", false }, + { DataType.INT8, 0UL, "0", true }, + { DataType.INT8, 9UL, "9", true }, + { DataType.INT8, 0x0AUL, "0x0A", true }, + { DataType.INT8, 0x7FUL, "0x7F", true }, + + // INT16 + { DataType.INT16, 0xFFFEUL, "-2", false }, + { DataType.INT16, 0xFF80UL, "-0x0080", false }, + { DataType.INT16, 0x8000UL, "-0x8000", false }, + { DataType.INT16, 0x7FFFUL, "0x7FFF", true }, + + // INT32 + { DataType.INT32, 0xFFFFFFFEUL, "-2", false }, + { DataType.INT32, 0xFFFFFF80UL, "-0x00000080", false }, + { DataType.INT32, 0x80000000UL, "int.MinValue", true }, + { DataType.INT32, 0x7FFFFFFFUL, "0x7FFFFFFF", true }, + + // INT64 + { DataType.INT64, 0xFFFFFFFFFFFFFFFFUL, "-1L", false }, + { DataType.INT64, 0UL, "0L", true }, + { DataType.INT64, 0x10UL, "0x0000000000000010L", true }, + { DataType.INT64, 0x8000000000000000UL, "long.MinValue", true } + }; + + [Theory] + [MemberData(nameof(ConstantLiteralCases))] + public void ConstantLiteral_RendersCorrectLiteral(DataType dataType, ulong value, string expectedText, bool expectedAtomic) { + // Arrange + ConstantNode node = new(dataType, value); + + // Act + CSharpFragment fragment = CSharpAstEmitter.ConstantLiteral(node); + + // Assert + fragment.Text.Should().Be(expectedText); + fragment.Type.Should().Be(dataType); + fragment.Constant.Should().Be(node); + (fragment.Precedence == CSharpFragment.AtomicPrecedence).Should().Be(expectedAtomic); + } +} diff --git a/tests/Spice86.Tests/CfgCodeGeneration/CSharpAstEmitterFragmentTest.cs b/tests/Spice86.Tests/CfgCodeGeneration/CSharpAstEmitterFragmentTest.cs index 338c9009c7..ecfaf5a39a 100644 --- a/tests/Spice86.Tests/CfgCodeGeneration/CSharpAstEmitterFragmentTest.cs +++ b/tests/Spice86.Tests/CfgCodeGeneration/CSharpAstEmitterFragmentTest.cs @@ -47,12 +47,12 @@ public void RegisterNodeRendersBareRegisterName() { } [Fact] - public void ConstantNodeRendersTypedLiteral() { + public void ConstantNodeRendersUnprefixedLiteral() { ConstantNode constant = new(DataType.UINT16, 0x111C); CSharpFragment fragment = constant.Accept(_emitter).AsExpression(); - fragment.Text.Should().Be("(ushort)0x111C"); + fragment.Text.Should().Be("0x111C"); } [Fact] @@ -64,7 +64,7 @@ public void SegmentedPointerNodeRendersMemoryIndexer() { CSharpFragment fragment = pointer.Accept(_emitter).AsExpression(); // A constant offset is emitted directly (the indexer has a ushort overload), not wrapped in (uint). - fragment.Text.Should().Be("UInt16[DS, (ushort)0x0050]"); + fragment.Text.Should().Be("UInt16[DS, 0x0050]"); } [Fact] @@ -76,7 +76,17 @@ public void BinaryOperationNodeRendersParenthesizedExpression() { CSharpFragment fragment = addition.Accept(_emitter).AsExpression(); // Redundant outer parentheses are dropped; precedence-required ones are kept. - fragment.Text.Should().Be("AX + (ushort)0x0001"); + fragment.Text.Should().Be("AX + 1"); + } + + [Fact] + public void NegateOfNegativeConstantIsParenthesized() { + ConstantNode inner = new(DataType.INT16, 0xFFFE); // -2 + UnaryOperationNode negate = new(DataType.INT16, UnaryOperation.NEGATE, inner); + + CSharpFragment fragment = negate.Accept(_emitter).AsExpression(); + + fragment.Text.Should().Be("-(-2)"); } [Fact] diff --git a/tests/Spice86.Tests/CfgCpu/Ast/Value/Constant/ConstantNodeTest.cs b/tests/Spice86.Tests/CfgCpu/Ast/Value/Constant/ConstantNodeTest.cs index 321df978ec..f4c72ea34b 100644 --- a/tests/Spice86.Tests/CfgCpu/Ast/Value/Constant/ConstantNodeTest.cs +++ b/tests/Spice86.Tests/CfgCpu/Ast/Value/Constant/ConstantNodeTest.cs @@ -1,5 +1,6 @@ using Spice86.Core.Emulator.CPU.CfgCpu.Ast; using Spice86.Core.Emulator.CPU.CfgCpu.Ast.Value.Constant; +using Spice86.Shared.Emulator.Memory; using Xunit; namespace Spice86.Tests.CfgCpu.Ast.Value.Constant; @@ -110,4 +111,39 @@ public void Convert_Nibble_To_Byte_Unsigned() { ulong result = node.Convert(DataType.UINT8); Assert.Equal(0x0Fu, result); } + + public static TheoryData CSharpCastCases => new() { + { DataType.INT8, 0xFF, DataType.UINT16, 0xFFFF }, + { DataType.INT16, 0xFFFF, DataType.UINT32, 0xFFFFFFFF }, + { DataType.UINT16, 0x8000, DataType.INT16, 0x8000 }, + { DataType.UINT8, 0xFF, DataType.INT8, 0xFF }, + { DataType.UINT16, 0x1234, DataType.UINT8, 0x34 }, + { DataType.UINT8, 0x00, DataType.BOOL, 0 }, + { DataType.UINT16, 0x0100, DataType.BOOL, 1 } + }; + + [Theory] + [MemberData(nameof(CSharpCastCases))] + public void ConvertAsCSharpCast_MatchesUncheckedCSharpCast(DataType sourceType, ulong sourceValue, DataType targetType, ulong expected) { + // Arrange + ConstantNode node = new(sourceType, sourceValue); + + // Act + ulong result = node.ConvertAsCSharpCast(targetType); + + // Assert + Assert.Equal(expected, result); + } + + [Theory] + [InlineData(BitWidth.NIBBLE_4, 0x0FUL)] + [InlineData(BitWidth.QUIBBLE_5, 0x1FUL)] + [InlineData(BitWidth.BYTE_8, 0xFFUL)] + [InlineData(BitWidth.WORD_16, 0xFFFFUL)] + [InlineData(BitWidth.DWORD_32, 0xFFFFFFFFUL)] + [InlineData(BitWidth.BOOL_1, 0x1UL)] + [InlineData(BitWidth.QWORD_64, 0xFFFFFFFFFFFFFFFFUL)] + public void Mask_CoversBitWidth(BitWidth bitWidth, ulong expected) { + Assert.Equal(expected, ConstantNode.Mask(bitWidth)); + } } diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/add.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/add.spec.cs.txt index 48c0c1f04f..01c460ff37 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/add.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/add.spec.cs.txt @@ -31,287 +31,287 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov SP,0x00A0 - SP = (ushort)0x00A0; + SP = 0x00A0; // F000:0003 mov AX,0xFFFF - AX = (ushort)0xFFFF; + AX = 0xFFFF; // F000:0006 mov BX,1 - BX = (ushort)0x0001; + BX = 1; // F000:0009 add BX,AX BX = Alu16.Add(BX, AX); // F000:000B mov word ptr DS:[0],AX - UInt16[DS, (ushort)0x0000] = AX; + UInt16[DS, 0] = AX; // F000:000E mov word ptr DS:[2],BX - UInt16[DS, (ushort)0x0002] = BX; + UInt16[DS, 2] = BX; // F000:0012 pushf Stack.Push16(FlagRegister16); // F000:0013 mov DX,0xFFFF - DX = (ushort)0xFFFF; + DX = 0xFFFF; // F000:0016 mov word ptr DS:[4],0xFFFF - UInt16[DS, (ushort)0x0004] = (ushort)0xFFFF; + UInt16[DS, 4] = 0xFFFF; // F000:001C add word ptr DS:[4],DX - UInt16[DS, (ushort)0x0004] = Alu16.Add(UInt16[DS, (ushort)0x0004], DX); + UInt16[DS, 4] = Alu16.Add(UInt16[DS, 4], DX); // F000:0020 mov word ptr DS:[6],DX - UInt16[DS, (ushort)0x0006] = DX; + UInt16[DS, 6] = DX; // F000:0024 pushf Stack.Push16(FlagRegister16); // F000:0025 mov CX,1 - CX = (ushort)0x0001; + CX = 1; // F000:0028 mov word ptr DS:[8],2 - UInt16[DS, (ushort)0x0008] = (ushort)0x0002; + UInt16[DS, 8] = 2; // F000:002E add CX,word ptr DS:[8] - CX = Alu16.Add(CX, UInt16[DS, (ushort)0x0008]); + CX = Alu16.Add(CX, UInt16[DS, 8]); // F000:0032 mov word ptr DS:[0x000A],CX - UInt16[DS, (ushort)0x000A] = CX; + UInt16[DS, 0x000A] = CX; // F000:0036 pushf Stack.Push16(FlagRegister16); // F000:0037 mov AX,1 - AX = (ushort)0x0001; + AX = 1; // F000:003A add AX,0x7FFF - AX = Alu16.Add(AX, (ushort)0x7FFF); + AX = Alu16.Add(AX, 0x7FFF); // F000:003D mov word ptr DS:[0x000C],AX - UInt16[DS, (ushort)0x000C] = AX; + UInt16[DS, 0x000C] = AX; // F000:0040 pushf Stack.Push16(FlagRegister16); // F000:0041 mov BP,0x8000 - BP = (ushort)0x8000; + BP = 0x8000; // F000:0044 add BP,-1 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)-1))); + BP = Alu16.Add(BP, 0xFFFF); // F000:0047 mov word ptr DS:[0x000E],BP - UInt16[DS, (ushort)0x000E] = BP; + UInt16[DS, 0x000E] = BP; // F000:004B pushf Stack.Push16(FlagRegister16); // F000:004C mov SI,0xC783 - SI = (ushort)0xC783; + SI = 0xC783; // F000:004F add SI,0xEB2A - SI = Alu16.Add(SI, (ushort)0xEB2A); + SI = Alu16.Add(SI, 0xEB2A); // F000:0053 mov word ptr DS:[0x0010],SI - UInt16[DS, (ushort)0x0010] = SI; + UInt16[DS, 0x0010] = SI; // F000:0057 pushf Stack.Push16(FlagRegister16); // F000:0058 mov word ptr DS:[0x0012],0x8960 - UInt16[DS, (ushort)0x0012] = (ushort)0x8960; + UInt16[DS, 0x0012] = 0x8960; // F000:005E add word ptr DS:[0x0012],0x0A95 - UInt16[DS, (ushort)0x0012] = Alu16.Add(UInt16[DS, (ushort)0x0012], (ushort)0x0A95); + UInt16[DS, 0x0012] = Alu16.Add(UInt16[DS, 0x0012], 0x0A95); // F000:0064 pushf Stack.Push16(FlagRegister16); // F000:0065 mov word ptr DS:[0x0014],0xF1E1 - UInt16[DS, (ushort)0x0014] = (ushort)0xF1E1; + UInt16[DS, 0x0014] = 0xF1E1; // F000:006B add word ptr DS:[0x0014],0x0064 - UInt16[DS, (ushort)0x0014] = Alu16.Add(UInt16[DS, (ushort)0x0014], unchecked((ushort)unchecked((short)(sbyte)100))); + UInt16[DS, 0x0014] = Alu16.Add(UInt16[DS, 0x0014], 0x0064); // F000:0070 pushf Stack.Push16(FlagRegister16); // F000:0071 mov byte ptr DS:[0x0016],1 - UInt8[DS, (ushort)0x0016] = (byte)0x01; + UInt8[DS, 0x0016] = 1; // F000:0076 add byte ptr DS:[0x0016],0xFF - UInt8[DS, (ushort)0x0016] = Alu8.Add(UInt8[DS, (ushort)0x0016], (byte)0xFF); + UInt8[DS, 0x0016] = Alu8.Add(UInt8[DS, 0x0016], 0xFF); // F000:007B pushf Stack.Push16(FlagRegister16); // F000:007C mov DH,0xFF - DH = (byte)0xFF; + DH = 0xFF; // F000:007E add DH,0xFF - DH = Alu8.Add(DH, (byte)0xFF); + DH = Alu8.Add(DH, 0xFF); // F000:0081 mov word ptr DS:[0x0017],DX - UInt16[DS, (ushort)0x0017] = DX; + UInt16[DS, 0x0017] = DX; // F000:0085 pushf Stack.Push16(FlagRegister16); // F000:0086 mov AL,1 - AL = (byte)0x01; + AL = 1; // F000:0088 add AL,2 - AL = Alu8.Add(AL, (byte)0x02); + AL = Alu8.Add(AL, 2); // F000:008A mov word ptr DS:[0x0019],AX - UInt16[DS, (ushort)0x0019] = AX; + UInt16[DS, 0x0019] = AX; // F000:008D pushf Stack.Push16(FlagRegister16); // F000:008E mov byte ptr DS:[0x001B],0x7F - UInt8[DS, (ushort)0x001B] = (byte)0x7F; + UInt8[DS, 0x001B] = 0x7F; // F000:0093 mov CH,1 - CH = (byte)0x01; + CH = 1; // F000:0095 add CH,byte ptr DS:[0x001B] - CH = Alu8.Add(CH, UInt8[DS, (ushort)0x001B]); + CH = Alu8.Add(CH, UInt8[DS, 0x001B]); // F000:0099 mov word ptr DS:[0x001C],CX - UInt16[DS, (ushort)0x001C] = CX; + UInt16[DS, 0x001C] = CX; // F000:009D pushf Stack.Push16(FlagRegister16); // F000:009E mov BL,0x80 - BL = (byte)0x80; + BL = 0x80; // F000:00A0 mov byte ptr DS:[0x001E],0xFF - UInt8[DS, (ushort)0x001E] = (byte)0xFF; + UInt8[DS, 0x001E] = 0xFF; // F000:00A5 add byte ptr DS:[0x001E],BL - UInt8[DS, (ushort)0x001E] = Alu8.Add(UInt8[DS, (ushort)0x001E], BL); + UInt8[DS, 0x001E] = Alu8.Add(UInt8[DS, 0x001E], BL); // F000:00A9 mov word ptr DS:[0x001F],BX - UInt16[DS, (ushort)0x001F] = BX; + UInt16[DS, 0x001F] = BX; // F000:00AD pushf Stack.Push16(FlagRegister16); // F000:00AE mov AL,0xA6 - AL = (byte)0xA6; + AL = 0xA6; // F000:00B0 mov AH,0x86 - AH = (byte)0x86; + AH = 0x86; // F000:00B2 add AH,AL AH = Alu8.Add(AH, AL); // F000:00B4 mov word ptr DS:[0x0021],AX - UInt16[DS, (ushort)0x0021] = AX; + UInt16[DS, 0x0021] = AX; // F000:00B7 pushf Stack.Push16(FlagRegister16); // F000:00B8 mov AX,0xFFFF - AX = (ushort)0xFFFF; + AX = 0xFFFF; // F000:00BB mov BX,1 - BX = (ushort)0x0001; + BX = 1; // F000:00BE adc BX,AX BX = Alu16.Adc(BX, AX); // F000:00C0 mov word ptr DS:[0x0023],AX - UInt16[DS, (ushort)0x0023] = AX; + UInt16[DS, 0x0023] = AX; // F000:00C3 mov word ptr DS:[0x0025],BX - UInt16[DS, (ushort)0x0025] = BX; + UInt16[DS, 0x0025] = BX; // F000:00C7 pushf Stack.Push16(FlagRegister16); // F000:00C8 mov DX,0xFFFF - DX = (ushort)0xFFFF; + DX = 0xFFFF; // F000:00CB mov word ptr DS:[0x0027],0xFFFF - UInt16[DS, (ushort)0x0027] = (ushort)0xFFFF; + UInt16[DS, 0x0027] = 0xFFFF; // F000:00D1 adc word ptr DS:[0x0027],DX - UInt16[DS, (ushort)0x0027] = Alu16.Adc(UInt16[DS, (ushort)0x0027], DX); + UInt16[DS, 0x0027] = Alu16.Adc(UInt16[DS, 0x0027], DX); // F000:00D5 mov word ptr DS:[0x0029],DX - UInt16[DS, (ushort)0x0029] = DX; + UInt16[DS, 0x0029] = DX; // F000:00D9 pushf Stack.Push16(FlagRegister16); // F000:00DA mov CX,1 - CX = (ushort)0x0001; + CX = 1; // F000:00DD mov word ptr DS:[0x002B],2 - UInt16[DS, (ushort)0x002B] = (ushort)0x0002; + UInt16[DS, 0x002B] = 2; // F000:00E3 adc CX,word ptr DS:[0x002B] - CX = Alu16.Adc(CX, UInt16[DS, (ushort)0x002B]); + CX = Alu16.Adc(CX, UInt16[DS, 0x002B]); // F000:00E7 mov word ptr DS:[0x002D],CX - UInt16[DS, (ushort)0x002D] = CX; + UInt16[DS, 0x002D] = CX; // F000:00EB pushf Stack.Push16(FlagRegister16); // F000:00EC mov AX,1 - AX = (ushort)0x0001; + AX = 1; // F000:00EF adc AX,0x7FFF - AX = Alu16.Adc(AX, (ushort)0x7FFF); + AX = Alu16.Adc(AX, 0x7FFF); // F000:00F2 mov word ptr DS:[0x002F],AX - UInt16[DS, (ushort)0x002F] = AX; + UInt16[DS, 0x002F] = AX; // F000:00F5 pushf Stack.Push16(FlagRegister16); // F000:00F6 mov BP,0x8000 - BP = (ushort)0x8000; + BP = 0x8000; // F000:00F9 adc BP,-1 - BP = Alu16.Adc(BP, unchecked((ushort)unchecked((short)(sbyte)-1))); + BP = Alu16.Adc(BP, 0xFFFF); // F000:00FC mov word ptr DS:[0x0031],BP - UInt16[DS, (ushort)0x0031] = BP; + UInt16[DS, 0x0031] = BP; // F000:0100 pushf Stack.Push16(FlagRegister16); // F000:0101 mov SI,0x77D3 - SI = (ushort)0x77D3; + SI = 0x77D3; // F000:0104 adc SI,0x8425 - SI = Alu16.Adc(SI, (ushort)0x8425); + SI = Alu16.Adc(SI, 0x8425); // F000:0108 mov word ptr DS:[0x0033],SI - UInt16[DS, (ushort)0x0033] = SI; + UInt16[DS, 0x0033] = SI; // F000:010C pushf Stack.Push16(FlagRegister16); // F000:010D mov word ptr DS:[0x0035],0xEBA0 - UInt16[DS, (ushort)0x0035] = (ushort)0xEBA0; + UInt16[DS, 0x0035] = 0xEBA0; // F000:0113 adc word ptr DS:[0x0035],0xD3C1 - UInt16[DS, (ushort)0x0035] = Alu16.Adc(UInt16[DS, (ushort)0x0035], (ushort)0xD3C1); + UInt16[DS, 0x0035] = Alu16.Adc(UInt16[DS, 0x0035], 0xD3C1); // F000:0119 pushf Stack.Push16(FlagRegister16); // F000:011A mov word ptr DS:[0x0037],0x7F50 - UInt16[DS, (ushort)0x0037] = (ushort)0x7F50; + UInt16[DS, 0x0037] = 0x7F50; // F000:0120 adc word ptr DS:[0x0037],-11 - UInt16[DS, (ushort)0x0037] = Alu16.Adc(UInt16[DS, (ushort)0x0037], unchecked((ushort)unchecked((short)(sbyte)-11))); + UInt16[DS, 0x0037] = Alu16.Adc(UInt16[DS, 0x0037], 0xFFF5); // F000:0125 pushf Stack.Push16(FlagRegister16); // F000:0126 mov byte ptr DS:[0x0039],1 - UInt8[DS, (ushort)0x0039] = (byte)0x01; + UInt8[DS, 0x0039] = 1; // F000:012B adc byte ptr DS:[0x0039],0xFF - UInt8[DS, (ushort)0x0039] = Alu8.Adc(UInt8[DS, (ushort)0x0039], (byte)0xFF); + UInt8[DS, 0x0039] = Alu8.Adc(UInt8[DS, 0x0039], 0xFF); // F000:0130 pushf Stack.Push16(FlagRegister16); // F000:0131 mov DH,0xFF - DH = (byte)0xFF; + DH = 0xFF; // F000:0133 adc DH,0xFF - DH = Alu8.Adc(DH, (byte)0xFF); + DH = Alu8.Adc(DH, 0xFF); // F000:0136 mov word ptr DS:[0x003A],DX - UInt16[DS, (ushort)0x003A] = DX; + UInt16[DS, 0x003A] = DX; // F000:013A pushf Stack.Push16(FlagRegister16); // F000:013B mov AL,1 - AL = (byte)0x01; + AL = 1; // F000:013D adc AL,2 - AL = Alu8.Adc(AL, (byte)0x02); + AL = Alu8.Adc(AL, 2); // F000:013F mov word ptr DS:[0x003C],AX - UInt16[DS, (ushort)0x003C] = AX; + UInt16[DS, 0x003C] = AX; // F000:0142 pushf Stack.Push16(FlagRegister16); // F000:0143 mov byte ptr DS:[0x003E],0x7F - UInt8[DS, (ushort)0x003E] = (byte)0x7F; + UInt8[DS, 0x003E] = 0x7F; // F000:0148 mov CH,1 - CH = (byte)0x01; + CH = 1; // F000:014A adc CH,byte ptr DS:[0x003E] - CH = Alu8.Adc(CH, UInt8[DS, (ushort)0x003E]); + CH = Alu8.Adc(CH, UInt8[DS, 0x003E]); // F000:014E mov word ptr DS:[0x003F],CX - UInt16[DS, (ushort)0x003F] = CX; + UInt16[DS, 0x003F] = CX; // F000:0152 pushf Stack.Push16(FlagRegister16); // F000:0153 mov BL,0x80 - BL = (byte)0x80; + BL = 0x80; // F000:0155 mov byte ptr DS:[0x0041],0xFF - UInt8[DS, (ushort)0x0041] = (byte)0xFF; + UInt8[DS, 0x0041] = 0xFF; // F000:015A adc byte ptr DS:[0x0041],BL - UInt8[DS, (ushort)0x0041] = Alu8.Adc(UInt8[DS, (ushort)0x0041], BL); + UInt8[DS, 0x0041] = Alu8.Adc(UInt8[DS, 0x0041], BL); // F000:015E mov word ptr DS:[0x0042],BX - UInt16[DS, (ushort)0x0042] = BX; + UInt16[DS, 0x0042] = BX; // F000:0162 pushf Stack.Push16(FlagRegister16); // F000:0163 mov AL,0xB9 - AL = (byte)0xB9; + AL = 0xB9; // F000:0165 mov AH,0xD3 - AH = (byte)0xD3; + AH = 0xD3; // F000:0167 adc AH,AL AH = Alu8.Adc(AH, AL); // F000:0169 mov word ptr DS:[0x0044],AX - UInt16[DS, (ushort)0x0044] = AX; + UInt16[DS, 0x0044] = AX; // F000:016C pushf Stack.Push16(FlagRegister16); // F000:016D mov DI,0xFFFF - DI = (ushort)0xFFFF; + DI = 0xFFFF; // F000:0170 inc DI DI = Alu16.Inc(DI); // F000:0171 mov word ptr DS:[0x0046],DI - UInt16[DS, (ushort)0x0046] = DI; + UInt16[DS, 0x0046] = DI; // F000:0175 pushf Stack.Push16(FlagRegister16); // F000:0176 mov BP,0x7FFF - BP = (ushort)0x7FFF; + BP = 0x7FFF; // F000:0179 inc BP BP = Alu16.Inc(BP); // F000:017B mov word ptr DS:[0x0048],BP - UInt16[DS, (ushort)0x0048] = BP; + UInt16[DS, 0x0048] = BP; // F000:017F pushf Stack.Push16(FlagRegister16); // F000:0180 mov word ptr DS:[0x004A],0x7412 - UInt16[DS, (ushort)0x004A] = (ushort)0x7412; + UInt16[DS, 0x004A] = 0x7412; // F000:0186 inc word ptr DS:[0x004A] - UInt16[DS, (ushort)0x004A] = Alu16.Inc(UInt16[DS, (ushort)0x004A]); + UInt16[DS, 0x004A] = Alu16.Inc(UInt16[DS, 0x004A]); // F000:018A pushf Stack.Push16(FlagRegister16); // F000:018B mov DL,0x7F - DL = (byte)0x7F; + DL = 0x7F; // F000:018D inc DL DL = Alu8.Inc(DL); // F000:018F mov word ptr DS:[0x004C],DX - UInt16[DS, (ushort)0x004C] = DX; + UInt16[DS, 0x004C] = DX; // F000:0193 pushf Stack.Push16(FlagRegister16); // F000:0194 mov byte ptr DS:[0x004D],0xFF - UInt8[DS, (ushort)0x004D] = (byte)0xFF; + UInt8[DS, 0x004D] = 0xFF; // F000:0199 inc byte ptr DS:[0x004D] - UInt8[DS, (ushort)0x004D] = Alu8.Inc(UInt8[DS, (ushort)0x004D]); + UInt8[DS, 0x004D] = Alu8.Inc(UInt8[DS, 0x004D]); // F000:019D pushf Stack.Push16(FlagRegister16); // F000:019E mov byte ptr DS:[0x004E],0xB5 - UInt8[DS, (ushort)0x004E] = (byte)0xB5; + UInt8[DS, 0x004E] = 0xB5; // F000:01A3 inc byte ptr DS:[0x004E] - UInt8[DS, (ushort)0x004E] = Alu8.Inc(UInt8[DS, (ushort)0x004E]); + UInt8[DS, 0x004E] = Alu8.Inc(UInt8[DS, 0x004E]); // F000:01A7 pushf Stack.Push16(FlagRegister16); // F000:01A8 hlt diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/bcdcnv.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/bcdcnv.spec.cs.txt index 53ccb255f3..57a36a93df 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/bcdcnv.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/bcdcnv.spec.cs.txt @@ -31,51 +31,51 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov BX,1 - BX = (ushort)0x0001; + BX = 1; // F000:0003 mov CX,0 - CX = (ushort)0x0000; + CX = 0; // F000:0006 mov SP,0x0090 - SP = (ushort)0x0090; + SP = 0x0090; // F000:0009 mov AX,0x000A - AX = (ushort)0x000A; + AX = 0x000A; // F000:000C aaa bool finalAuxiliaryFlag_F000_000C_F000C = false; bool finalCarryFlag_F000_000C_F000C = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AX = unchecked((ushort)(AX + (ushort)0x0106)); + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AX = unchecked((ushort)(AX + 0x0106)); finalAuxiliaryFlag_F000_000C_F000C = true; finalCarryFlag_F000_000C_F000C = true; } else { } Alu8.UpdateFlags(AL); - AL = unchecked((byte)(AL & (byte)0x0F)); + AL = unchecked((byte)(AL & 0x0F)); AuxiliaryFlag = finalAuxiliaryFlag_F000_000C_F000C; CarryFlag = finalCarryFlag_F000_000C_F000C; OverflowFlag = false; // F000:000D mov word ptr DS:[0],AX - UInt16[DS, (ushort)0x0000] = AX; + UInt16[DS, 0] = AX; // F000:0010 pushf Stack.Push16(FlagRegister16); // F000:0011 mov AX,0xFFF9 - AX = (ushort)0xFFF9; + AX = 0xFFF9; // F000:0014 aaa bool finalAuxiliaryFlag_F000_0014_F0014 = false; bool finalCarryFlag_F000_0014_F0014 = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AX = unchecked((ushort)(AX + (ushort)0x0106)); + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AX = unchecked((ushort)(AX + 0x0106)); finalAuxiliaryFlag_F000_0014_F0014 = true; finalCarryFlag_F000_0014_F0014 = true; } else { } Alu8.UpdateFlags(AL); - AL = unchecked((byte)(AL & (byte)0x0F)); + AL = unchecked((byte)(AL & 0x0F)); AuxiliaryFlag = finalAuxiliaryFlag_F000_0014_F0014; CarryFlag = finalCarryFlag_F000_0014_F0014; OverflowFlag = false; // F000:0015 mov word ptr DS:[2],AX - UInt16[DS, (ushort)0x0002] = AX; + UInt16[DS, 2] = AX; // F000:0018 pushf Stack.Push16(FlagRegister16); // F000:0019 push BX @@ -85,110 +85,110 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { FlagRegister16 = Stack.Pop16(); CheckExternalEvents(cs1, 0x001B); // F000:001B mov AX,0xFFF9 - AX = (ushort)0xFFF9; + AX = 0xFFF9; // F000:001E aaa bool finalAuxiliaryFlag_F000_001E_F001E = false; bool finalCarryFlag_F000_001E_F001E = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AX = unchecked((ushort)(AX + (ushort)0x0106)); + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AX = unchecked((ushort)(AX + 0x0106)); finalAuxiliaryFlag_F000_001E_F001E = true; finalCarryFlag_F000_001E_F001E = true; } else { } Alu8.UpdateFlags(AL); - AL = unchecked((byte)(AL & (byte)0x0F)); + AL = unchecked((byte)(AL & 0x0F)); AuxiliaryFlag = finalAuxiliaryFlag_F000_001E_F001E; CarryFlag = finalCarryFlag_F000_001E_F001E; OverflowFlag = false; // F000:001F mov word ptr DS:[4],AX - UInt16[DS, (ushort)0x0004] = AX; + UInt16[DS, 4] = AX; // F000:0022 pushf Stack.Push16(FlagRegister16); // F000:0023 mov AX,0x5D50 - AX = (ushort)0x5D50; + AX = 0x5D50; // F000:0026 aaa bool finalAuxiliaryFlag_F000_0026_F0026 = false; bool finalCarryFlag_F000_0026_F0026 = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AX = unchecked((ushort)(AX + (ushort)0x0106)); + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AX = unchecked((ushort)(AX + 0x0106)); finalAuxiliaryFlag_F000_0026_F0026 = true; finalCarryFlag_F000_0026_F0026 = true; } else { } Alu8.UpdateFlags(AL); - AL = unchecked((byte)(AL & (byte)0x0F)); + AL = unchecked((byte)(AL & 0x0F)); AuxiliaryFlag = finalAuxiliaryFlag_F000_0026_F0026; CarryFlag = finalCarryFlag_F000_0026_F0026; OverflowFlag = false; // F000:0027 mov word ptr DS:[6],AX - UInt16[DS, (ushort)0x0006] = AX; + UInt16[DS, 6] = AX; // F000:002A pushf Stack.Push16(FlagRegister16); // F000:002B mov AX,0x4726 - AX = (ushort)0x4726; + AX = 0x4726; // F000:002E aaa bool finalAuxiliaryFlag_F000_002E_F002E = false; bool finalCarryFlag_F000_002E_F002E = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AX = unchecked((ushort)(AX + (ushort)0x0106)); + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AX = unchecked((ushort)(AX + 0x0106)); finalAuxiliaryFlag_F000_002E_F002E = true; finalCarryFlag_F000_002E_F002E = true; } else { } Alu8.UpdateFlags(AL); - AL = unchecked((byte)(AL & (byte)0x0F)); + AL = unchecked((byte)(AL & 0x0F)); AuxiliaryFlag = finalAuxiliaryFlag_F000_002E_F002E; CarryFlag = finalCarryFlag_F000_002E_F002E; OverflowFlag = false; // F000:002F mov word ptr DS:[8],AX - UInt16[DS, (ushort)0x0008] = AX; + UInt16[DS, 8] = AX; // F000:0032 pushf Stack.Push16(FlagRegister16); // F000:0033 mov AX,0x000A - AX = (ushort)0x000A; + AX = 0x000A; // F000:0036 aas bool finalAuxiliaryFlag_F000_0036_F0036 = false; bool finalCarryFlag_F000_0036_F0036 = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AX = unchecked((ushort)(AX - (ushort)0x0006)); - AH = unchecked((byte)(AH - (byte)0x01)); + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AX = unchecked((ushort)(AX - 6)); + AH = unchecked((byte)(AH - 1)); finalAuxiliaryFlag_F000_0036_F0036 = true; finalCarryFlag_F000_0036_F0036 = true; } else { } Alu8.UpdateFlags(AL); - AL = unchecked((byte)(AL & (byte)0x0F)); + AL = unchecked((byte)(AL & 0x0F)); AuxiliaryFlag = finalAuxiliaryFlag_F000_0036_F0036; CarryFlag = finalCarryFlag_F000_0036_F0036; OverflowFlag = false; // F000:0037 mov word ptr DS:[0x000A],AX - UInt16[DS, (ushort)0x000A] = AX; + UInt16[DS, 0x000A] = AX; // F000:003A pushf Stack.Push16(FlagRegister16); // F000:003B mov AX,0xFFF9 - AX = (ushort)0xFFF9; + AX = 0xFFF9; // F000:003E aas bool finalAuxiliaryFlag_F000_003E_F003E = false; bool finalCarryFlag_F000_003E_F003E = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AX = unchecked((ushort)(AX - (ushort)0x0006)); - AH = unchecked((byte)(AH - (byte)0x01)); + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AX = unchecked((ushort)(AX - 6)); + AH = unchecked((byte)(AH - 1)); finalAuxiliaryFlag_F000_003E_F003E = true; finalCarryFlag_F000_003E_F003E = true; } else { } Alu8.UpdateFlags(AL); - AL = unchecked((byte)(AL & (byte)0x0F)); + AL = unchecked((byte)(AL & 0x0F)); AuxiliaryFlag = finalAuxiliaryFlag_F000_003E_F003E; CarryFlag = finalCarryFlag_F000_003E_F003E; OverflowFlag = false; // F000:003F mov word ptr DS:[0x000C],AX - UInt16[DS, (ushort)0x000C] = AX; + UInt16[DS, 0x000C] = AX; // F000:0042 pushf Stack.Push16(FlagRegister16); // F000:0043 push BX @@ -198,86 +198,86 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { FlagRegister16 = Stack.Pop16(); CheckExternalEvents(cs1, 0x0045); // F000:0045 mov AX,0xFFF9 - AX = (ushort)0xFFF9; + AX = 0xFFF9; // F000:0048 aas bool finalAuxiliaryFlag_F000_0048_F0048 = false; bool finalCarryFlag_F000_0048_F0048 = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AX = unchecked((ushort)(AX - (ushort)0x0006)); - AH = unchecked((byte)(AH - (byte)0x01)); + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AX = unchecked((ushort)(AX - 6)); + AH = unchecked((byte)(AH - 1)); finalAuxiliaryFlag_F000_0048_F0048 = true; finalCarryFlag_F000_0048_F0048 = true; } else { } Alu8.UpdateFlags(AL); - AL = unchecked((byte)(AL & (byte)0x0F)); + AL = unchecked((byte)(AL & 0x0F)); AuxiliaryFlag = finalAuxiliaryFlag_F000_0048_F0048; CarryFlag = finalCarryFlag_F000_0048_F0048; OverflowFlag = false; // F000:0049 mov word ptr DS:[0x000E],AX - UInt16[DS, (ushort)0x000E] = AX; + UInt16[DS, 0x000E] = AX; // F000:004C pushf Stack.Push16(FlagRegister16); // F000:004D mov AX,0xDCC0 - AX = (ushort)0xDCC0; + AX = 0xDCC0; // F000:0050 aas bool finalAuxiliaryFlag_F000_0050_F0050 = false; bool finalCarryFlag_F000_0050_F0050 = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AX = unchecked((ushort)(AX - (ushort)0x0006)); - AH = unchecked((byte)(AH - (byte)0x01)); + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AX = unchecked((ushort)(AX - 6)); + AH = unchecked((byte)(AH - 1)); finalAuxiliaryFlag_F000_0050_F0050 = true; finalCarryFlag_F000_0050_F0050 = true; } else { } Alu8.UpdateFlags(AL); - AL = unchecked((byte)(AL & (byte)0x0F)); + AL = unchecked((byte)(AL & 0x0F)); AuxiliaryFlag = finalAuxiliaryFlag_F000_0050_F0050; CarryFlag = finalCarryFlag_F000_0050_F0050; OverflowFlag = false; // F000:0051 mov word ptr DS:[0x0010],AX - UInt16[DS, (ushort)0x0010] = AX; + UInt16[DS, 0x0010] = AX; // F000:0054 pushf Stack.Push16(FlagRegister16); // F000:0055 mov AX,0x5FFB - AX = (ushort)0x5FFB; + AX = 0x5FFB; // F000:0058 aas bool finalAuxiliaryFlag_F000_0058_F0058 = false; bool finalCarryFlag_F000_0058_F0058 = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AX = unchecked((ushort)(AX - (ushort)0x0006)); - AH = unchecked((byte)(AH - (byte)0x01)); + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AX = unchecked((ushort)(AX - 6)); + AH = unchecked((byte)(AH - 1)); finalAuxiliaryFlag_F000_0058_F0058 = true; finalCarryFlag_F000_0058_F0058 = true; } else { } Alu8.UpdateFlags(AL); - AL = unchecked((byte)(AL & (byte)0x0F)); + AL = unchecked((byte)(AL & 0x0F)); AuxiliaryFlag = finalAuxiliaryFlag_F000_0058_F0058; CarryFlag = finalCarryFlag_F000_0058_F0058; OverflowFlag = false; // F000:0059 mov word ptr DS:[0x0012],AX - UInt16[DS, (ushort)0x0012] = AX; + UInt16[DS, 0x0012] = AX; // F000:005C pushf Stack.Push16(FlagRegister16); // F000:005D mov AX,0x00AC - AX = (ushort)0x00AC; + AX = 0x00AC; // F000:0060 daa byte initialAl_F000_0060_F0060 = AL; bool initialCf_F000_0060_F0060 = CarryFlag; bool finalAuxiliaryFlag_F000_0060_F0060 = false; bool finalCarryFlag_F000_0060_F0060 = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AL = unchecked((byte)(AL + (byte)0x06)); + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AL = unchecked((byte)(AL + 6)); finalAuxiliaryFlag_F000_0060_F0060 = true; } else { } - if (initialAl_F000_0060_F0060 > (byte)0x99 || initialCf_F000_0060_F0060) { - AL = unchecked((byte)(AL + (byte)0x60)); + if (initialAl_F000_0060_F0060 > 0x99 || initialCf_F000_0060_F0060) { + AL = unchecked((byte)(AL + 0x60)); finalCarryFlag_F000_0060_F0060 = true; } else { @@ -288,24 +288,24 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CarryFlag = finalCarryFlag_F000_0060_F0060; OverflowFlag = false; // F000:0061 mov word ptr DS:[0x0014],AX - UInt16[DS, (ushort)0x0014] = AX; + UInt16[DS, 0x0014] = AX; // F000:0064 pushf Stack.Push16(FlagRegister16); // F000:0065 mov AX,0xFFF9 - AX = (ushort)0xFFF9; + AX = 0xFFF9; // F000:0068 daa byte initialAl_F000_0068_F0068 = AL; bool initialCf_F000_0068_F0068 = CarryFlag; bool finalAuxiliaryFlag_F000_0068_F0068 = false; bool finalCarryFlag_F000_0068_F0068 = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AL = unchecked((byte)(AL + (byte)0x06)); + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AL = unchecked((byte)(AL + 6)); finalAuxiliaryFlag_F000_0068_F0068 = true; } else { } - if (initialAl_F000_0068_F0068 > (byte)0x99 || initialCf_F000_0068_F0068) { - AL = unchecked((byte)(AL + (byte)0x60)); + if (initialAl_F000_0068_F0068 > 0x99 || initialCf_F000_0068_F0068) { + AL = unchecked((byte)(AL + 0x60)); finalCarryFlag_F000_0068_F0068 = true; } else { @@ -316,7 +316,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CarryFlag = finalCarryFlag_F000_0068_F0068; OverflowFlag = false; // F000:0069 mov word ptr DS:[0x0016],AX - UInt16[DS, (ushort)0x0016] = AX; + UInt16[DS, 0x0016] = AX; // F000:006C pushf Stack.Push16(FlagRegister16); // F000:006D push BX @@ -326,20 +326,20 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { FlagRegister16 = Stack.Pop16(); CheckExternalEvents(cs1, 0x006F); // F000:006F mov AX,0xFFF8 - AX = (ushort)0xFFF8; + AX = 0xFFF8; // F000:0072 daa byte initialAl_F000_0072_F0072 = AL; bool initialCf_F000_0072_F0072 = CarryFlag; bool finalAuxiliaryFlag_F000_0072_F0072 = false; bool finalCarryFlag_F000_0072_F0072 = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AL = unchecked((byte)(AL + (byte)0x06)); + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AL = unchecked((byte)(AL + 6)); finalAuxiliaryFlag_F000_0072_F0072 = true; } else { } - if (initialAl_F000_0072_F0072 > (byte)0x99 || initialCf_F000_0072_F0072) { - AL = unchecked((byte)(AL + (byte)0x60)); + if (initialAl_F000_0072_F0072 > 0x99 || initialCf_F000_0072_F0072) { + AL = unchecked((byte)(AL + 0x60)); finalCarryFlag_F000_0072_F0072 = true; } else { @@ -350,7 +350,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CarryFlag = finalCarryFlag_F000_0072_F0072; OverflowFlag = false; // F000:0073 mov word ptr DS:[0x0018],AX - UInt16[DS, (ushort)0x0018] = AX; + UInt16[DS, 0x0018] = AX; // F000:0076 pushf Stack.Push16(FlagRegister16); // F000:0077 push CX @@ -360,20 +360,20 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { FlagRegister16 = Stack.Pop16(); CheckExternalEvents(cs1, 0x0079); // F000:0079 mov AX,0xFF8B - AX = (ushort)0xFF8B; + AX = 0xFF8B; // F000:007C daa byte initialAl_F000_007C_F007C = AL; bool initialCf_F000_007C_F007C = CarryFlag; bool finalAuxiliaryFlag_F000_007C_F007C = false; bool finalCarryFlag_F000_007C_F007C = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AL = unchecked((byte)(AL + (byte)0x06)); + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AL = unchecked((byte)(AL + 6)); finalAuxiliaryFlag_F000_007C_F007C = true; } else { } - if (initialAl_F000_007C_F007C > (byte)0x99 || initialCf_F000_007C_F007C) { - AL = unchecked((byte)(AL + (byte)0x60)); + if (initialAl_F000_007C_F007C > 0x99 || initialCf_F000_007C_F007C) { + AL = unchecked((byte)(AL + 0x60)); finalCarryFlag_F000_007C_F007C = true; } else { @@ -384,7 +384,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CarryFlag = finalCarryFlag_F000_007C_F007C; OverflowFlag = false; // F000:007D mov word ptr DS:[0x001A],AX - UInt16[DS, (ushort)0x001A] = AX; + UInt16[DS, 0x001A] = AX; // F000:0080 pushf Stack.Push16(FlagRegister16); // F000:0081 push CX @@ -394,20 +394,20 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { FlagRegister16 = Stack.Pop16(); CheckExternalEvents(cs1, 0x0083); // F000:0083 mov AX,0x0082 - AX = (ushort)0x0082; + AX = 0x0082; // F000:0086 daa byte initialAl_F000_0086_F0086 = AL; bool initialCf_F000_0086_F0086 = CarryFlag; bool finalAuxiliaryFlag_F000_0086_F0086 = false; bool finalCarryFlag_F000_0086_F0086 = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AL = unchecked((byte)(AL + (byte)0x06)); + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AL = unchecked((byte)(AL + 6)); finalAuxiliaryFlag_F000_0086_F0086 = true; } else { } - if (initialAl_F000_0086_F0086 > (byte)0x99 || initialCf_F000_0086_F0086) { - AL = unchecked((byte)(AL + (byte)0x60)); + if (initialAl_F000_0086_F0086 > 0x99 || initialCf_F000_0086_F0086) { + AL = unchecked((byte)(AL + 0x60)); finalCarryFlag_F000_0086_F0086 = true; } else { @@ -418,24 +418,24 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CarryFlag = finalCarryFlag_F000_0086_F0086; OverflowFlag = false; // F000:0087 mov word ptr DS:[0x001C],AX - UInt16[DS, (ushort)0x001C] = AX; + UInt16[DS, 0x001C] = AX; // F000:008A pushf Stack.Push16(FlagRegister16); // F000:008B mov AX,0xCD3C - AX = (ushort)0xCD3C; + AX = 0xCD3C; // F000:008E daa byte initialAl_F000_008E_F008E = AL; bool initialCf_F000_008E_F008E = CarryFlag; bool finalAuxiliaryFlag_F000_008E_F008E = false; bool finalCarryFlag_F000_008E_F008E = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AL = unchecked((byte)(AL + (byte)0x06)); + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AL = unchecked((byte)(AL + 6)); finalAuxiliaryFlag_F000_008E_F008E = true; } else { } - if (initialAl_F000_008E_F008E > (byte)0x99 || initialCf_F000_008E_F008E) { - AL = unchecked((byte)(AL + (byte)0x60)); + if (initialAl_F000_008E_F008E > 0x99 || initialCf_F000_008E_F008E) { + AL = unchecked((byte)(AL + 0x60)); finalCarryFlag_F000_008E_F008E = true; } else { @@ -446,24 +446,24 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CarryFlag = finalCarryFlag_F000_008E_F008E; OverflowFlag = false; // F000:008F mov word ptr DS:[0x001E],AX - UInt16[DS, (ushort)0x001E] = AX; + UInt16[DS, 0x001E] = AX; // F000:0092 pushf Stack.Push16(FlagRegister16); // F000:0093 mov AX,0x3F00 - AX = (ushort)0x3F00; + AX = 0x3F00; // F000:0096 daa byte initialAl_F000_0096_F0096 = AL; bool initialCf_F000_0096_F0096 = CarryFlag; bool finalAuxiliaryFlag_F000_0096_F0096 = false; bool finalCarryFlag_F000_0096_F0096 = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AL = unchecked((byte)(AL + (byte)0x06)); + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AL = unchecked((byte)(AL + 6)); finalAuxiliaryFlag_F000_0096_F0096 = true; } else { } - if (initialAl_F000_0096_F0096 > (byte)0x99 || initialCf_F000_0096_F0096) { - AL = unchecked((byte)(AL + (byte)0x60)); + if (initialAl_F000_0096_F0096 > 0x99 || initialCf_F000_0096_F0096) { + AL = unchecked((byte)(AL + 0x60)); finalCarryFlag_F000_0096_F0096 = true; } else { @@ -474,26 +474,26 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CarryFlag = finalCarryFlag_F000_0096_F0096; OverflowFlag = false; // F000:0097 mov word ptr DS:[0x0020],AX - UInt16[DS, (ushort)0x0020] = AX; + UInt16[DS, 0x0020] = AX; // F000:009A pushf Stack.Push16(FlagRegister16); // F000:009B mov AX,0x00AC - AX = (ushort)0x00AC; + AX = 0x00AC; // F000:009E das byte initialAl_F000_009E_F009E = AL; bool initialCf_F000_009E_F009E = CarryFlag; bool finalAuxiliaryFlag_F000_009E_F009E = false; bool finalCarryFlag_F000_009E_F009E = false; CarryFlag = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AL = unchecked((byte)(AL - (byte)0x06)); - finalCarryFlag_F000_009E_F009E = initialAl_F000_009E_F009E < (byte)0x06 || initialCf_F000_009E_F009E; + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AL = unchecked((byte)(AL - 6)); + finalCarryFlag_F000_009E_F009E = initialAl_F000_009E_F009E < 6 || initialCf_F000_009E_F009E; finalAuxiliaryFlag_F000_009E_F009E = true; } else { } - if (initialAl_F000_009E_F009E > (byte)0x99 || initialCf_F000_009E_F009E) { - AL = unchecked((byte)(AL - (byte)0x60)); + if (initialAl_F000_009E_F009E > 0x99 || initialCf_F000_009E_F009E) { + AL = unchecked((byte)(AL - 0x60)); finalCarryFlag_F000_009E_F009E = true; } else { @@ -503,26 +503,26 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CarryFlag = finalCarryFlag_F000_009E_F009E; OverflowFlag = false; // F000:009F mov word ptr DS:[0x0022],AX - UInt16[DS, (ushort)0x0022] = AX; + UInt16[DS, 0x0022] = AX; // F000:00A2 pushf Stack.Push16(FlagRegister16); // F000:00A3 mov AX,0xFFF9 - AX = (ushort)0xFFF9; + AX = 0xFFF9; // F000:00A6 das byte initialAl_F000_00A6_F00A6 = AL; bool initialCf_F000_00A6_F00A6 = CarryFlag; bool finalAuxiliaryFlag_F000_00A6_F00A6 = false; bool finalCarryFlag_F000_00A6_F00A6 = false; CarryFlag = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AL = unchecked((byte)(AL - (byte)0x06)); - finalCarryFlag_F000_00A6_F00A6 = initialAl_F000_00A6_F00A6 < (byte)0x06 || initialCf_F000_00A6_F00A6; + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AL = unchecked((byte)(AL - 6)); + finalCarryFlag_F000_00A6_F00A6 = initialAl_F000_00A6_F00A6 < 6 || initialCf_F000_00A6_F00A6; finalAuxiliaryFlag_F000_00A6_F00A6 = true; } else { } - if (initialAl_F000_00A6_F00A6 > (byte)0x99 || initialCf_F000_00A6_F00A6) { - AL = unchecked((byte)(AL - (byte)0x60)); + if (initialAl_F000_00A6_F00A6 > 0x99 || initialCf_F000_00A6_F00A6) { + AL = unchecked((byte)(AL - 0x60)); finalCarryFlag_F000_00A6_F00A6 = true; } else { @@ -532,7 +532,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CarryFlag = finalCarryFlag_F000_00A6_F00A6; OverflowFlag = false; // F000:00A7 mov word ptr DS:[0x0024],AX - UInt16[DS, (ushort)0x0024] = AX; + UInt16[DS, 0x0024] = AX; // F000:00AA pushf Stack.Push16(FlagRegister16); // F000:00AB push BX @@ -542,22 +542,22 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { FlagRegister16 = Stack.Pop16(); CheckExternalEvents(cs1, 0x00AD); // F000:00AD mov AX,0xFFF8 - AX = (ushort)0xFFF8; + AX = 0xFFF8; // F000:00B0 das byte initialAl_F000_00B0_F00B0 = AL; bool initialCf_F000_00B0_F00B0 = CarryFlag; bool finalAuxiliaryFlag_F000_00B0_F00B0 = false; bool finalCarryFlag_F000_00B0_F00B0 = false; CarryFlag = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AL = unchecked((byte)(AL - (byte)0x06)); - finalCarryFlag_F000_00B0_F00B0 = initialAl_F000_00B0_F00B0 < (byte)0x06 || initialCf_F000_00B0_F00B0; + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AL = unchecked((byte)(AL - 6)); + finalCarryFlag_F000_00B0_F00B0 = initialAl_F000_00B0_F00B0 < 6 || initialCf_F000_00B0_F00B0; finalAuxiliaryFlag_F000_00B0_F00B0 = true; } else { } - if (initialAl_F000_00B0_F00B0 > (byte)0x99 || initialCf_F000_00B0_F00B0) { - AL = unchecked((byte)(AL - (byte)0x60)); + if (initialAl_F000_00B0_F00B0 > 0x99 || initialCf_F000_00B0_F00B0) { + AL = unchecked((byte)(AL - 0x60)); finalCarryFlag_F000_00B0_F00B0 = true; } else { @@ -567,7 +567,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CarryFlag = finalCarryFlag_F000_00B0_F00B0; OverflowFlag = false; // F000:00B1 mov word ptr DS:[0x0026],AX - UInt16[DS, (ushort)0x0026] = AX; + UInt16[DS, 0x0026] = AX; // F000:00B4 pushf Stack.Push16(FlagRegister16); // F000:00B5 push CX @@ -577,22 +577,22 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { FlagRegister16 = Stack.Pop16(); CheckExternalEvents(cs1, 0x00B7); // F000:00B7 mov AX,0xFF8B - AX = (ushort)0xFF8B; + AX = 0xFF8B; // F000:00BA das byte initialAl_F000_00BA_F00BA = AL; bool initialCf_F000_00BA_F00BA = CarryFlag; bool finalAuxiliaryFlag_F000_00BA_F00BA = false; bool finalCarryFlag_F000_00BA_F00BA = false; CarryFlag = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AL = unchecked((byte)(AL - (byte)0x06)); - finalCarryFlag_F000_00BA_F00BA = initialAl_F000_00BA_F00BA < (byte)0x06 || initialCf_F000_00BA_F00BA; + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AL = unchecked((byte)(AL - 6)); + finalCarryFlag_F000_00BA_F00BA = initialAl_F000_00BA_F00BA < 6 || initialCf_F000_00BA_F00BA; finalAuxiliaryFlag_F000_00BA_F00BA = true; } else { } - if (initialAl_F000_00BA_F00BA > (byte)0x99 || initialCf_F000_00BA_F00BA) { - AL = unchecked((byte)(AL - (byte)0x60)); + if (initialAl_F000_00BA_F00BA > 0x99 || initialCf_F000_00BA_F00BA) { + AL = unchecked((byte)(AL - 0x60)); finalCarryFlag_F000_00BA_F00BA = true; } else { @@ -602,7 +602,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CarryFlag = finalCarryFlag_F000_00BA_F00BA; OverflowFlag = false; // F000:00BB mov word ptr DS:[0x0028],AX - UInt16[DS, (ushort)0x0028] = AX; + UInt16[DS, 0x0028] = AX; // F000:00BE pushf Stack.Push16(FlagRegister16); // F000:00BF push CX @@ -612,22 +612,22 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { FlagRegister16 = Stack.Pop16(); CheckExternalEvents(cs1, 0x00C1); // F000:00C1 mov AX,0x0082 - AX = (ushort)0x0082; + AX = 0x0082; // F000:00C4 das byte initialAl_F000_00C4_F00C4 = AL; bool initialCf_F000_00C4_F00C4 = CarryFlag; bool finalAuxiliaryFlag_F000_00C4_F00C4 = false; bool finalCarryFlag_F000_00C4_F00C4 = false; CarryFlag = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AL = unchecked((byte)(AL - (byte)0x06)); - finalCarryFlag_F000_00C4_F00C4 = initialAl_F000_00C4_F00C4 < (byte)0x06 || initialCf_F000_00C4_F00C4; + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AL = unchecked((byte)(AL - 6)); + finalCarryFlag_F000_00C4_F00C4 = initialAl_F000_00C4_F00C4 < 6 || initialCf_F000_00C4_F00C4; finalAuxiliaryFlag_F000_00C4_F00C4 = true; } else { } - if (initialAl_F000_00C4_F00C4 > (byte)0x99 || initialCf_F000_00C4_F00C4) { - AL = unchecked((byte)(AL - (byte)0x60)); + if (initialAl_F000_00C4_F00C4 > 0x99 || initialCf_F000_00C4_F00C4) { + AL = unchecked((byte)(AL - 0x60)); finalCarryFlag_F000_00C4_F00C4 = true; } else { @@ -637,26 +637,26 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CarryFlag = finalCarryFlag_F000_00C4_F00C4; OverflowFlag = false; // F000:00C5 mov word ptr DS:[0x002A],AX - UInt16[DS, (ushort)0x002A] = AX; + UInt16[DS, 0x002A] = AX; // F000:00C8 pushf Stack.Push16(FlagRegister16); // F000:00C9 mov AX,0x059A - AX = (ushort)0x059A; + AX = 0x059A; // F000:00CC das byte initialAl_F000_00CC_F00CC = AL; bool initialCf_F000_00CC_F00CC = CarryFlag; bool finalAuxiliaryFlag_F000_00CC_F00CC = false; bool finalCarryFlag_F000_00CC_F00CC = false; CarryFlag = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AL = unchecked((byte)(AL - (byte)0x06)); - finalCarryFlag_F000_00CC_F00CC = initialAl_F000_00CC_F00CC < (byte)0x06 || initialCf_F000_00CC_F00CC; + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AL = unchecked((byte)(AL - 6)); + finalCarryFlag_F000_00CC_F00CC = initialAl_F000_00CC_F00CC < 6 || initialCf_F000_00CC_F00CC; finalAuxiliaryFlag_F000_00CC_F00CC = true; } else { } - if (initialAl_F000_00CC_F00CC > (byte)0x99 || initialCf_F000_00CC_F00CC) { - AL = unchecked((byte)(AL - (byte)0x60)); + if (initialAl_F000_00CC_F00CC > 0x99 || initialCf_F000_00CC_F00CC) { + AL = unchecked((byte)(AL - 0x60)); finalCarryFlag_F000_00CC_F00CC = true; } else { @@ -666,26 +666,26 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CarryFlag = finalCarryFlag_F000_00CC_F00CC; OverflowFlag = false; // F000:00CD mov word ptr DS:[0x002C],AX - UInt16[DS, (ushort)0x002C] = AX; + UInt16[DS, 0x002C] = AX; // F000:00D0 pushf Stack.Push16(FlagRegister16); // F000:00D1 mov AX,0x54F6 - AX = (ushort)0x54F6; + AX = 0x54F6; // F000:00D4 das byte initialAl_F000_00D4_F00D4 = AL; bool initialCf_F000_00D4_F00D4 = CarryFlag; bool finalAuxiliaryFlag_F000_00D4_F00D4 = false; bool finalCarryFlag_F000_00D4_F00D4 = false; CarryFlag = false; - if ((AL & (byte)0x0F) > (byte)0x09 || AuxiliaryFlag) { - AL = unchecked((byte)(AL - (byte)0x06)); - finalCarryFlag_F000_00D4_F00D4 = initialAl_F000_00D4_F00D4 < (byte)0x06 || initialCf_F000_00D4_F00D4; + if ((AL & 0x0F) > 9 || AuxiliaryFlag) { + AL = unchecked((byte)(AL - 6)); + finalCarryFlag_F000_00D4_F00D4 = initialAl_F000_00D4_F00D4 < 6 || initialCf_F000_00D4_F00D4; finalAuxiliaryFlag_F000_00D4_F00D4 = true; } else { } - if (initialAl_F000_00D4_F00D4 > (byte)0x99 || initialCf_F000_00D4_F00D4) { - AL = unchecked((byte)(AL - (byte)0x60)); + if (initialAl_F000_00D4_F00D4 > 0x99 || initialCf_F000_00D4_F00D4) { + AL = unchecked((byte)(AL - 0x60)); finalCarryFlag_F000_00D4_F00D4 = true; } else { @@ -695,67 +695,67 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CarryFlag = finalCarryFlag_F000_00D4_F00D4; OverflowFlag = false; // F000:00D5 mov word ptr DS:[0x002E],AX - UInt16[DS, (ushort)0x002E] = AX; + UInt16[DS, 0x002E] = AX; // F000:00D8 pushf Stack.Push16(FlagRegister16); // F000:00D9 mov AX,0xFF7F - AX = (ushort)0xFF7F; + AX = 0xFF7F; // F000:00DC cbw AX = unchecked((ushort)unchecked((short)unchecked((sbyte)AL))); // F000:00DD mov word ptr DS:[0x0030],AX - UInt16[DS, (ushort)0x0030] = AX; + UInt16[DS, 0x0030] = AX; // F000:00E0 mov word ptr DS:[0x0032],DX - UInt16[DS, (ushort)0x0032] = DX; + UInt16[DS, 0x0032] = DX; // F000:00E4 pushf Stack.Push16(FlagRegister16); // F000:00E5 mov AX,0x0080 - AX = (ushort)0x0080; + AX = 0x0080; // F000:00E8 cbw AX = unchecked((ushort)unchecked((short)unchecked((sbyte)AL))); // F000:00E9 mov word ptr DS:[0x0034],AX - UInt16[DS, (ushort)0x0034] = AX; + UInt16[DS, 0x0034] = AX; // F000:00EC mov word ptr DS:[0x0036],DX - UInt16[DS, (ushort)0x0036] = DX; + UInt16[DS, 0x0036] = DX; // F000:00F0 pushf Stack.Push16(FlagRegister16); // F000:00F1 mov AX,0xF1ED - AX = (ushort)0xF1ED; + AX = 0xF1ED; // F000:00F4 cbw AX = unchecked((ushort)unchecked((short)unchecked((sbyte)AL))); // F000:00F5 mov word ptr DS:[0x0038],AX - UInt16[DS, (ushort)0x0038] = AX; + UInt16[DS, 0x0038] = AX; // F000:00F8 mov word ptr DS:[0x003A],DX - UInt16[DS, (ushort)0x003A] = DX; + UInt16[DS, 0x003A] = DX; // F000:00FC pushf Stack.Push16(FlagRegister16); // F000:00FD mov AX,0x8000 - AX = (ushort)0x8000; + AX = 0x8000; // F000:0100 cwd - DX = unchecked((ushort)(unchecked((short)AX) >> 15)); + DX = unchecked((ushort)(unchecked((short)AX) >> 0x0000000F)); // F000:0101 mov word ptr DS:[0x003C],AX - UInt16[DS, (ushort)0x003C] = AX; + UInt16[DS, 0x003C] = AX; // F000:0104 mov word ptr DS:[0x003E],DX - UInt16[DS, (ushort)0x003E] = DX; + UInt16[DS, 0x003E] = DX; // F000:0108 pushf Stack.Push16(FlagRegister16); // F000:0109 mov AX,0x7FFF - AX = (ushort)0x7FFF; + AX = 0x7FFF; // F000:010C cwd - DX = unchecked((ushort)(unchecked((short)AX) >> 15)); + DX = unchecked((ushort)(unchecked((short)AX) >> 0x0000000F)); // F000:010D mov word ptr DS:[0x0040],AX - UInt16[DS, (ushort)0x0040] = AX; + UInt16[DS, 0x0040] = AX; // F000:0110 mov word ptr DS:[0x0042],DX - UInt16[DS, (ushort)0x0042] = DX; + UInt16[DS, 0x0042] = DX; // F000:0114 pushf Stack.Push16(FlagRegister16); // F000:0115 mov AX,0x43F1 - AX = (ushort)0x43F1; + AX = 0x43F1; // F000:0118 cwd - DX = unchecked((ushort)(unchecked((short)AX) >> 15)); + DX = unchecked((ushort)(unchecked((short)AX) >> 0x0000000F)); // F000:0119 mov word ptr DS:[0x0044],AX - UInt16[DS, (ushort)0x0044] = AX; + UInt16[DS, 0x0044] = AX; // F000:011C mov word ptr DS:[0x0046],DX - UInt16[DS, (ushort)0x0046] = DX; + UInt16[DS, 0x0046] = DX; // F000:0120 pushf Stack.Push16(FlagRegister16); // F000:0121 hlt diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/bitwise.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/bitwise.spec.cs.txt index d9635f942a..6366335319 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/bitwise.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/bitwise.spec.cs.txt @@ -31,47 +31,47 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0x7659 - AX = (ushort)0x7659; + AX = 0x7659; // F000:0003 mov BX,0x4BB8 - BX = (ushort)0x4BB8; + BX = 0x4BB8; // F000:0006 mov CX,0x3C84 - CX = (ushort)0x3C84; + CX = 0x3C84; // F000:0009 mov word ptr DS:[0],0x1B76 - UInt16[DS, (ushort)0x0000] = (ushort)0x1B76; + UInt16[DS, 0] = 0x1B76; // F000:000F mov word ptr DS:[2],0x240B - UInt16[DS, (ushort)0x0002] = (ushort)0x240B; + UInt16[DS, 2] = 0x240B; // F000:0015 mov SP,0x0100 - SP = (ushort)0x0100; + SP = 0x0100; // F000:0018 and BX,AX BX = Alu16.And(BX, AX); // F000:001A pushf Stack.Push16(FlagRegister16); // F000:001B mov word ptr DS:[0x0020],BX - UInt16[DS, (ushort)0x0020] = BX; + UInt16[DS, 0x0020] = BX; // F000:001F and CX,word ptr DS:[2] - CX = Alu16.And(CX, UInt16[DS, (ushort)0x0002]); + CX = Alu16.And(CX, UInt16[DS, 2]); // F000:0023 pushf Stack.Push16(FlagRegister16); // F000:0024 mov word ptr DS:[0x0022],CX - UInt16[DS, (ushort)0x0022] = CX; + UInt16[DS, 0x0022] = CX; // F000:0028 and word ptr DS:[0],CX - UInt16[DS, (ushort)0x0000] = Alu16.And(UInt16[DS, (ushort)0x0000], CX); + UInt16[DS, 0] = Alu16.And(UInt16[DS, 0], CX); // F000:002C pushf Stack.Push16(FlagRegister16); // F000:002D and AX,0x4571 - AX = Alu16.And(AX, (ushort)0x4571); + AX = Alu16.And(AX, 0x4571); // F000:0030 pushf Stack.Push16(FlagRegister16); // F000:0031 mov word ptr DS:[0x0024],AX - UInt16[DS, (ushort)0x0024] = AX; + UInt16[DS, 0x0024] = AX; // F000:0034 and BX,0x27E9 - BX = Alu16.And(BX, (ushort)0x27E9); + BX = Alu16.And(BX, 0x27E9); // F000:0038 pushf Stack.Push16(FlagRegister16); // F000:0039 mov word ptr DS:[0x0026],BX - UInt16[DS, (ushort)0x0026] = BX; + UInt16[DS, 0x0026] = BX; // F000:003D and word ptr DS:[2],0x3549 - UInt16[DS, (ushort)0x0002] = Alu16.And(UInt16[DS, (ushort)0x0002], (ushort)0x3549); + UInt16[DS, 2] = Alu16.And(UInt16[DS, 2], 0x3549); // F000:0043 pushf Stack.Push16(FlagRegister16); // F000:0044 and AH,AL @@ -79,77 +79,77 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:0046 pushf Stack.Push16(FlagRegister16); // F000:0047 mov byte ptr DS:[0x0028],AH - UInt8[DS, (ushort)0x0028] = AH; + UInt8[DS, 0x0028] = AH; // F000:004B and CL,byte ptr DS:[1] - CL = Alu8.And(CL, UInt8[DS, (ushort)0x0001]); + CL = Alu8.And(CL, UInt8[DS, 1]); // F000:004F pushf Stack.Push16(FlagRegister16); // F000:0050 mov byte ptr DS:[0x0029],CL - UInt8[DS, (ushort)0x0029] = CL; + UInt8[DS, 0x0029] = CL; // F000:0054 and byte ptr DS:[3],CH - UInt8[DS, (ushort)0x0003] = Alu8.And(UInt8[DS, (ushort)0x0003], CH); + UInt8[DS, 3] = Alu8.And(UInt8[DS, 3], CH); // F000:0058 pushf Stack.Push16(FlagRegister16); // F000:0059 and AL,0x46 - AL = Alu8.And(AL, (byte)0x46); + AL = Alu8.And(AL, 0x46); // F000:005B pushf Stack.Push16(FlagRegister16); // F000:005C mov byte ptr DS:[0x002A],AL - UInt8[DS, (ushort)0x002A] = AL; + UInt8[DS, 0x002A] = AL; // F000:005F and BL,0x2D - BL = Alu8.And(BL, (byte)0x2D); + BL = Alu8.And(BL, 0x2D); // F000:0062 pushf Stack.Push16(FlagRegister16); // F000:0063 mov byte ptr DS:[0x002B],BL - UInt8[DS, (ushort)0x002B] = BL; + UInt8[DS, 0x002B] = BL; // F000:0067 and byte ptr DS:[2],0xC6 - UInt8[DS, (ushort)0x0002] = Alu8.And(UInt8[DS, (ushort)0x0002], (byte)0xC6); + UInt8[DS, 2] = Alu8.And(UInt8[DS, 2], 0xC6); // F000:006C pushf Stack.Push16(FlagRegister16); // F000:006D mov AX,0x05E3 - AX = (ushort)0x05E3; + AX = 0x05E3; // F000:0070 mov BX,0xF877 - BX = (ushort)0xF877; + BX = 0xF877; // F000:0073 mov CX,0x4AE8 - CX = (ushort)0x4AE8; + CX = 0x4AE8; // F000:0076 mov DX,0x3B69 - DX = (ushort)0x3B69; + DX = 0x3B69; // F000:0079 mov word ptr DS:[4],0x30C0 - UInt16[DS, (ushort)0x0004] = (ushort)0x30C0; + UInt16[DS, 4] = 0x30C0; // F000:007F mov word ptr DS:[6],0x5775 - UInt16[DS, (ushort)0x0006] = (ushort)0x5775; + UInt16[DS, 6] = 0x5775; // F000:0085 mov word ptr DS:[8],0xFE66 - UInt16[DS, (ushort)0x0008] = (ushort)0xFE66; + UInt16[DS, 8] = 0xFE66; // F000:008B or BX,AX BX = Alu16.Or(BX, AX); // F000:008D pushf Stack.Push16(FlagRegister16); // F000:008E mov word ptr DS:[0x002C],BX - UInt16[DS, (ushort)0x002C] = BX; + UInt16[DS, 0x002C] = BX; // F000:0092 or CX,word ptr DS:[4] - CX = Alu16.Or(CX, UInt16[DS, (ushort)0x0004]); + CX = Alu16.Or(CX, UInt16[DS, 4]); // F000:0096 pushf Stack.Push16(FlagRegister16); // F000:0097 mov word ptr DS:[0x002E],CX - UInt16[DS, (ushort)0x002E] = CX; + UInt16[DS, 0x002E] = CX; // F000:009B or word ptr DS:[6],AX - UInt16[DS, (ushort)0x0006] = Alu16.Or(UInt16[DS, (ushort)0x0006], AX); + UInt16[DS, 6] = Alu16.Or(UInt16[DS, 6], AX); // F000:009F pushf Stack.Push16(FlagRegister16); // F000:00A0 or AX,0x41C3 - AX = Alu16.Or(AX, (ushort)0x41C3); + AX = Alu16.Or(AX, 0x41C3); // F000:00A3 pushf Stack.Push16(FlagRegister16); // F000:00A4 mov word ptr DS:[0x0030],AX - UInt16[DS, (ushort)0x0030] = AX; + UInt16[DS, 0x0030] = AX; // F000:00A7 or DX,0xB05D - DX = Alu16.Or(DX, (ushort)0xB05D); + DX = Alu16.Or(DX, 0xB05D); // F000:00AB pushf Stack.Push16(FlagRegister16); // F000:00AC mov word ptr DS:[0x0032],DX - UInt16[DS, (ushort)0x0032] = DX; + UInt16[DS, 0x0032] = DX; // F000:00B0 or word ptr DS:[8],0x8D4C - UInt16[DS, (ushort)0x0008] = Alu16.Or(UInt16[DS, (ushort)0x0008], (ushort)0x8D4C); + UInt16[DS, 8] = Alu16.Or(UInt16[DS, 8], 0x8D4C); // F000:00B6 pushf Stack.Push16(FlagRegister16); // F000:00B7 or AH,AL @@ -157,77 +157,77 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:00B9 pushf Stack.Push16(FlagRegister16); // F000:00BA mov byte ptr DS:[0x0034],AH - UInt8[DS, (ushort)0x0034] = AH; + UInt8[DS, 0x0034] = AH; // F000:00BE or CL,byte ptr DS:[5] - CL = Alu8.Or(CL, UInt8[DS, (ushort)0x0005]); + CL = Alu8.Or(CL, UInt8[DS, 5]); // F000:00C2 pushf Stack.Push16(FlagRegister16); // F000:00C3 mov byte ptr DS:[0x0035],CL - UInt8[DS, (ushort)0x0035] = CL; + UInt8[DS, 0x0035] = CL; // F000:00C7 or byte ptr DS:[6],CH - UInt8[DS, (ushort)0x0006] = Alu8.Or(UInt8[DS, (ushort)0x0006], CH); + UInt8[DS, 6] = Alu8.Or(UInt8[DS, 6], CH); // F000:00CB pushf Stack.Push16(FlagRegister16); // F000:00CC or AL,0x43 - AL = Alu8.Or(AL, (byte)0x43); + AL = Alu8.Or(AL, 0x43); // F000:00CE pushf Stack.Push16(FlagRegister16); // F000:00CF mov byte ptr DS:[0x0036],AL - UInt8[DS, (ushort)0x0036] = AL; + UInt8[DS, 0x0036] = AL; // F000:00D2 or BL,0x57 - BL = Alu8.Or(BL, (byte)0x57); + BL = Alu8.Or(BL, 0x57); // F000:00D5 pushf Stack.Push16(FlagRegister16); // F000:00D6 mov byte ptr DS:[0x0037],BL - UInt8[DS, (ushort)0x0037] = BL; + UInt8[DS, 0x0037] = BL; // F000:00DA or byte ptr DS:[7],0x54 - UInt8[DS, (ushort)0x0007] = Alu8.Or(UInt8[DS, (ushort)0x0007], (byte)0x54); + UInt8[DS, 7] = Alu8.Or(UInt8[DS, 7], 0x54); // F000:00DF pushf Stack.Push16(FlagRegister16); // F000:00E0 mov AX,0xD0B4 - AX = (ushort)0xD0B4; + AX = 0xD0B4; // F000:00E3 mov BX,0x1BB8 - BX = (ushort)0x1BB8; + BX = 0x1BB8; // F000:00E6 mov CX,0x2B03 - CX = (ushort)0x2B03; + CX = 0x2B03; // F000:00E9 mov DX,0xC3E6 - DX = (ushort)0xC3E6; + DX = 0xC3E6; // F000:00EC mov word ptr DS:[0x000A],0x3939 - UInt16[DS, (ushort)0x000A] = (ushort)0x3939; + UInt16[DS, 0x000A] = 0x3939; // F000:00F2 mov word ptr DS:[0x000C],0x864B - UInt16[DS, (ushort)0x000C] = (ushort)0x864B; + UInt16[DS, 0x000C] = 0x864B; // F000:00F8 mov word ptr DS:[0x000E],0x8587 - UInt16[DS, (ushort)0x000E] = (ushort)0x8587; + UInt16[DS, 0x000E] = 0x8587; // F000:00FE xor BX,AX BX = Alu16.Xor(BX, AX); // F000:0100 pushf Stack.Push16(FlagRegister16); // F000:0101 mov word ptr DS:[0x0038],BX - UInt16[DS, (ushort)0x0038] = BX; + UInt16[DS, 0x0038] = BX; // F000:0105 xor CX,word ptr DS:[0x000A] - CX = Alu16.Xor(CX, UInt16[DS, (ushort)0x000A]); + CX = Alu16.Xor(CX, UInt16[DS, 0x000A]); // F000:0109 pushf Stack.Push16(FlagRegister16); // F000:010A mov word ptr DS:[0x003A],CX - UInt16[DS, (ushort)0x003A] = CX; + UInt16[DS, 0x003A] = CX; // F000:010E xor word ptr DS:[0x000C],AX - UInt16[DS, (ushort)0x000C] = Alu16.Xor(UInt16[DS, (ushort)0x000C], AX); + UInt16[DS, 0x000C] = Alu16.Xor(UInt16[DS, 0x000C], AX); // F000:0112 pushf Stack.Push16(FlagRegister16); // F000:0113 xor AX,0x3D03 - AX = Alu16.Xor(AX, (ushort)0x3D03); + AX = Alu16.Xor(AX, 0x3D03); // F000:0116 pushf Stack.Push16(FlagRegister16); // F000:0117 mov word ptr DS:[0x003C],AX - UInt16[DS, (ushort)0x003C] = AX; + UInt16[DS, 0x003C] = AX; // F000:011A xor DX,0x632D - DX = Alu16.Xor(DX, (ushort)0x632D); + DX = Alu16.Xor(DX, 0x632D); // F000:011E pushf Stack.Push16(FlagRegister16); // F000:011F mov word ptr DS:[0x003E],DX - UInt16[DS, (ushort)0x003E] = DX; + UInt16[DS, 0x003E] = DX; // F000:0123 xor word ptr DS:[0x000E],0xCF07 - UInt16[DS, (ushort)0x000E] = Alu16.Xor(UInt16[DS, (ushort)0x000E], (ushort)0xCF07); + UInt16[DS, 0x000E] = Alu16.Xor(UInt16[DS, 0x000E], 0xCF07); // F000:0129 pushf Stack.Push16(FlagRegister16); // F000:012A xor AH,AL @@ -235,77 +235,77 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:012C pushf Stack.Push16(FlagRegister16); // F000:012D mov byte ptr DS:[0x0040],AH - UInt8[DS, (ushort)0x0040] = AH; + UInt8[DS, 0x0040] = AH; // F000:0131 xor CL,byte ptr DS:[0x000B] - CL = Alu8.Xor(CL, UInt8[DS, (ushort)0x000B]); + CL = Alu8.Xor(CL, UInt8[DS, 0x000B]); // F000:0135 pushf Stack.Push16(FlagRegister16); // F000:0136 mov byte ptr DS:[0x0041],CL - UInt8[DS, (ushort)0x0041] = CL; + UInt8[DS, 0x0041] = CL; // F000:013A xor byte ptr DS:[0x000C],CH - UInt8[DS, (ushort)0x000C] = Alu8.Xor(UInt8[DS, (ushort)0x000C], CH); + UInt8[DS, 0x000C] = Alu8.Xor(UInt8[DS, 0x000C], CH); // F000:013E pushf Stack.Push16(FlagRegister16); // F000:013F xor AL,0xB6 - AL = Alu8.Xor(AL, (byte)0xB6); + AL = Alu8.Xor(AL, 0xB6); // F000:0141 pushf Stack.Push16(FlagRegister16); // F000:0142 mov byte ptr DS:[0x0042],AL - UInt8[DS, (ushort)0x0042] = AL; + UInt8[DS, 0x0042] = AL; // F000:0145 xor BL,0xAE - BL = Alu8.Xor(BL, (byte)0xAE); + BL = Alu8.Xor(BL, 0xAE); // F000:0148 pushf Stack.Push16(FlagRegister16); // F000:0149 mov byte ptr DS:[0x0043],BL - UInt8[DS, (ushort)0x0043] = BL; + UInt8[DS, 0x0043] = BL; // F000:014D xor byte ptr DS:[0x000D],0xDF - UInt8[DS, (ushort)0x000D] = Alu8.Xor(UInt8[DS, (ushort)0x000D], (byte)0xDF); + UInt8[DS, 0x000D] = Alu8.Xor(UInt8[DS, 0x000D], 0xDF); // F000:0152 pushf Stack.Push16(FlagRegister16); // F000:0153 mov AX,0x4D37 - AX = (ushort)0x4D37; + AX = 0x4D37; // F000:0156 mov BX,0xDBE1 - BX = (ushort)0xDBE1; + BX = 0xDBE1; // F000:0159 mov CX,0x6549 - CX = (ushort)0x6549; + CX = 0x6549; // F000:015C mov DX,0x5CC4 - DX = (ushort)0x5CC4; + DX = 0x5CC4; // F000:015F mov word ptr DS:[0x0010],0xA8A8 - UInt16[DS, (ushort)0x0010] = (ushort)0xA8A8; + UInt16[DS, 0x0010] = 0xA8A8; // F000:0165 mov word ptr DS:[0x0012],0x35F6 - UInt16[DS, (ushort)0x0012] = (ushort)0x35F6; + UInt16[DS, 0x0012] = 0x35F6; // F000:016B mov word ptr DS:[0x0014],0x4F00 - UInt16[DS, (ushort)0x0014] = (ushort)0x4F00; + UInt16[DS, 0x0014] = 0x4F00; // F000:0171 and BX,AX Alu16.And(BX, AX); // F000:0173 pushf Stack.Push16(FlagRegister16); // F000:0174 mov word ptr DS:[0x0044],BX - UInt16[DS, (ushort)0x0044] = BX; + UInt16[DS, 0x0044] = BX; // F000:0178 and word ptr DS:[0x0010],CX - Alu16.And(UInt16[DS, (ushort)0x0010], CX); + Alu16.And(UInt16[DS, 0x0010], CX); // F000:017C pushf Stack.Push16(FlagRegister16); // F000:017D mov word ptr DS:[0x0046],CX - UInt16[DS, (ushort)0x0046] = CX; + UInt16[DS, 0x0046] = CX; // F000:0181 and word ptr DS:[0x0012],AX - Alu16.And(UInt16[DS, (ushort)0x0012], AX); + Alu16.And(UInt16[DS, 0x0012], AX); // F000:0185 pushf Stack.Push16(FlagRegister16); // F000:0186 test AX,0xDC6F - Alu16.And(AX, (ushort)0xDC6F); + Alu16.And(AX, 0xDC6F); // F000:0189 pushf Stack.Push16(FlagRegister16); // F000:018A mov word ptr DS:[0x0048],AX - UInt16[DS, (ushort)0x0048] = AX; + UInt16[DS, 0x0048] = AX; // F000:018D test DX,0x3046 - Alu16.And(DX, (ushort)0x3046); + Alu16.And(DX, 0x3046); // F000:0191 pushf Stack.Push16(FlagRegister16); // F000:0192 mov word ptr DS:[0x004A],DX - UInt16[DS, (ushort)0x004A] = DX; + UInt16[DS, 0x004A] = DX; // F000:0196 test word ptr DS:[0x0014],0x96E4 - Alu16.And(UInt16[DS, (ushort)0x0014], (ushort)0x96E4); + Alu16.And(UInt16[DS, 0x0014], 0x96E4); // F000:019C pushf Stack.Push16(FlagRegister16); // F000:019D and AH,AL @@ -313,41 +313,41 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:019F pushf Stack.Push16(FlagRegister16); // F000:01A0 mov byte ptr DS:[0x004C],AH - UInt8[DS, (ushort)0x004C] = AH; + UInt8[DS, 0x004C] = AH; // F000:01A4 and byte ptr DS:[0x000F],CL - Alu8.And(UInt8[DS, (ushort)0x000F], CL); + Alu8.And(UInt8[DS, 0x000F], CL); // F000:01A8 pushf Stack.Push16(FlagRegister16); // F000:01A9 mov byte ptr DS:[0x004D],CL - UInt8[DS, (ushort)0x004D] = CL; + UInt8[DS, 0x004D] = CL; // F000:01AD and byte ptr DS:[0x0010],CH - Alu8.And(UInt8[DS, (ushort)0x0010], CH); + Alu8.And(UInt8[DS, 0x0010], CH); // F000:01B1 pushf Stack.Push16(FlagRegister16); // F000:01B2 test AL,0xC0 - Alu8.And(AL, (byte)0xC0); + Alu8.And(AL, 0xC0); // F000:01B4 pushf Stack.Push16(FlagRegister16); // F000:01B5 mov byte ptr DS:[0x004E],AL - UInt8[DS, (ushort)0x004E] = AL; + UInt8[DS, 0x004E] = AL; // F000:01B8 test BL,0xE0 - Alu8.And(BL, (byte)0xE0); + Alu8.And(BL, 0xE0); // F000:01BB pushf Stack.Push16(FlagRegister16); // F000:01BC mov byte ptr DS:[0x004F],BL - UInt8[DS, (ushort)0x004F] = BL; + UInt8[DS, 0x004F] = BL; // F000:01C0 test byte ptr DS:[0x0011],0xBB - Alu8.And(UInt8[DS, (ushort)0x0011], (byte)0xBB); + Alu8.And(UInt8[DS, 0x0011], 0xBB); // F000:01C5 pushf Stack.Push16(FlagRegister16); // F000:01C6 mov DX,0xBFA5 - DX = (ushort)0xBFA5; + DX = 0xBFA5; // F000:01C9 mov word ptr DS:[0x0016],0x4BE6 - UInt16[DS, (ushort)0x0016] = (ushort)0x4BE6; + UInt16[DS, 0x0016] = 0x4BE6; // F000:01CF mov word ptr DS:[0x0018],0xE9D2 - UInt16[DS, (ushort)0x0018] = (ushort)0xE9D2; + UInt16[DS, 0x0018] = 0xE9D2; // F000:01D5 mov AX,0x12B1 - AX = (ushort)0x12B1; + AX = 0x12B1; // F000:01D8 push AX Stack.Push16(AX); CheckExternalEvents(cs1, 0x01D9); @@ -359,9 +359,9 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:01DC pushf Stack.Push16(FlagRegister16); // F000:01DD mov word ptr DS:[0x0050],DX - UInt16[DS, (ushort)0x0050] = DX; + UInt16[DS, 0x0050] = DX; // F000:01E1 not word ptr DS:[0x0016] - UInt16[DS, (ushort)0x0016] = unchecked((ushort)~UInt16[DS, (ushort)0x0016]); + UInt16[DS, 0x0016] = unchecked((ushort)~UInt16[DS, 0x0016]); // F000:01E5 pushf Stack.Push16(FlagRegister16); // F000:01E6 not DL @@ -369,9 +369,9 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:01E8 pushf Stack.Push16(FlagRegister16); // F000:01E9 mov byte ptr DS:[0x0052],DL - UInt8[DS, (ushort)0x0052] = DL; + UInt8[DS, 0x0052] = DL; // F000:01ED not byte ptr DS:[0x0018] - UInt8[DS, (ushort)0x0018] = unchecked((byte)~UInt8[DS, (ushort)0x0018]); + UInt8[DS, 0x0018] = unchecked((byte)~UInt8[DS, 0x0018]); // F000:01F1 pushf Stack.Push16(FlagRegister16); // F000:01F2 hlt diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/cmpneg.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/cmpneg.spec.cs.txt index a611bb5055..4c0362b502 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/cmpneg.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/cmpneg.spec.cs.txt @@ -31,189 +31,189 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov SP,0x0060 - SP = (ushort)0x0060; + SP = 0x0060; // F000:0003 mov AX,1 - AX = (ushort)0x0001; + AX = 1; // F000:0006 mov BX,2 - BX = (ushort)0x0002; + BX = 2; // F000:0009 cmp AX,BX Alu16.Sub(AX, BX); // F000:000B mov word ptr DS:[0],AX - UInt16[DS, (ushort)0x0000] = AX; + UInt16[DS, 0] = AX; // F000:000E mov word ptr DS:[2],BX - UInt16[DS, (ushort)0x0002] = BX; + UInt16[DS, 2] = BX; // F000:0012 pushf Stack.Push16(FlagRegister16); // F000:0013 mov DX,0xFFFF - DX = (ushort)0xFFFF; + DX = 0xFFFF; // F000:0016 mov word ptr DS:[4],0xFFFF - UInt16[DS, (ushort)0x0004] = (ushort)0xFFFF; + UInt16[DS, 4] = 0xFFFF; // F000:001C cmp word ptr DS:[4],DX - Alu16.Sub(UInt16[DS, (ushort)0x0004], DX); + Alu16.Sub(UInt16[DS, 4], DX); // F000:0020 mov word ptr DS:[6],DX - UInt16[DS, (ushort)0x0006] = DX; + UInt16[DS, 6] = DX; // F000:0024 pushf Stack.Push16(FlagRegister16); // F000:0025 mov CX,0xFFFF - CX = (ushort)0xFFFF; + CX = 0xFFFF; // F000:0028 mov word ptr DS:[8],1 - UInt16[DS, (ushort)0x0008] = (ushort)0x0001; + UInt16[DS, 8] = 1; // F000:002E cmp word ptr DS:[8],CX - Alu16.Sub(UInt16[DS, (ushort)0x0008], CX); + Alu16.Sub(UInt16[DS, 8], CX); // F000:0032 mov word ptr DS:[0x000A],CX - UInt16[DS, (ushort)0x000A] = CX; + UInt16[DS, 0x000A] = CX; // F000:0036 pushf Stack.Push16(FlagRegister16); // F000:0037 mov AX,0x8000 - AX = (ushort)0x8000; + AX = 0x8000; // F000:003A cmp AX,1 - Alu16.Sub(AX, unchecked((ushort)unchecked((short)(sbyte)1))); + Alu16.Sub(AX, 1); // F000:003D mov word ptr DS:[0x000C],AX - UInt16[DS, (ushort)0x000C] = AX; + UInt16[DS, 0x000C] = AX; // F000:0040 pushf Stack.Push16(FlagRegister16); // F000:0041 mov BP,0x8000 - BP = (ushort)0x8000; + BP = 0x8000; // F000:0044 cmp BP,-1 - Alu16.Sub(BP, unchecked((ushort)unchecked((short)(sbyte)-1))); + Alu16.Sub(BP, 0xFFFF); // F000:0047 mov word ptr DS:[0x000E],BP - UInt16[DS, (ushort)0x000E] = BP; + UInt16[DS, 0x000E] = BP; // F000:004B pushf Stack.Push16(FlagRegister16); // F000:004C mov SI,0x7F81 - SI = (ushort)0x7F81; + SI = 0x7F81; // F000:004F cmp SI,0x903C - Alu16.Sub(SI, (ushort)0x903C); + Alu16.Sub(SI, 0x903C); // F000:0053 mov word ptr DS:[0x0010],SI - UInt16[DS, (ushort)0x0010] = SI; + UInt16[DS, 0x0010] = SI; // F000:0057 pushf Stack.Push16(FlagRegister16); // F000:0058 mov word ptr DS:[0x0012],0xEFC3 - UInt16[DS, (ushort)0x0012] = (ushort)0xEFC3; + UInt16[DS, 0x0012] = 0xEFC3; // F000:005E cmp word ptr DS:[0x0012],0xC664 - Alu16.Sub(UInt16[DS, (ushort)0x0012], (ushort)0xC664); + Alu16.Sub(UInt16[DS, 0x0012], 0xC664); // F000:0064 pushf Stack.Push16(FlagRegister16); // F000:0065 mov word ptr DS:[0x0014],0xE933 - UInt16[DS, (ushort)0x0014] = (ushort)0xE933; + UInt16[DS, 0x0014] = 0xE933; // F000:006B cmp word ptr DS:[0x0014],0x0064 - Alu16.Sub(UInt16[DS, (ushort)0x0014], unchecked((ushort)unchecked((short)(sbyte)100))); + Alu16.Sub(UInt16[DS, 0x0014], 0x0064); // F000:0070 pushf Stack.Push16(FlagRegister16); // F000:0071 mov byte ptr DS:[0x0016],1 - UInt8[DS, (ushort)0x0016] = (byte)0x01; + UInt8[DS, 0x0016] = 1; // F000:0076 cmp byte ptr DS:[0x0016],2 - Alu8.Sub(UInt8[DS, (ushort)0x0016], (byte)0x02); + Alu8.Sub(UInt8[DS, 0x0016], 2); // F000:007B pushf Stack.Push16(FlagRegister16); // F000:007C mov DH,0xFF - DH = (byte)0xFF; + DH = 0xFF; // F000:007E cmp DH,0xFF - Alu8.Sub(DH, (byte)0xFF); + Alu8.Sub(DH, 0xFF); // F000:0081 mov word ptr DS:[0x0017],DX - UInt16[DS, (ushort)0x0017] = DX; + UInt16[DS, 0x0017] = DX; // F000:0085 pushf Stack.Push16(FlagRegister16); // F000:0086 mov AL,0xFF - AL = (byte)0xFF; + AL = 0xFF; // F000:0088 cmp AL,1 - Alu8.Sub(AL, (byte)0x01); + Alu8.Sub(AL, 1); // F000:008A mov word ptr DS:[0x0019],AX - UInt16[DS, (ushort)0x0019] = AX; + UInt16[DS, 0x0019] = AX; // F000:008D pushf Stack.Push16(FlagRegister16); // F000:008E mov byte ptr DS:[0x001B],0x80 - UInt8[DS, (ushort)0x001B] = (byte)0x80; + UInt8[DS, 0x001B] = 0x80; // F000:0093 mov CH,1 - CH = (byte)0x01; + CH = 1; // F000:0095 cmp CH,byte ptr DS:[0x001B] - Alu8.Sub(CH, UInt8[DS, (ushort)0x001B]); + Alu8.Sub(CH, UInt8[DS, 0x001B]); // F000:0099 mov word ptr DS:[0x001C],CX - UInt16[DS, (ushort)0x001C] = CX; + UInt16[DS, 0x001C] = CX; // F000:009D pushf Stack.Push16(FlagRegister16); // F000:009E mov BL,0x80 - BL = (byte)0x80; + BL = 0x80; // F000:00A0 mov byte ptr DS:[0x001E],0x7F - UInt8[DS, (ushort)0x001E] = (byte)0x7F; + UInt8[DS, 0x001E] = 0x7F; // F000:00A5 cmp byte ptr DS:[0x001E],BL - Alu8.Sub(UInt8[DS, (ushort)0x001E], BL); + Alu8.Sub(UInt8[DS, 0x001E], BL); // F000:00A9 mov word ptr DS:[0x001F],BX - UInt16[DS, (ushort)0x001F] = BX; + UInt16[DS, 0x001F] = BX; // F000:00AD pushf Stack.Push16(FlagRegister16); // F000:00AE mov AL,0xBC - AL = (byte)0xBC; + AL = 0xBC; // F000:00B0 mov AH,0x8E - AH = (byte)0x8E; + AH = 0x8E; // F000:00B2 cmp AH,AL Alu8.Sub(AH, AL); // F000:00B4 mov word ptr DS:[0x0021],AX - UInt16[DS, (ushort)0x0021] = AX; + UInt16[DS, 0x0021] = AX; // F000:00B7 pushf Stack.Push16(FlagRegister16); // F000:00B8 mov CX,0 - CX = (ushort)0x0000; + CX = 0; // F000:00BB neg CX - CX = Alu16.Sub((ushort)0x0000, CX); - CarryFlag = CX != (ushort)0x0000; + CX = Alu16.Sub(0, CX); + CarryFlag = CX != 0; // F000:00BD mov word ptr DS:[0x0022],CX - UInt16[DS, (ushort)0x0022] = CX; + UInt16[DS, 0x0022] = CX; // F000:00C1 pushf Stack.Push16(FlagRegister16); // F000:00C2 mov word ptr DS:[0x0024],0x7FFF - UInt16[DS, (ushort)0x0024] = (ushort)0x7FFF; + UInt16[DS, 0x0024] = 0x7FFF; // F000:00C8 neg word ptr DS:[0x0024] - UInt16[DS, (ushort)0x0024] = Alu16.Sub((ushort)0x0000, UInt16[DS, (ushort)0x0024]); - CarryFlag = UInt16[DS, (ushort)0x0024] != (ushort)0x0000; + UInt16[DS, 0x0024] = Alu16.Sub(0, UInt16[DS, 0x0024]); + CarryFlag = UInt16[DS, 0x0024] != 0; // F000:00CC pushf Stack.Push16(FlagRegister16); // F000:00CD mov BP,0x8000 - BP = (ushort)0x8000; + BP = 0x8000; // F000:00D0 neg BP - BP = Alu16.Sub((ushort)0x0000, BP); - CarryFlag = BP != (ushort)0x0000; + BP = Alu16.Sub(0, BP); + CarryFlag = BP != 0; // F000:00D2 mov word ptr DS:[0x0026],BP - UInt16[DS, (ushort)0x0026] = BP; + UInt16[DS, 0x0026] = BP; // F000:00D6 pushf Stack.Push16(FlagRegister16); // F000:00D7 mov word ptr DS:[0x0028],0xACE9 - UInt16[DS, (ushort)0x0028] = (ushort)0xACE9; + UInt16[DS, 0x0028] = 0xACE9; // F000:00DD neg word ptr DS:[0x0028] - UInt16[DS, (ushort)0x0028] = Alu16.Sub((ushort)0x0000, UInt16[DS, (ushort)0x0028]); - CarryFlag = UInt16[DS, (ushort)0x0028] != (ushort)0x0000; + UInt16[DS, 0x0028] = Alu16.Sub(0, UInt16[DS, 0x0028]); + CarryFlag = UInt16[DS, 0x0028] != 0; // F000:00E1 pushf Stack.Push16(FlagRegister16); // F000:00E2 mov AH,0 - AH = (byte)0x00; + AH = 0; // F000:00E4 neg AH - AH = Alu8.Sub((byte)0x00, AH); - CarryFlag = AH != (byte)0x00; + AH = Alu8.Sub(0, AH); + CarryFlag = AH != 0; // F000:00E6 mov word ptr DS:[0x002A],AX - UInt16[DS, (ushort)0x002A] = AX; + UInt16[DS, 0x002A] = AX; // F000:00E9 pushf Stack.Push16(FlagRegister16); // F000:00EA mov byte ptr DS:[0x002C],0x7F - UInt8[DS, (ushort)0x002C] = (byte)0x7F; + UInt8[DS, 0x002C] = 0x7F; // F000:00EF neg byte ptr DS:[0x002C] - UInt8[DS, (ushort)0x002C] = Alu8.Sub((byte)0x00, UInt8[DS, (ushort)0x002C]); - CarryFlag = UInt8[DS, (ushort)0x002C] != (byte)0x00; + UInt8[DS, 0x002C] = Alu8.Sub(0, UInt8[DS, 0x002C]); + CarryFlag = UInt8[DS, 0x002C] != 0; // F000:00F3 pushf Stack.Push16(FlagRegister16); // F000:00F4 mov CL,0xC9 - CL = (byte)0xC9; + CL = 0xC9; // F000:00F6 neg CL - CL = Alu8.Sub((byte)0x00, CL); - CarryFlag = CL != (byte)0x00; + CL = Alu8.Sub(0, CL); + CarryFlag = CL != 0; // F000:00F8 mov word ptr DS:[0x002D],CX - UInt16[DS, (ushort)0x002D] = CX; + UInt16[DS, 0x002D] = CX; // F000:00FC pushf Stack.Push16(FlagRegister16); // F000:00FD mov byte ptr DS:[0x002F],0x80 - UInt8[DS, (ushort)0x002F] = (byte)0x80; + UInt8[DS, 0x002F] = 0x80; // F000:0102 neg byte ptr DS:[0x002F] - UInt8[DS, (ushort)0x002F] = Alu8.Sub((byte)0x00, UInt8[DS, (ushort)0x002F]); - CarryFlag = UInt8[DS, (ushort)0x002F] != (byte)0x00; + UInt8[DS, 0x002F] = Alu8.Sub(0, UInt8[DS, 0x002F]); + CarryFlag = UInt8[DS, 0x002F] != 0; // F000:0106 pushf Stack.Push16(FlagRegister16); // F000:0107 hlt diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/control.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/control.spec.cs.txt index 970d14f455..eb07fa4825 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/control.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/control.spec.cs.txt @@ -31,14 +31,14 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0x1000 - AX = (ushort)0x1000; + AX = 0x1000; // F000:0003 mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:0005 mov SP,0x1000 - SP = (ushort)0x1000; + SP = 0x1000; // F000:0008 mov CX,0xFEFF - CX = (ushort)0xFEFF; + CX = 0xFEFF; // F000:000B push CX Stack.Push16(CX); CheckExternalEvents(cs1, 0x000C); @@ -58,7 +58,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:0012 pop AX AX = Stack.Pop16(); // F000:0013 mov DX,1 - DX = (ushort)0x0001; + DX = 1; // F000:0016 push DX Stack.Push16(DX); CheckExternalEvents(cs1, 0x0017); @@ -84,13 +84,13 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:001D pop BX BX = Stack.Pop16(); // F000:001E mov CX,0 - CX = (ushort)0x0000; + CX = 0; // F000:0021 mov DS,CX DS = CX; // F000:0023 mov word ptr DS:[0],AX - UInt16[DS, (ushort)0x0000] = AX; + UInt16[DS, 0] = AX; // F000:0026 mov word ptr DS:[2],BX - UInt16[DS, (ushort)0x0002] = BX; + UInt16[DS, 2] = BX; // F000:002A hlt return Hlt(); label_F000_FFF0_FFFF0_0: diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/datatrnf.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/datatrnf.spec.cs.txt index 5723484132..9ed6f79696 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/datatrnf.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/datatrnf.spec.cs.txt @@ -31,37 +31,37 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AH,0xED - AH = (byte)0xED; + AH = 0xED; // F000:0002 sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:0003 lahf AH = unchecked((byte)FlagRegister16); // F000:0004 mov byte ptr DS:[0],AH - UInt8[DS, (ushort)0x0000] = AH; + UInt8[DS, 0] = AH; // F000:0008 mov AL,AH AL = AH; // F000:000A mov AX,0x00B7 - AX = (ushort)0x00B7; + AX = 0x00B7; // F000:000D mov DX,AX DX = AX; // F000:000F mov AH,0xA5 - AH = (byte)0xA5; + AH = 0xA5; // F000:0011 mov AL,0xC7 - AL = (byte)0xC7; + AL = 0xC7; // F000:0013 mov word ptr DS:[2],AX - UInt16[DS, (ushort)0x0002] = AX; + UInt16[DS, 2] = AX; // F000:0016 sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:0017 lahf AH = unchecked((byte)FlagRegister16); // F000:0018 mov word ptr DS:[0x0020],AX - UInt16[DS, (ushort)0x0020] = AX; + UInt16[DS, 0x0020] = AX; // F000:001B mov AX,0xF752 - AX = (ushort)0xF752; + AX = 0xF752; // F000:001E mov BX,AX BX = AX; // F000:0020 mov AX,0x87C7 - AX = (ushort)0x87C7; + AX = 0x87C7; // F000:0023 xchg BX,AX ushort temp_F000_0023_F0023 = BX; BX = AX; @@ -69,40 +69,40 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:0024 mov DS,AX DS = AX; // F000:0026 lds SI,word ptr DS:[BX+0x030D] - ushort lxsOffset_F000_0026_F0026 = unchecked((ushort)(BX + (short)781)); + ushort lxsOffset_F000_0026_F0026 = unchecked((ushort)(BX + 0x030D)); ushort lxsValue_F000_0026_F0026 = UInt16[DS, lxsOffset_F000_0026_F0026]; - ushort lxsSegment_F000_0026_F0026 = UInt16[DS, (ushort)(lxsOffset_F000_0026_F0026 + (ushort)0x0002)]; + ushort lxsSegment_F000_0026_F0026 = UInt16[DS, (ushort)(lxsOffset_F000_0026_F0026 + 2)]; SI = unchecked((ushort)lxsValue_F000_0026_F0026); DS = unchecked((ushort)lxsSegment_F000_0026_F0026); // F000:002A mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:002D mov BX,DS BX = DS; // F000:002F mov DS,AX DS = AX; // F000:0031 mov word ptr DS:[4],BX - UInt16[DS, (ushort)0x0004] = BX; + UInt16[DS, 4] = BX; // F000:0035 mov word ptr DS:[6],SI - UInt16[DS, (ushort)0x0006] = SI; + UInt16[DS, 6] = SI; // F000:0039 mov DS,BX DS = BX; // F000:003B mov BX,0xFFFF - BX = (ushort)0xFFFF; + BX = 0xFFFF; // F000:003E mov AX,0x1000 - AX = (ushort)0x1000; + AX = 0x1000; // F000:0041 mov AX,0x5798 - AX = (ushort)0x5798; + AX = 0x5798; // F000:0044 mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:0046 mov SP,9 - SP = (ushort)0x0009; + SP = 9; // F000:0049 mov CX,0xABCD - CX = (ushort)0xABCD; + CX = 0xABCD; // F000:004C push CX Stack.Push16(CX); // F000:004D mov CX,0x8CF1 - CX = (ushort)0x8CF1; + CX = 0x8CF1; // F000:0050 mov ES,CX ES = CX; // F000:0052 push ES @@ -112,58 +112,58 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { FlagRegister16 = Stack.Pop16(); CheckExternalEvents(cs1, 0x0054); // F000:0054 les DI,word ptr DS:[BX+SI-46] - ushort lxsOffset_F000_0054_F0054 = unchecked((ushort)(BX + SI + (sbyte)-46)); + ushort lxsOffset_F000_0054_F0054 = unchecked((ushort)(BX + SI + -0x2E)); ushort lxsValue_F000_0054_F0054 = UInt16[DS, lxsOffset_F000_0054_F0054]; - ushort lxsSegment_F000_0054_F0054 = UInt16[DS, (ushort)(lxsOffset_F000_0054_F0054 + (ushort)0x0002)]; + ushort lxsSegment_F000_0054_F0054 = UInt16[DS, (ushort)(lxsOffset_F000_0054_F0054 + 2)]; DI = unchecked((ushort)lxsValue_F000_0054_F0054); ES = unchecked((ushort)lxsSegment_F000_0054_F0054); // F000:0057 lea SI,BP+DI-452 - SI = unchecked((ushort)(BP + DI + (short)-452)); + SI = unchecked((ushort)(BP + DI + -0x01C4)); // F000:005B pushf Stack.Push16(FlagRegister16); // F000:005C mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:005F mov DS,AX DS = AX; // F000:0061 mov word ptr DS:[8],DI - UInt16[DS, (ushort)0x0008] = DI; + UInt16[DS, 8] = DI; // F000:0065 mov AX,ES AX = ES; // F000:0067 mov word ptr DS:[0x000A],AX - UInt16[DS, (ushort)0x000A] = AX; + UInt16[DS, 0x000A] = AX; // F000:006A mov word ptr DS:[0x000C],SI - UInt16[DS, (ushort)0x000C] = SI; + UInt16[DS, 0x000C] = SI; // F000:006E mov AX,0x1000 - AX = (ushort)0x1000; + AX = 0x1000; // F000:0071 mov DS,AX DS = AX; // F000:0073 pop word ptr DS:[SI+1] - ushort popStackCheck_F000_0073_F0073 = Stack.Peek16(unchecked((int)0x00000000u)); - ushort popDestinationCheck_F000_0073_F0073 = UInt16[DS, (ushort)(SI + (sbyte)1)]; + ushort popStackCheck_F000_0073_F0073 = Stack.Peek16(unchecked((int)0)); + ushort popDestinationCheck_F000_0073_F0073 = UInt16[DS, (ushort)(SI + 1)]; ushort poppedValue_F000_0073_F0073 = Stack.Pop16(); - UInt16[DS, (ushort)(SI + (sbyte)1)] = unchecked((ushort)poppedValue_F000_0073_F0073); + UInt16[DS, (ushort)(SI + 1)] = unchecked((ushort)poppedValue_F000_0073_F0073); // F000:0076 xchg DI,word ptr DS:[BX+SI+2] - ushort xchgOffset_F000_0076_F0076 = unchecked((ushort)(BX + SI + (sbyte)2)); + ushort xchgOffset_F000_0076_F0076 = unchecked((ushort)(BX + SI + 2)); ushort temp_F000_0076_F0076 = DI; DI = UInt16[DS, xchgOffset_F000_0076_F0076]; UInt16[DS, xchgOffset_F000_0076_F0076] = unchecked((ushort)temp_F000_0076_F0076); // F000:0079 push word ptr DS:[BX+SI+2] - Stack.Push16(UInt16[DS, (ushort)(BX + SI + (sbyte)2)]); + Stack.Push16(UInt16[DS, (ushort)(BX + SI + 2)]); // F000:007C pop ES ES = UInt16[SS, SP]; - SP = unchecked((ushort)(SP + (ushort)0x0002)); + SP = unchecked((ushort)(SP + 2)); // F000:007D mov DX,ES DX = ES; // F000:007F mov AX,DS AX = DS; // F000:0081 mov CX,0 - CX = (ushort)0x0000; + CX = 0; // F000:0084 mov DS,CX DS = CX; // F000:0086 mov word ptr DS:[0x000E],DI - UInt16[DS, (ushort)0x000E] = DI; + UInt16[DS, 0x000E] = DI; // F000:008A mov word ptr DS:[0x0010],DX - UInt16[DS, (ushort)0x0010] = DX; + UInt16[DS, 0x0010] = DX; // F000:008E mov DS,AX DS = AX; // F000:0090 pop DX @@ -180,21 +180,21 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:0096 mov AX,DS AX = DS; // F000:0098 mov DX,0 - DX = (ushort)0x0000; + DX = 0; // F000:009B mov DS,DX DS = DX; // F000:009D mov word ptr DS:[0x0012],BX - UInt16[DS, (ushort)0x0012] = BX; + UInt16[DS, 0x0012] = BX; // F000:00A1 mov word ptr DS:[0x0014],CX - UInt16[DS, (ushort)0x0014] = CX; + UInt16[DS, 0x0014] = CX; // F000:00A5 mov DS,AX DS = AX; // F000:00A7 mov word ptr DS:[BX+DI],ES UInt16[DS, (ushort)(BX + DI)] = ES; // F000:00A9 mov BX,0xB800 - BX = (ushort)0xB800; + BX = 0xB800; // F000:00AC mov AX,0xA0A1 - AX = (ushort)0xA0A1; + AX = 0xA0A1; // F000:00AF xlat byte ptr DS:[BX+AL] AL = UInt8[DS, (ushort)(BX + unchecked((ushort)AL))]; // F000:00B0 xchg AH,AL @@ -204,19 +204,19 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:00B2 xlat byte ptr DS:[BX+AL] AL = UInt8[DS, (ushort)(BX + unchecked((ushort)AL))]; // F000:00B3 mov DX,0 - DX = (ushort)0x0000; + DX = 0; // F000:00B6 mov DS,DX DS = DX; // F000:00B8 mov word ptr DS:[0x0016],AX - UInt16[DS, (ushort)0x0016] = AX; + UInt16[DS, 0x0016] = AX; // F000:00BB mov DX,0x00B7 - DX = (ushort)0x00B7; + DX = 0x00B7; // F000:00BE mov AL,0xFF - AL = (byte)0xFF; + AL = 0xFF; // F000:00C0 mov AL,0xF1 - AL = (byte)0xF1; + AL = 0xF1; // F000:00C2 mov word ptr DS:[0x0018],AX - UInt16[DS, (ushort)0x0018] = AX; + UInt16[DS, 0x0018] = AX; // F000:00C5 hlt return Hlt(); label_F000_FFF0_FFFF0_0: diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/div.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/div.spec.cs.txt index e5fe07d519..cd8e9a2749 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/div.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/div.spec.cs.txt @@ -40,27 +40,27 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_0061_F0061(int loadOffset) { CheckExternalEvents(cs1, 0x0061); // F000:0061 add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:0064 mov word ptr DS:[0x000C],AX - UInt16[DS, (ushort)0x000C] = AX; + UInt16[DS, 0x000C] = AX; // F000:0067 mov word ptr DS:[0x000E],CX - UInt16[DS, (ushort)0x000E] = CX; + UInt16[DS, 0x000E] = CX; // F000:006B mov word ptr DS:[0x0010],DX - UInt16[DS, (ushort)0x0010] = DX; + UInt16[DS, 0x0010] = DX; // F000:006F pushf Stack.Push16(FlagRegister16); // F000:0070 mov DX,0xFFFF - DX = (ushort)0xFFFF; + DX = 0xFFFF; // F000:0073 mov AX,0xFFFF - AX = (ushort)0xFFFF; + AX = 0xFFFF; // F000:0076 mov word ptr DS:[0x0012],0xFFFF - UInt16[DS, (ushort)0x0012] = (ushort)0xFFFF; + UInt16[DS, 0x0012] = 0xFFFF; // F000:007C mov word ptr SS:[BP],4 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0004; + UInt16[SS, (ushort)(BP + 0)] = 4; // F000:0081 div word ptr DS:[0x0012] try { - ushort divisor_F000_0081_F0081 = UInt16[DS, (ushort)0x0012]; - uint dividend_F000_0081_F0081 = unchecked((uint)(unchecked((uint)DX) << 16 | unchecked((uint)AX))); + ushort divisor_F000_0081_F0081 = UInt16[DS, 0x0012]; + uint dividend_F000_0081_F0081 = unchecked((uint)(unchecked((uint)DX) << 0x00000010 | unchecked((uint)AX))); ushort quotient_F000_0081_F0081 = Alu16.Div(unchecked((uint)dividend_F000_0081_F0081), unchecked((ushort)divisor_F000_0081_F0081)); AX = unchecked((ushort)quotient_F000_0081_F0081); DX = unchecked((ushort)(dividend_F000_0081_F0081 % unchecked((uint)divisor_F000_0081_F0081))); @@ -79,25 +79,25 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_0085_F0085(int loadOffset) { CheckExternalEvents(cs1, 0x0085); // F000:0085 add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:0088 mov word ptr DS:[0x0014],AX - UInt16[DS, (ushort)0x0014] = AX; + UInt16[DS, 0x0014] = AX; // F000:008B mov word ptr DS:[0x0016],DX - UInt16[DS, (ushort)0x0016] = DX; + UInt16[DS, 0x0016] = DX; // F000:008F pushf Stack.Push16(FlagRegister16); // F000:0090 mov DX,0xFBB4 - DX = (ushort)0xFBB4; + DX = 0xFBB4; // F000:0093 mov AX,0xC3DA - AX = (ushort)0xC3DA; + AX = 0xC3DA; // F000:0096 mov CX,0xAE8E - CX = (ushort)0xAE8E; + CX = 0xAE8E; // F000:0099 mov word ptr SS:[BP],2 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0002; + UInt16[SS, (ushort)(BP + 0)] = 2; // F000:009E div CX try { ushort divisor_F000_009E_F009E = CX; - uint dividend_F000_009E_F009E = unchecked((uint)(unchecked((uint)DX) << 16 | unchecked((uint)AX))); + uint dividend_F000_009E_F009E = unchecked((uint)(unchecked((uint)DX) << 0x00000010 | unchecked((uint)AX))); ushort quotient_F000_009E_F009E = Alu16.Div(unchecked((uint)dividend_F000_009E_F009E), unchecked((ushort)divisor_F000_009E_F009E)); AX = unchecked((ushort)quotient_F000_009E_F009E); DX = unchecked((ushort)(dividend_F000_009E_F009E % unchecked((uint)divisor_F000_009E_F009E))); @@ -116,41 +116,41 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_00A0_F00A0(int loadOffset) { CheckExternalEvents(cs1, 0x00A0); // F000:00A0 add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:00A3 mov word ptr DS:[0x0018],AX - UInt16[DS, (ushort)0x0018] = AX; + UInt16[DS, 0x0018] = AX; // F000:00A6 mov word ptr DS:[0x001A],CX - UInt16[DS, (ushort)0x001A] = CX; + UInt16[DS, 0x001A] = CX; // F000:00AA mov word ptr DS:[0x001C],DX - UInt16[DS, (ushort)0x001C] = DX; + UInt16[DS, 0x001C] = DX; // F000:00AE pushf Stack.Push16(FlagRegister16); // F000:00AF mov DX,0x25C9 - DX = (ushort)0x25C9; + DX = 0x25C9; // F000:00B2 mov AX,0xF110 - AX = (ushort)0xF110; + AX = 0xF110; // F000:00B5 mov word ptr SS:[BP],2 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0002; + UInt16[SS, (ushort)(BP + 0)] = 2; // F000:00BA div AX ushort divisor_F000_00BA_F00BA = AX; - uint dividend_F000_00BA_F00BA = unchecked((uint)(unchecked((uint)DX) << 16 | unchecked((uint)AX))); + uint dividend_F000_00BA_F00BA = unchecked((uint)(unchecked((uint)DX) << 0x00000010 | unchecked((uint)AX))); ushort quotient_F000_00BA_F00BA = Alu16.Div(unchecked((uint)dividend_F000_00BA_F00BA), unchecked((ushort)divisor_F000_00BA_F00BA)); AX = unchecked((ushort)quotient_F000_00BA_F00BA); DX = unchecked((ushort)(dividend_F000_00BA_F00BA % unchecked((uint)divisor_F000_00BA_F00BA))); // F000:00BC add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:00BF mov word ptr DS:[0x001E],AX - UInt16[DS, (ushort)0x001E] = AX; + UInt16[DS, 0x001E] = AX; // F000:00C2 mov word ptr DS:[0x0020],DX - UInt16[DS, (ushort)0x0020] = DX; + UInt16[DS, 0x0020] = DX; // F000:00C6 pushf Stack.Push16(FlagRegister16); // F000:00C7 mov AX,0x0014 - AX = (ushort)0x0014; + AX = 0x0014; // F000:00CA mov BX,5 - BX = (ushort)0x0005; + BX = 5; // F000:00CD mov word ptr SS:[BP],2 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0002; + UInt16[SS, (ushort)(BP + 0)] = 2; // F000:00D2 div BL byte divisor_F000_00D2_F00D2 = BL; ushort dividend_F000_00D2_F00D2 = AX; @@ -158,43 +158,43 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { AL = unchecked((byte)quotient_F000_00D2_F00D2); AH = unchecked((byte)(dividend_F000_00D2_F00D2 % unchecked((ushort)divisor_F000_00D2_F00D2))); // F000:00D4 add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:00D7 mov word ptr DS:[0x0022],AX - UInt16[DS, (ushort)0x0022] = AX; + UInt16[DS, 0x0022] = AX; // F000:00DA mov word ptr DS:[0x0024],BX - UInt16[DS, (ushort)0x0024] = BX; + UInt16[DS, 0x0024] = BX; // F000:00DE mov word ptr DS:[0x0026],DX - UInt16[DS, (ushort)0x0026] = DX; + UInt16[DS, 0x0026] = DX; // F000:00E2 pushf Stack.Push16(FlagRegister16); // F000:00E3 mov DX,0xA320 - DX = (ushort)0xA320; + DX = 0xA320; // F000:00E6 mov AX,0xC3DA - AX = (ushort)0xC3DA; + AX = 0xC3DA; // F000:00E9 mov word ptr DS:[0x0028],0x00FF - UInt16[DS, (ushort)0x0028] = (ushort)0x00FF; + UInt16[DS, 0x0028] = 0x00FF; // F000:00EF mov word ptr SS:[BP],4 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0004; + UInt16[SS, (ushort)(BP + 0)] = 4; // F000:00F4 div byte ptr DS:[0x0028] - byte divisor_F000_00F4_F00F4 = UInt8[DS, (ushort)0x0028]; + byte divisor_F000_00F4_F00F4 = UInt8[DS, 0x0028]; ushort dividend_F000_00F4_F00F4 = AX; byte quotient_F000_00F4_F00F4 = Alu8.Div(unchecked((ushort)dividend_F000_00F4_F00F4), unchecked((byte)divisor_F000_00F4_F00F4)); AL = unchecked((byte)quotient_F000_00F4_F00F4); AH = unchecked((byte)(dividend_F000_00F4_F00F4 % unchecked((ushort)divisor_F000_00F4_F00F4))); // F000:00F8 add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:00FB mov word ptr DS:[0x002A],AX - UInt16[DS, (ushort)0x002A] = AX; + UInt16[DS, 0x002A] = AX; // F000:00FE mov word ptr DS:[0x002C],DX - UInt16[DS, (ushort)0x002C] = DX; + UInt16[DS, 0x002C] = DX; // F000:0102 pushf Stack.Push16(FlagRegister16); // F000:0103 mov AX,0xFFFF - AX = (ushort)0xFFFF; + AX = 0xFFFF; // F000:0106 mov DH,1 - DH = (byte)0x01; + DH = 1; // F000:0108 mov word ptr SS:[BP],2 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0002; + UInt16[SS, (ushort)(BP + 0)] = 2; // F000:010D div DH try { byte divisor_F000_010D_F010D = DH; @@ -217,22 +217,22 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_010F_F010F(int loadOffset) { CheckExternalEvents(cs1, 0x010F); // F000:010F add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:0112 mov word ptr DS:[0x002E],AX - UInt16[DS, (ushort)0x002E] = AX; + UInt16[DS, 0x002E] = AX; // F000:0115 mov word ptr DS:[0x0030],DX - UInt16[DS, (ushort)0x0030] = DX; + UInt16[DS, 0x0030] = DX; // F000:0119 pushf Stack.Push16(FlagRegister16); // F000:011A mov AX,0xFFFF - AX = (ushort)0xFFFF; + AX = 0xFFFF; // F000:011D mov word ptr DS:[0x0032],0xFFFF - UInt16[DS, (ushort)0x0032] = (ushort)0xFFFF; + UInt16[DS, 0x0032] = 0xFFFF; // F000:0123 mov word ptr SS:[BP],4 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0004; + UInt16[SS, (ushort)(BP + 0)] = 4; // F000:0128 div byte ptr DS:[0x0033] try { - byte divisor_F000_0128_F0128 = UInt8[DS, (ushort)0x0033]; + byte divisor_F000_0128_F0128 = UInt8[DS, 0x0033]; ushort dividend_F000_0128_F0128 = AX; byte quotient_F000_0128_F0128 = Alu8.Div(unchecked((ushort)dividend_F000_0128_F0128), unchecked((byte)divisor_F000_0128_F0128)); AL = unchecked((byte)quotient_F000_0128_F0128); @@ -252,19 +252,19 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_012C_F012C(int loadOffset) { CheckExternalEvents(cs1, 0x012C); // F000:012C add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:012F mov word ptr DS:[0x0034],AX - UInt16[DS, (ushort)0x0034] = AX; + UInt16[DS, 0x0034] = AX; // F000:0132 mov word ptr DS:[0x0036],DX - UInt16[DS, (ushort)0x0036] = DX; + UInt16[DS, 0x0036] = DX; // F000:0136 pushf Stack.Push16(FlagRegister16); // F000:0137 mov AX,0x008A - AX = (ushort)0x008A; + AX = 0x008A; // F000:013A mov CX,0xAE8E - CX = (ushort)0xAE8E; + CX = 0xAE8E; // F000:013D mov word ptr SS:[BP],2 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0002; + UInt16[SS, (ushort)(BP + 0)] = 2; // F000:0142 div CL byte divisor_F000_0142_F0142 = CL; ushort dividend_F000_0142_F0142 = AX; @@ -272,19 +272,19 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { AL = unchecked((byte)quotient_F000_0142_F0142); AH = unchecked((byte)(dividend_F000_0142_F0142 % unchecked((ushort)divisor_F000_0142_F0142))); // F000:0144 add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:0147 mov word ptr DS:[0x0038],AX - UInt16[DS, (ushort)0x0038] = AX; + UInt16[DS, 0x0038] = AX; // F000:014A mov word ptr DS:[0x003A],CX - UInt16[DS, (ushort)0x003A] = CX; + UInt16[DS, 0x003A] = CX; // F000:014E pushf Stack.Push16(FlagRegister16); // F000:014F mov DX,0x0669 - DX = (ushort)0x0669; + DX = 0x0669; // F000:0152 mov AX,0x89F3 - AX = (ushort)0x89F3; + AX = 0x89F3; // F000:0155 mov word ptr SS:[BP],2 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0002; + UInt16[SS, (ushort)(BP + 0)] = 2; // F000:015A div AL byte divisor_F000_015A_F015A = AL; ushort dividend_F000_015A_F015A = AX; @@ -292,49 +292,49 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { AL = unchecked((byte)quotient_F000_015A_F015A); AH = unchecked((byte)(dividend_F000_015A_F015A % unchecked((ushort)divisor_F000_015A_F015A))); // F000:015C add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:015F mov word ptr DS:[0x003C],AX - UInt16[DS, (ushort)0x003C] = AX; + UInt16[DS, 0x003C] = AX; // F000:0162 mov word ptr DS:[0x003E],DX - UInt16[DS, (ushort)0x003E] = DX; + UInt16[DS, 0x003E] = DX; // F000:0166 pushf Stack.Push16(FlagRegister16); // F000:0167 mov DX,0 - DX = (ushort)0x0000; + DX = 0; // F000:016A mov AX,0x0014 - AX = (ushort)0x0014; + AX = 0x0014; // F000:016D mov BX,0x00FA - BX = (ushort)0x00FA; + BX = 0x00FA; // F000:0170 mov word ptr SS:[BP],2 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0002; + UInt16[SS, (ushort)(BP + 0)] = 2; // F000:0175 idiv BX short divisor_F000_0175_F0175 = unchecked((short)BX); - int dividend_F000_0175_F0175 = unchecked((int)(unchecked((uint)DX) << 16 | unchecked((uint)AX))); + int dividend_F000_0175_F0175 = unchecked((int)(unchecked((uint)DX) << 0x00000010 | unchecked((uint)AX))); short quotient_F000_0175_F0175 = Alu16.Idiv(unchecked((int)dividend_F000_0175_F0175), unchecked((short)divisor_F000_0175_F0175)); AX = unchecked((ushort)quotient_F000_0175_F0175); DX = unchecked((ushort)(dividend_F000_0175_F0175 % unchecked((int)divisor_F000_0175_F0175))); // F000:0177 add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:017A mov word ptr DS:[0x0040],AX - UInt16[DS, (ushort)0x0040] = AX; + UInt16[DS, 0x0040] = AX; // F000:017D mov word ptr DS:[0x0042],BX - UInt16[DS, (ushort)0x0042] = BX; + UInt16[DS, 0x0042] = BX; // F000:0181 mov word ptr DS:[0x0044],DX - UInt16[DS, (ushort)0x0044] = DX; + UInt16[DS, 0x0044] = DX; // F000:0185 pushf Stack.Push16(FlagRegister16); // F000:0186 mov DX,0xA320 - DX = (ushort)0xA320; + DX = 0xA320; // F000:0189 mov AX,0xC3DA - AX = (ushort)0xC3DA; + AX = 0xC3DA; // F000:018C mov word ptr DS:[0x0046],0xFFFF - UInt16[DS, (ushort)0x0046] = (ushort)0xFFFF; + UInt16[DS, 0x0046] = 0xFFFF; // F000:0192 mov word ptr SS:[BP],4 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0004; + UInt16[SS, (ushort)(BP + 0)] = 4; // F000:0197 idiv word ptr DS:[0x0046] try { - short divisor_F000_0197_F0197 = unchecked((short)UInt16[DS, (ushort)0x0046]); - int dividend_F000_0197_F0197 = unchecked((int)(unchecked((uint)DX) << 16 | unchecked((uint)AX))); + short divisor_F000_0197_F0197 = unchecked((short)UInt16[DS, 0x0046]); + int dividend_F000_0197_F0197 = unchecked((int)(unchecked((uint)DX) << 0x00000010 | unchecked((uint)AX))); short quotient_F000_0197_F0197 = Alu16.Idiv(unchecked((int)dividend_F000_0197_F0197), unchecked((short)divisor_F000_0197_F0197)); AX = unchecked((ushort)quotient_F000_0197_F0197); DX = unchecked((ushort)(dividend_F000_0197_F0197 % unchecked((int)divisor_F000_0197_F0197))); @@ -353,93 +353,93 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_019B_F019B(int loadOffset) { CheckExternalEvents(cs1, 0x019B); // F000:019B add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:019E mov word ptr DS:[0x0048],AX - UInt16[DS, (ushort)0x0048] = AX; + UInt16[DS, 0x0048] = AX; // F000:01A1 mov word ptr DS:[0x004A],DX - UInt16[DS, (ushort)0x004A] = DX; + UInt16[DS, 0x004A] = DX; // F000:01A5 pushf Stack.Push16(FlagRegister16); // F000:01A6 mov DX,0xFFFF - DX = (ushort)0xFFFF; + DX = 0xFFFF; // F000:01A9 mov AX,0xFFFF - AX = (ushort)0xFFFF; + AX = 0xFFFF; // F000:01AC mov CX,1 - CX = (ushort)0x0001; + CX = 1; // F000:01AF mov word ptr SS:[BP],2 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0002; + UInt16[SS, (ushort)(BP + 0)] = 2; // F000:01B4 idiv CX short divisor_F000_01B4_F01B4 = unchecked((short)CX); - int dividend_F000_01B4_F01B4 = unchecked((int)(unchecked((uint)DX) << 16 | unchecked((uint)AX))); + int dividend_F000_01B4_F01B4 = unchecked((int)(unchecked((uint)DX) << 0x00000010 | unchecked((uint)AX))); short quotient_F000_01B4_F01B4 = Alu16.Idiv(unchecked((int)dividend_F000_01B4_F01B4), unchecked((short)divisor_F000_01B4_F01B4)); AX = unchecked((ushort)quotient_F000_01B4_F01B4); DX = unchecked((ushort)(dividend_F000_01B4_F01B4 % unchecked((int)divisor_F000_01B4_F01B4))); // F000:01B6 add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:01B9 mov word ptr DS:[0x004C],AX - UInt16[DS, (ushort)0x004C] = AX; + UInt16[DS, 0x004C] = AX; // F000:01BC mov word ptr DS:[0x004E],CX - UInt16[DS, (ushort)0x004E] = CX; + UInt16[DS, 0x004E] = CX; // F000:01C0 mov word ptr DS:[0x0050],DX - UInt16[DS, (ushort)0x0050] = DX; + UInt16[DS, 0x0050] = DX; // F000:01C4 pushf Stack.Push16(FlagRegister16); // F000:01C5 mov DX,0xFFFF - DX = (ushort)0xFFFF; + DX = 0xFFFF; // F000:01C8 mov AX,0xFFFF - AX = (ushort)0xFFFF; + AX = 0xFFFF; // F000:01CB mov word ptr DS:[0x0052],0xFFFF - UInt16[DS, (ushort)0x0052] = (ushort)0xFFFF; + UInt16[DS, 0x0052] = 0xFFFF; // F000:01D1 mov word ptr SS:[BP],4 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0004; + UInt16[SS, (ushort)(BP + 0)] = 4; // F000:01D6 idiv word ptr DS:[0x0052] - short divisor_F000_01D6_F01D6 = unchecked((short)UInt16[DS, (ushort)0x0052]); - int dividend_F000_01D6_F01D6 = unchecked((int)(unchecked((uint)DX) << 16 | unchecked((uint)AX))); + short divisor_F000_01D6_F01D6 = unchecked((short)UInt16[DS, 0x0052]); + int dividend_F000_01D6_F01D6 = unchecked((int)(unchecked((uint)DX) << 0x00000010 | unchecked((uint)AX))); short quotient_F000_01D6_F01D6 = Alu16.Idiv(unchecked((int)dividend_F000_01D6_F01D6), unchecked((short)divisor_F000_01D6_F01D6)); AX = unchecked((ushort)quotient_F000_01D6_F01D6); DX = unchecked((ushort)(dividend_F000_01D6_F01D6 % unchecked((int)divisor_F000_01D6_F01D6))); // F000:01DA add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:01DD mov word ptr DS:[0x0054],AX - UInt16[DS, (ushort)0x0054] = AX; + UInt16[DS, 0x0054] = AX; // F000:01E0 mov word ptr DS:[0x0056],DX - UInt16[DS, (ushort)0x0056] = DX; + UInt16[DS, 0x0056] = DX; // F000:01E4 pushf Stack.Push16(FlagRegister16); // F000:01E5 mov DX,0xFBB4 - DX = (ushort)0xFBB4; + DX = 0xFBB4; // F000:01E8 mov AX,0xC3DA - AX = (ushort)0xC3DA; + AX = 0xC3DA; // F000:01EB mov CX,0xAE8E - CX = (ushort)0xAE8E; + CX = 0xAE8E; // F000:01EE mov word ptr SS:[BP],2 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0002; + UInt16[SS, (ushort)(BP + 0)] = 2; // F000:01F3 idiv CX short divisor_F000_01F3_F01F3 = unchecked((short)CX); - int dividend_F000_01F3_F01F3 = unchecked((int)(unchecked((uint)DX) << 16 | unchecked((uint)AX))); + int dividend_F000_01F3_F01F3 = unchecked((int)(unchecked((uint)DX) << 0x00000010 | unchecked((uint)AX))); short quotient_F000_01F3_F01F3 = Alu16.Idiv(unchecked((int)dividend_F000_01F3_F01F3), unchecked((short)divisor_F000_01F3_F01F3)); AX = unchecked((ushort)quotient_F000_01F3_F01F3); DX = unchecked((ushort)(dividend_F000_01F3_F01F3 % unchecked((int)divisor_F000_01F3_F01F3))); // F000:01F5 add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:01F8 mov word ptr DS:[0x0058],AX - UInt16[DS, (ushort)0x0058] = AX; + UInt16[DS, 0x0058] = AX; // F000:01FB mov word ptr DS:[0x005A],CX - UInt16[DS, (ushort)0x005A] = CX; + UInt16[DS, 0x005A] = CX; // F000:01FF mov word ptr DS:[0x005C],DX - UInt16[DS, (ushort)0x005C] = DX; + UInt16[DS, 0x005C] = DX; // F000:0203 pushf Stack.Push16(FlagRegister16); // F000:0204 mov DX,0x25C9 - DX = (ushort)0x25C9; + DX = 0x25C9; // F000:0207 mov AX,0xF110 - AX = (ushort)0xF110; + AX = 0xF110; // F000:020A mov word ptr SS:[BP],2 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0002; + UInt16[SS, (ushort)(BP + 0)] = 2; // F000:020F idiv AX try { short divisor_F000_020F_F020F = unchecked((short)AX); - int dividend_F000_020F_F020F = unchecked((int)(unchecked((uint)DX) << 16 | unchecked((uint)AX))); + int dividend_F000_020F_F020F = unchecked((int)(unchecked((uint)DX) << 0x00000010 | unchecked((uint)AX))); short quotient_F000_020F_F020F = Alu16.Idiv(unchecked((int)dividend_F000_020F_F020F), unchecked((short)divisor_F000_020F_F020F)); AX = unchecked((ushort)quotient_F000_020F_F020F); DX = unchecked((ushort)(dividend_F000_020F_F020F % unchecked((int)divisor_F000_020F_F020F))); @@ -458,19 +458,19 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_0211_F0211(int loadOffset) { CheckExternalEvents(cs1, 0x0211); // F000:0211 add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:0214 mov word ptr DS:[0x005E],AX - UInt16[DS, (ushort)0x005E] = AX; + UInt16[DS, 0x005E] = AX; // F000:0217 mov word ptr DS:[0x0060],DX - UInt16[DS, (ushort)0x0060] = DX; + UInt16[DS, 0x0060] = DX; // F000:021B pushf Stack.Push16(FlagRegister16); // F000:021C mov AX,0x0014 - AX = (ushort)0x0014; + AX = 0x0014; // F000:021F mov BX,5 - BX = (ushort)0x0005; + BX = 5; // F000:0222 mov word ptr SS:[BP],2 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0002; + UInt16[SS, (ushort)(BP + 0)] = 2; // F000:0227 idiv BL sbyte divisor_F000_0227_F0227 = unchecked((sbyte)BL); short dividend_F000_0227_F0227 = unchecked((short)AX); @@ -478,26 +478,26 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { AL = unchecked((byte)quotient_F000_0227_F0227); AH = unchecked((byte)(dividend_F000_0227_F0227 % unchecked((short)divisor_F000_0227_F0227))); // F000:0229 add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:022C mov word ptr DS:[0x0062],AX - UInt16[DS, (ushort)0x0062] = AX; + UInt16[DS, 0x0062] = AX; // F000:022F mov word ptr DS:[0x0064],BX - UInt16[DS, (ushort)0x0064] = BX; + UInt16[DS, 0x0064] = BX; // F000:0233 mov word ptr DS:[0x0066],DX - UInt16[DS, (ushort)0x0066] = DX; + UInt16[DS, 0x0066] = DX; // F000:0237 pushf Stack.Push16(FlagRegister16); // F000:0238 mov DX,0xA320 - DX = (ushort)0xA320; + DX = 0xA320; // F000:023B mov AX,0xC3DA - AX = (ushort)0xC3DA; + AX = 0xC3DA; // F000:023E mov word ptr DS:[0x0068],0x00FF - UInt16[DS, (ushort)0x0068] = (ushort)0x00FF; + UInt16[DS, 0x0068] = 0x00FF; // F000:0244 mov word ptr SS:[BP],4 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0004; + UInt16[SS, (ushort)(BP + 0)] = 4; // F000:0249 idiv byte ptr DS:[0x0068] try { - sbyte divisor_F000_0249_F0249 = unchecked((sbyte)UInt8[DS, (ushort)0x0068]); + sbyte divisor_F000_0249_F0249 = unchecked((sbyte)UInt8[DS, 0x0068]); short dividend_F000_0249_F0249 = unchecked((short)AX); sbyte quotient_F000_0249_F0249 = Alu8.Idiv(unchecked((short)dividend_F000_0249_F0249), unchecked((sbyte)divisor_F000_0249_F0249)); AL = unchecked((byte)quotient_F000_0249_F0249); @@ -517,19 +517,19 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_024D_F024D(int loadOffset) { CheckExternalEvents(cs1, 0x024D); // F000:024D add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:0250 mov word ptr DS:[0x006A],AX - UInt16[DS, (ushort)0x006A] = AX; + UInt16[DS, 0x006A] = AX; // F000:0253 mov word ptr DS:[0x006C],DX - UInt16[DS, (ushort)0x006C] = DX; + UInt16[DS, 0x006C] = DX; // F000:0257 pushf Stack.Push16(FlagRegister16); // F000:0258 mov AX,0xFFFF - AX = (ushort)0xFFFF; + AX = 0xFFFF; // F000:025B mov DH,1 - DH = (byte)0x01; + DH = 1; // F000:025D mov word ptr SS:[BP],2 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0002; + UInt16[SS, (ushort)(BP + 0)] = 2; // F000:0262 idiv DH sbyte divisor_F000_0262_F0262 = unchecked((sbyte)DH); short dividend_F000_0262_F0262 = unchecked((short)AX); @@ -537,39 +537,39 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { AL = unchecked((byte)quotient_F000_0262_F0262); AH = unchecked((byte)(dividend_F000_0262_F0262 % unchecked((short)divisor_F000_0262_F0262))); // F000:0264 add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:0267 mov word ptr DS:[0x006E],AX - UInt16[DS, (ushort)0x006E] = AX; + UInt16[DS, 0x006E] = AX; // F000:026A mov word ptr DS:[0x0070],DX - UInt16[DS, (ushort)0x0070] = DX; + UInt16[DS, 0x0070] = DX; // F000:026E pushf Stack.Push16(FlagRegister16); // F000:026F mov AX,0xFFFF - AX = (ushort)0xFFFF; + AX = 0xFFFF; // F000:0272 mov word ptr DS:[0x0072],0xFFFF - UInt16[DS, (ushort)0x0072] = (ushort)0xFFFF; + UInt16[DS, 0x0072] = 0xFFFF; // F000:0278 mov word ptr SS:[BP],4 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0004; + UInt16[SS, (ushort)(BP + 0)] = 4; // F000:027D idiv byte ptr DS:[0x0073] - sbyte divisor_F000_027D_F027D = unchecked((sbyte)UInt8[DS, (ushort)0x0073]); + sbyte divisor_F000_027D_F027D = unchecked((sbyte)UInt8[DS, 0x0073]); short dividend_F000_027D_F027D = unchecked((short)AX); sbyte quotient_F000_027D_F027D = Alu8.Idiv(unchecked((short)dividend_F000_027D_F027D), unchecked((sbyte)divisor_F000_027D_F027D)); AL = unchecked((byte)quotient_F000_027D_F027D); AH = unchecked((byte)(dividend_F000_027D_F027D % unchecked((short)divisor_F000_027D_F027D))); // F000:0281 add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:0284 mov word ptr DS:[0x0074],AX - UInt16[DS, (ushort)0x0074] = AX; + UInt16[DS, 0x0074] = AX; // F000:0287 mov word ptr DS:[0x0076],DX - UInt16[DS, (ushort)0x0076] = DX; + UInt16[DS, 0x0076] = DX; // F000:028B pushf Stack.Push16(FlagRegister16); // F000:028C mov AX,0x008A - AX = (ushort)0x008A; + AX = 0x008A; // F000:028F mov CX,0xAE8E - CX = (ushort)0xAE8E; + CX = 0xAE8E; // F000:0292 mov word ptr SS:[BP],2 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0002; + UInt16[SS, (ushort)(BP + 0)] = 2; // F000:0297 idiv CL sbyte divisor_F000_0297_F0297 = unchecked((sbyte)CL); short dividend_F000_0297_F0297 = unchecked((short)AX); @@ -577,19 +577,19 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { AL = unchecked((byte)quotient_F000_0297_F0297); AH = unchecked((byte)(dividend_F000_0297_F0297 % unchecked((short)divisor_F000_0297_F0297))); // F000:0299 add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:029C mov word ptr DS:[0x0078],AX - UInt16[DS, (ushort)0x0078] = AX; + UInt16[DS, 0x0078] = AX; // F000:029F mov word ptr DS:[0x007A],CX - UInt16[DS, (ushort)0x007A] = CX; + UInt16[DS, 0x007A] = CX; // F000:02A3 pushf Stack.Push16(FlagRegister16); // F000:02A4 mov DX,0x0669 - DX = (ushort)0x0669; + DX = 0x0669; // F000:02A7 mov AX,0x89F3 - AX = (ushort)0x89F3; + AX = 0x89F3; // F000:02AA mov word ptr SS:[BP],2 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0002; + UInt16[SS, (ushort)(BP + 0)] = 2; // F000:02AF idiv AL try { sbyte divisor_F000_02AF_F02AF = unchecked((sbyte)AL); @@ -612,23 +612,23 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_02B1_F02B1(int loadOffset) { CheckExternalEvents(cs1, 0x02B1); // F000:02B1 add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:02B4 mov word ptr DS:[0x007C],AX - UInt16[DS, (ushort)0x007C] = AX; + UInt16[DS, 0x007C] = AX; // F000:02B7 mov word ptr DS:[0x007E],DX - UInt16[DS, (ushort)0x007E] = DX; + UInt16[DS, 0x007E] = DX; // F000:02BB pushf Stack.Push16(FlagRegister16); // F000:02BC mov AX,0xFFFF - AX = (ushort)0xFFFF; + AX = 0xFFFF; // F000:02BF mov word ptr SS:[BP],2 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0002; + UInt16[SS, (ushort)(BP + 0)] = 2; // F000:02C4 aam try { - byte v2_F000_02C4_F02C4 = (byte)0x00; + byte v2_F000_02C4_F02C4 = 0; byte v1_F000_02C4_F02C4 = AL; - Alu8.UpdateFlags(unchecked((byte)(v1_F000_02C4_F02C4 >> (byte)0x01))); - if (v2_F000_02C4_F02C4 == (byte)0x00) { + Alu8.UpdateFlags(unchecked((byte)(v1_F000_02C4_F02C4 >> 1))); + if (v2_F000_02C4_F02C4 == 0) { throw new Spice86.Core.Emulator.CPU.Exceptions.CpuDivisionErrorException("Division by zero"); } else { @@ -652,18 +652,18 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_02C6_F02C6(int loadOffset) { CheckExternalEvents(cs1, 0x02C6); // F000:02C6 add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:02C9 mov word ptr DS:[0x0084],AX - UInt16[DS, (ushort)0x0084] = AX; + UInt16[DS, 0x0084] = AX; // F000:02CC pushf Stack.Push16(FlagRegister16); // F000:02CD mov word ptr SS:[BP],2 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0002; + UInt16[SS, (ushort)(BP + 0)] = 2; // F000:02D2 aam - byte v2_F000_02D2_F02D2 = (byte)0x01; + byte v2_F000_02D2_F02D2 = 1; byte v1_F000_02D2_F02D2 = AL; - Alu8.UpdateFlags(unchecked((byte)(v1_F000_02D2_F02D2 >> (byte)0x01))); - if (v2_F000_02D2_F02D2 == (byte)0x00) { + Alu8.UpdateFlags(unchecked((byte)(v1_F000_02D2_F02D2 >> 1))); + if (v2_F000_02D2_F02D2 == 0) { throw new Spice86.Core.Emulator.CPU.Exceptions.CpuDivisionErrorException("Division by zero"); } else { @@ -673,20 +673,20 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { AL = unchecked((byte)result_F000_02D2_F02D2); Alu8.UpdateFlags(unchecked((byte)result_F000_02D2_F02D2)); // F000:02D4 add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:02D7 mov word ptr DS:[0x0086],AX - UInt16[DS, (ushort)0x0086] = AX; + UInt16[DS, 0x0086] = AX; // F000:02DA pushf Stack.Push16(FlagRegister16); // F000:02DB mov AX,0xFFFF - AX = (ushort)0xFFFF; + AX = 0xFFFF; // F000:02DE mov word ptr SS:[BP],2 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0002; + UInt16[SS, (ushort)(BP + 0)] = 2; // F000:02E3 aam - byte v2_F000_02E3_F02E3 = (byte)0x0A; + byte v2_F000_02E3_F02E3 = 0x0A; byte v1_F000_02E3_F02E3 = AL; - Alu8.UpdateFlags(unchecked((byte)(v1_F000_02E3_F02E3 >> (byte)0x01))); - if (v2_F000_02E3_F02E3 == (byte)0x00) { + Alu8.UpdateFlags(unchecked((byte)(v1_F000_02E3_F02E3 >> 1))); + if (v2_F000_02E3_F02E3 == 0) { throw new Spice86.Core.Emulator.CPU.Exceptions.CpuDivisionErrorException("Division by zero"); } else { @@ -696,21 +696,21 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { AL = unchecked((byte)result_F000_02E3_F02E3); Alu8.UpdateFlags(unchecked((byte)result_F000_02E3_F02E3)); // F000:02E5 add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:02E8 mov word ptr DS:[0x0088],AX - UInt16[DS, (ushort)0x0088] = AX; + UInt16[DS, 0x0088] = AX; // F000:02EB pushf Stack.Push16(FlagRegister16); // F000:02EC mov AX,0xFF00 - AX = (ushort)0xFF00; + AX = 0xFF00; // F000:02EF mov word ptr SS:[BP],2 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0002; + UInt16[SS, (ushort)(BP + 0)] = 2; // F000:02F4 aam try { - byte v2_F000_02F4_F02F4 = (byte)0x00; + byte v2_F000_02F4_F02F4 = 0; byte v1_F000_02F4_F02F4 = AL; - Alu8.UpdateFlags(unchecked((byte)(v1_F000_02F4_F02F4 >> (byte)0x01))); - if (v2_F000_02F4_F02F4 == (byte)0x00) { + Alu8.UpdateFlags(unchecked((byte)(v1_F000_02F4_F02F4 >> 1))); + if (v2_F000_02F4_F02F4 == 0) { throw new Spice86.Core.Emulator.CPU.Exceptions.CpuDivisionErrorException("Division by zero"); } else { @@ -734,18 +734,18 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_02F6_F02F6(int loadOffset) { CheckExternalEvents(cs1, 0x02F6); // F000:02F6 add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:02F9 mov word ptr DS:[0x008A],AX - UInt16[DS, (ushort)0x008A] = AX; + UInt16[DS, 0x008A] = AX; // F000:02FC pushf Stack.Push16(FlagRegister16); // F000:02FD mov word ptr SS:[BP],2 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0002; + UInt16[SS, (ushort)(BP + 0)] = 2; // F000:0302 aam - byte v2_F000_0302_F0302 = (byte)0x01; + byte v2_F000_0302_F0302 = 1; byte v1_F000_0302_F0302 = AL; - Alu8.UpdateFlags(unchecked((byte)(v1_F000_0302_F0302 >> (byte)0x01))); - if (v2_F000_0302_F0302 == (byte)0x00) { + Alu8.UpdateFlags(unchecked((byte)(v1_F000_0302_F0302 >> 1))); + if (v2_F000_0302_F0302 == 0) { throw new Spice86.Core.Emulator.CPU.Exceptions.CpuDivisionErrorException("Division by zero"); } else { @@ -755,20 +755,20 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { AL = unchecked((byte)result_F000_0302_F0302); Alu8.UpdateFlags(unchecked((byte)result_F000_0302_F0302)); // F000:0304 add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:0307 mov word ptr DS:[0x008C],AX - UInt16[DS, (ushort)0x008C] = AX; + UInt16[DS, 0x008C] = AX; // F000:030A pushf Stack.Push16(FlagRegister16); // F000:030B mov AX,0x3FFB - AX = (ushort)0x3FFB; + AX = 0x3FFB; // F000:030E mov word ptr SS:[BP],2 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0002; + UInt16[SS, (ushort)(BP + 0)] = 2; // F000:0313 aam - byte v2_F000_0313_F0313 = (byte)0x0A; + byte v2_F000_0313_F0313 = 0x0A; byte v1_F000_0313_F0313 = AL; - Alu8.UpdateFlags(unchecked((byte)(v1_F000_0313_F0313 >> (byte)0x01))); - if (v2_F000_0313_F0313 == (byte)0x00) { + Alu8.UpdateFlags(unchecked((byte)(v1_F000_0313_F0313 >> 1))); + if (v2_F000_0313_F0313 == 0) { throw new Spice86.Core.Emulator.CPU.Exceptions.CpuDivisionErrorException("Division by zero"); } else { @@ -778,9 +778,9 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { AL = unchecked((byte)result_F000_0313_F0313); Alu8.UpdateFlags(unchecked((byte)result_F000_0313_F0313)); // F000:0315 add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:0318 mov word ptr DS:[0x008E],AX - UInt16[DS, (ushort)0x008E] = AX; + UInt16[DS, 0x008E] = AX; // F000:031B pushf Stack.Push16(FlagRegister16); // F000:031C hlt @@ -794,21 +794,21 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:1001 push DI Stack.Push16(DI); // F000:1002 mov AX,word ptr SS:[BP] - AX = UInt16[SS, (ushort)(BP + (sbyte)0)]; + AX = UInt16[SS, (ushort)(BP + 0)]; // F000:1005 mov SI,SP SI = SP; // F000:1007 add SI,4 - SI = Alu16.Add(SI, unchecked((ushort)unchecked((short)(sbyte)4))); + SI = Alu16.Add(SI, 4); // F000:100A mov SI,word ptr DS:[SI] SI = UInt16[DS, SI]; // F000:100C mov word ptr SS:[BP],SI - UInt16[SS, (ushort)(BP + (sbyte)0)] = SI; + UInt16[SS, (ushort)(BP + 0)] = SI; // F000:100F add SI,AX SI = Alu16.Add(SI, AX); // F000:1011 mov DI,SP DI = SP; // F000:1013 add DI,4 - DI = Alu16.Add(DI, unchecked((ushort)unchecked((short)(sbyte)4))); + DI = Alu16.Add(DI, 4); // F000:1016 mov word ptr DS:[DI],SI UInt16[DS, DI] = SI; // F000:1018 pop DI @@ -825,71 +825,71 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov SP,0x00D0 - SP = (ushort)0x00D0; + SP = 0x00D0; // F000:0003 mov word ptr DS:[0],0x1000 - UInt16[DS, (ushort)0x0000] = (ushort)0x1000; + UInt16[DS, 0] = 0x1000; // F000:0009 mov word ptr DS:[2],0xF000 - UInt16[DS, (ushort)0x0002] = (ushort)0xF000; + UInt16[DS, 2] = 0xF000; // F000:000F mov BP,0x00D0 - BP = (ushort)0x00D0; + BP = 0x00D0; // F000:0012 mov DX,0 - DX = (ushort)0x0000; + DX = 0; // F000:0015 mov AX,0x0014 - AX = (ushort)0x0014; + AX = 0x0014; // F000:0018 mov BX,5 - BX = (ushort)0x0005; + BX = 5; // F000:001B mov word ptr SS:[BP],2 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0002; + UInt16[SS, (ushort)(BP + 0)] = 2; // F000:0020 div BX ushort divisor_F000_0020_F0020 = BX; - uint dividend_F000_0020_F0020 = unchecked((uint)(unchecked((uint)DX) << 16 | unchecked((uint)AX))); + uint dividend_F000_0020_F0020 = unchecked((uint)(unchecked((uint)DX) << 0x00000010 | unchecked((uint)AX))); ushort quotient_F000_0020_F0020 = Alu16.Div(unchecked((uint)dividend_F000_0020_F0020), unchecked((ushort)divisor_F000_0020_F0020)); AX = unchecked((ushort)quotient_F000_0020_F0020); DX = unchecked((ushort)(dividend_F000_0020_F0020 % unchecked((uint)divisor_F000_0020_F0020))); // F000:0022 add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:0025 mov word ptr DS:[0x0080],AX - UInt16[DS, (ushort)0x0080] = AX; + UInt16[DS, 0x0080] = AX; // F000:0028 mov word ptr DS:[0x0082],BX - UInt16[DS, (ushort)0x0082] = BX; + UInt16[DS, 0x0082] = BX; // F000:002C mov word ptr DS:[4],DX - UInt16[DS, (ushort)0x0004] = DX; + UInt16[DS, 4] = DX; // F000:0030 pushf Stack.Push16(FlagRegister16); // F000:0031 mov DX,0xA320 - DX = (ushort)0xA320; + DX = 0xA320; // F000:0034 mov AX,0xC3DA - AX = (ushort)0xC3DA; + AX = 0xC3DA; // F000:0037 mov word ptr DS:[6],0xFFFF - UInt16[DS, (ushort)0x0006] = (ushort)0xFFFF; + UInt16[DS, 6] = 0xFFFF; // F000:003D mov word ptr SS:[BP],4 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0004; + UInt16[SS, (ushort)(BP + 0)] = 4; // F000:0042 div word ptr DS:[6] - ushort divisor_F000_0042_F0042 = UInt16[DS, (ushort)0x0006]; - uint dividend_F000_0042_F0042 = unchecked((uint)(unchecked((uint)DX) << 16 | unchecked((uint)AX))); + ushort divisor_F000_0042_F0042 = UInt16[DS, 6]; + uint dividend_F000_0042_F0042 = unchecked((uint)(unchecked((uint)DX) << 0x00000010 | unchecked((uint)AX))); ushort quotient_F000_0042_F0042 = Alu16.Div(unchecked((uint)dividend_F000_0042_F0042), unchecked((ushort)divisor_F000_0042_F0042)); AX = unchecked((ushort)quotient_F000_0042_F0042); DX = unchecked((ushort)(dividend_F000_0042_F0042 % unchecked((uint)divisor_F000_0042_F0042))); // F000:0046 add BP,2 - BP = Alu16.Add(BP, unchecked((ushort)unchecked((short)(sbyte)2))); + BP = Alu16.Add(BP, 2); // F000:0049 mov word ptr DS:[8],AX - UInt16[DS, (ushort)0x0008] = AX; + UInt16[DS, 8] = AX; // F000:004C mov word ptr DS:[0x000A],DX - UInt16[DS, (ushort)0x000A] = DX; + UInt16[DS, 0x000A] = DX; // F000:0050 pushf Stack.Push16(FlagRegister16); // F000:0051 mov DX,0xFFFF - DX = (ushort)0xFFFF; + DX = 0xFFFF; // F000:0054 mov AX,0xFFFF - AX = (ushort)0xFFFF; + AX = 0xFFFF; // F000:0057 mov CX,1 - CX = (ushort)0x0001; + CX = 1; // F000:005A mov word ptr SS:[BP],2 - UInt16[SS, (ushort)(BP + (sbyte)0)] = (ushort)0x0002; + UInt16[SS, (ushort)(BP + 0)] = 2; // F000:005F div CX try { ushort divisor_F000_005F_F005F = CX; - uint dividend_F000_005F_F005F = unchecked((uint)(unchecked((uint)DX) << 16 | unchecked((uint)AX))); + uint dividend_F000_005F_F005F = unchecked((uint)(unchecked((uint)DX) << 0x00000010 | unchecked((uint)AX))); ushort quotient_F000_005F_F005F = Alu16.Div(unchecked((uint)dividend_F000_005F_F005F), unchecked((ushort)divisor_F000_005F_F005F)); AX = unchecked((ushort)quotient_F000_005F_F005F); DX = unchecked((ushort)(dividend_F000_005F_F005F % unchecked((uint)divisor_F000_005F_F005F))); diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/div2.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/div2.spec.cs.txt index 710ec80694..bc3662301d 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/div2.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/div2.spec.cs.txt @@ -40,29 +40,29 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { SS = AX; State.InterruptShadowing = true; // F000:0007 mov SP,0xFFFE - SP = (ushort)0xFFFE; + SP = 0xFFFE; // F000:000A mov BP,0x0100 - BP = (ushort)0x0100; + BP = 0x0100; // F000:000D mov word ptr SS:[BP-14],0xE4C3 - UInt16[SS, (ushort)(BP + (sbyte)-14)] = (ushort)0xE4C3; + UInt16[SS, (ushort)(BP + -0x0E)] = 0xE4C3; // F000:0012 mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:0015 mov DX,0x8000 - DX = (ushort)0x8000; + DX = 0x8000; // F000:0018 div word ptr SS:[BP-14] - ushort divisor_F000_0018_F0018 = UInt16[SS, (ushort)(BP + (sbyte)-14)]; - uint dividend_F000_0018_F0018 = unchecked((uint)(unchecked((uint)DX) << 16 | unchecked((uint)AX))); + ushort divisor_F000_0018_F0018 = UInt16[SS, (ushort)(BP + -0x0E)]; + uint dividend_F000_0018_F0018 = unchecked((uint)(unchecked((uint)DX) << 0x00000010 | unchecked((uint)AX))); ushort quotient_F000_0018_F0018 = Alu16.Div(unchecked((uint)dividend_F000_0018_F0018), unchecked((ushort)divisor_F000_0018_F0018)); AX = unchecked((ushort)quotient_F000_0018_F0018); DX = unchecked((ushort)(dividend_F000_0018_F0018 % unchecked((uint)divisor_F000_0018_F0018))); // F000:001B mov word ptr DS:[0],AX - UInt16[DS, (ushort)0x0000] = AX; + UInt16[DS, 0] = AX; // F000:001E mov word ptr DS:[2],DX - UInt16[DS, (ushort)0x0002] = DX; + UInt16[DS, 2] = DX; // F000:0022 mov CX,word ptr SS:[BP-14] - CX = UInt16[SS, (ushort)(BP + (sbyte)-14)]; + CX = UInt16[SS, (ushort)(BP + -0x0E)]; // F000:0025 mov word ptr DS:[4],CX - UInt16[DS, (ushort)0x0004] = CX; + UInt16[DS, 4] = CX; // F000:0029 hlt return Hlt(); label_F000_FFF0_FFFF0_0: diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/divfaultloop.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/divfaultloop.spec.cs.txt index a53439dcb4..066efc9c52 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/divfaultloop.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/divfaultloop.spec.cs.txt @@ -30,13 +30,13 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_0020_F0020(int loadOffset) { CheckExternalEvents(cs1, 0x0020); // F000:0020 mov AX,0x000A - AX = (ushort)0x000A; + AX = 0x000A; // F000:0023 mov BX,word ptr CS:[0x0102] - BX = UInt16[CS, (ushort)0x0102]; + BX = UInt16[CS, 0x0102]; // F000:0028 div BX try { ushort divisor_F000_0028_F0028 = BX; - uint dividend_F000_0028_F0028 = unchecked((uint)(unchecked((uint)DX) << 16 | unchecked((uint)AX))); + uint dividend_F000_0028_F0028 = unchecked((uint)(unchecked((uint)DX) << 0x00000010 | unchecked((uint)AX))); ushort quotient_F000_0028_F0028 = Alu16.Div(unchecked((uint)dividend_F000_0028_F0028), unchecked((ushort)divisor_F000_0028_F0028)); AX = unchecked((ushort)quotient_F000_0028_F0028); DX = unchecked((ushort)(dividend_F000_0028_F0028 % unchecked((uint)divisor_F000_0028_F0028))); @@ -51,11 +51,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x002A); // F000:002A mov BX,word ptr CS:[0x0100] - BX = UInt16[CS, (ushort)0x0100]; + BX = UInt16[CS, 0x0100]; // F000:002F mov word ptr DS:[0],BX - UInt16[DS, (ushort)0x0000] = BX; + UInt16[DS, 0] = BX; // F000:0033 mov word ptr DS:[2],AX - UInt16[DS, (ushort)0x0002] = AX; + UInt16[DS, 2] = AX; // F000:0036 hlt return Hlt(); } @@ -69,24 +69,24 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:003A push BX Stack.Push16(BX); // F000:003B mov BX,word ptr CS:[0x0100] - BX = UInt16[CS, (ushort)0x0100]; + BX = UInt16[CS, 0x0100]; // F000:0040 inc BX BX = Alu16.Inc(BX); // F000:0041 mov word ptr CS:[0x0100],BX - UInt16[CS, (ushort)0x0100] = BX; + UInt16[CS, 0x0100] = BX; // F000:0046 cmp BX,3 - Alu16.Sub(BX, unchecked((ushort)unchecked((short)(sbyte)3))); + Alu16.Sub(BX, 3); // F000:0049 jne short 0x0052 if (!ZeroFlag) { goto label_F000_0052_F0052_36; } CheckExternalEvents(cs1, 0x004B); // F000:004B mov word ptr CS:[0x0102],5 - UInt16[CS, (ushort)0x0102] = (ushort)0x0005; + UInt16[CS, 0x0102] = 5; label_F000_0052_F0052_36: CheckExternalEvents(cs1, 0x0052); // F000:0052 mov word ptr SS:[BP+2],0x0020 - UInt16[SS, (ushort)(BP + (sbyte)2)] = (ushort)0x0020; + UInt16[SS, (ushort)(BP + 2)] = 0x0020; // F000:0057 pop BX BX = Stack.Pop16(); // F000:0058 pop BP @@ -101,20 +101,20 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:0003 mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:0005 mov SP,0x0200 - SP = (ushort)0x0200; + SP = 0x0200; // F000:0008 mov word ptr DS:[0],0x0037 - UInt16[DS, (ushort)0x0000] = (ushort)0x0037; + UInt16[DS, 0] = 0x0037; // F000:000E mov word ptr DS:[2],CS - UInt16[DS, (ushort)0x0002] = CS; + UInt16[DS, 2] = CS; // F000:0012 mov word ptr CS:[0x0100],0 - UInt16[CS, (ushort)0x0100] = (ushort)0x0000; + UInt16[CS, 0x0100] = 0; // F000:0019 mov word ptr CS:[0x0102],0 - UInt16[CS, (ushort)0x0102] = (ushort)0x0000; + UInt16[CS, 0x0102] = 0; return unknown_F000_0020_F0020(0x0000); label_F000_FFF0_FFFF0_0: CheckExternalEvents(cs1, 0xFFF0); diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/externalint.pit.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/externalint.pit.spec.cs.txt index 4ce02e7b26..e1befaf51b 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/externalint.pit.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/externalint.pit.spec.cs.txt @@ -31,11 +31,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:003F push AX Stack.Push16(AX); // F000:0040 mov DX,1 - DX = (ushort)0x0001; + DX = 1; // F000:0043 mov AL,0x20 - AL = (byte)0x20; + AL = 0x20; // F000:0045 out 0x20,AL - Machine.IoPortDispatcher.WriteByte(unchecked((ushort)(byte)0x20), AL); + Machine.IoPortDispatcher.WriteByte(0x0020, AL); // F000:0047 pop AX AX = Stack.Pop16(); // F000:0048 iret @@ -48,34 +48,34 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:0003 mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:0005 mov SP,2 - SP = (ushort)0x0002; + SP = 2; // F000:0008 mov DX,0 - DX = (ushort)0x0000; + DX = 0; // F000:000B mov word ptr DS:[0x0020],0x003F - UInt16[DS, (ushort)0x0020] = (ushort)0x003F; + UInt16[DS, 0x0020] = 0x003F; // F000:0011 mov word ptr DS:[0x0022],CS - UInt16[DS, (ushort)0x0022] = CS; + UInt16[DS, 0x0022] = CS; // F000:0015 mov AL,0x36 - AL = (byte)0x36; + AL = 0x36; // F000:0017 out 0x43,AL - Machine.IoPortDispatcher.WriteByte(unchecked((ushort)(byte)0x43), AL); + Machine.IoPortDispatcher.WriteByte(0x0043, AL); // F000:0019 mov AL,0x51 - AL = (byte)0x51; + AL = 0x51; // F000:001B out 0x40,AL - Machine.IoPortDispatcher.WriteByte(unchecked((ushort)(byte)0x40), AL); + Machine.IoPortDispatcher.WriteByte(0x0040, AL); // F000:001D mov AL,0x22 - AL = (byte)0x22; + AL = 0x22; // F000:001F out 0x40,AL - Machine.IoPortDispatcher.WriteByte(unchecked((ushort)(byte)0x40), AL); + Machine.IoPortDispatcher.WriteByte(0x0040, AL); // F000:0021 mov AL,0 - AL = (byte)0x00; + AL = 0; // F000:0023 out 0x21,AL - Machine.IoPortDispatcher.WriteByte(unchecked((ushort)(byte)0x21), AL); + Machine.IoPortDispatcher.WriteByte(0x0021, AL); // F000:0025 sti if (!InterruptFlag) { State.InterruptShadowing = true; @@ -85,7 +85,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { InterruptFlag = true; CheckExternalEvents(cs1, 0x0026); // F000:0026 mov ECX,0x00FFFFFF - ECX = 0x00FFFFFFu; + ECX = 0x00FFFFFF; label_F000_002C_F002C_34: CheckExternalEvents(cs1, 0x002C); // F000:002C inc AX @@ -95,19 +95,19 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:002F shr BX,1 BX = Alu16.Shr(BX, 1); // F000:0031 loop 0x002C - CX = unchecked((ushort)(CX - (ushort)0x0001)); - if (CX != (ushort)0x0000) { + CX = unchecked((ushort)(CX - 1)); + if (CX != 0) { goto label_F000_002C_F002C_34; } CheckExternalEvents(cs1, 0x0033); // F000:0033 cmp DX,0 - Alu16.Sub(DX, (ushort)0x0000); + Alu16.Sub(DX, 0); // F000:0037 setne AL if (!ZeroFlag) { - AL = (byte)0x01; + AL = 1; } else { - AL = (byte)0x00; + AL = 0; } // F000:003A movsz AX,AL AX = unchecked((ushort)AL); diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/intchain.ivt.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/intchain.ivt.spec.cs.txt index 78d03dc3b2..f8a85f4ea7 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/intchain.ivt.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/intchain.ivt.spec.cs.txt @@ -43,7 +43,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_016D_0100_017D0(int loadOffset) { CheckExternalEvents(cs1, 0x0100); // 016D:0100 int 8 - InterruptCall(cs1, 0x0102, unchecked((byte)((byte)0x08))); + InterruptCall(cs1, 0x0102, 8); CheckExternalEvents(cs1, 0x0102); // 016D:0102 hlt return Hlt(); @@ -58,13 +58,13 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_0006_F0006(int loadOffset) { CheckExternalEvents(cs2, 0x0006); // F000:0006 callback 8 - Callback(unchecked((ushort)((ushort)0x0008))); + Callback(8); CheckExternalEvents(cs2, 0x000A); // F000:000A int 0x1C - InterruptCall(cs2, 0x000C, unchecked((byte)((byte)0x1C))); + InterruptCall(cs2, 0x000C, 0x1C); CheckExternalEvents(cs2, 0x000C); // F000:000C callback 0x0100 - Callback(unchecked((ushort)((ushort)0x0100))); + Callback(0x0100); CheckExternalEvents(cs2, 0x0010); // F000:0010 iret return InterruptRet(); @@ -74,7 +74,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CheckExternalEvents(cs2, 0x0011); VerifySpeculativeEntryOrFail(cs2, 0x0011, [(byte)0xFE, (byte)0x38, (byte)0x09, (byte)0x00]); // F000:0011 callback 9 - Callback(unchecked((ushort)((ushort)0x0009))); + Callback(9); CheckExternalEvents(cs2, 0x0015); VerifySpeculativeEntryOrFail(cs2, 0x0015, [(byte)0xCF]); // F000:0015 iret @@ -85,7 +85,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CheckExternalEvents(cs2, 0x0057); VerifySpeculativeEntryOrFail(cs2, 0x0057, [(byte)0xFE, (byte)0x38, (byte)0x70, (byte)0x00]); // F000:0057 callback 0x0070 - Callback(unchecked((ushort)((ushort)0x0070))); + Callback(0x0070); CheckExternalEvents(cs2, 0x005B); VerifySpeculativeEntryOrFail(cs2, 0x005B, [(byte)0xCF]); // F000:005B iret @@ -100,7 +100,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CheckExternalEvents(cs2, 0x0062); VerifySpeculativeEntryOrFail(cs2, 0x0062, [(byte)0xFE, (byte)0x38, (byte)0x74, (byte)0x00]); // F000:0062 callback 0x0074 - Callback(unchecked((ushort)((ushort)0x0074))); + Callback(0x0074); CheckExternalEvents(cs2, 0x0066); VerifySpeculativeEntryOrFail(cs2, 0x0066, [(byte)0xCF]); // F000:0066 iret @@ -111,7 +111,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CheckExternalEvents(cs2, 0x0067); VerifySpeculativeEntryOrFail(cs2, 0x0067, [(byte)0xFE, (byte)0x38, (byte)0x03, (byte)0x01]); // F000:0067 callback 0x0103 - Callback(unchecked((ushort)((ushort)0x0103))); + Callback(0x0103); CheckExternalEvents(cs2, 0x006B); VerifySpeculativeEntryOrFail(cs2, 0x006B, [(byte)0xCF]); // F000:006B iret @@ -122,7 +122,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CheckExternalEvents(cs2, 0x006C); VerifySpeculativeEntryOrFail(cs2, 0x006C, [(byte)0xFE, (byte)0x38, (byte)0x04, (byte)0x01]); // F000:006C callback 0x0104 - Callback(unchecked((ushort)((ushort)0x0104))); + Callback(0x0104); CheckExternalEvents(cs2, 0x0070); VerifySpeculativeEntryOrFail(cs2, 0x0070, [(byte)0xCF]); // F000:0070 iret @@ -133,7 +133,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CheckExternalEvents(cs2, 0x0071); VerifySpeculativeEntryOrFail(cs2, 0x0071, [(byte)0xFE, (byte)0x38, (byte)0x05, (byte)0x01]); // F000:0071 callback 0x0105 - Callback(unchecked((ushort)((ushort)0x0105))); + Callback(0x0105); CheckExternalEvents(cs2, 0x0075); VerifySpeculativeEntryOrFail(cs2, 0x0075, [(byte)0xCF]); // F000:0075 iret @@ -144,7 +144,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CheckExternalEvents(cs2, 0x0076); VerifySpeculativeEntryOrFail(cs2, 0x0076, [(byte)0xFE, (byte)0x38, (byte)0x06, (byte)0x01]); // F000:0076 callback 0x0106 - Callback(unchecked((ushort)((ushort)0x0106))); + Callback(0x0106); CheckExternalEvents(cs2, 0x007A); VerifySpeculativeEntryOrFail(cs2, 0x007A, [(byte)0xCF]); // F000:007A iret @@ -155,7 +155,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CheckExternalEvents(cs2, 0x007B); VerifySpeculativeEntryOrFail(cs2, 0x007B, [(byte)0xFE, (byte)0x38, (byte)0x07, (byte)0x01]); // F000:007B callback 0x0107 - Callback(unchecked((ushort)((ushort)0x0107))); + Callback(0x0107); CheckExternalEvents(cs2, 0x007F); VerifySpeculativeEntryOrFail(cs2, 0x007F, [(byte)0xCF]); // F000:007F iret @@ -166,7 +166,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CheckExternalEvents(cs2, 0x0080); VerifySpeculativeEntryOrFail(cs2, 0x0080, [(byte)0xFE, (byte)0x38, (byte)0x08, (byte)0x01]); // F000:0080 callback 0x0108 - Callback(unchecked((ushort)((ushort)0x0108))); + Callback(0x0108); CheckExternalEvents(cs2, 0x0084); VerifySpeculativeEntryOrFail(cs2, 0x0084, [(byte)0xCF]); // F000:0084 iret @@ -177,14 +177,14 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CheckExternalEvents(cs2, 0x00E2); VerifySpeculativeEntryOrFail(cs2, 0x00E2, [(byte)0xCB]); // F000:00E2 ret far - return FarRet((ushort)0x0000); + return FarRet(0); } public virtual Action unknown_F000_00E3_F00E3(int loadOffset) { CheckExternalEvents(cs2, 0x00E3); VerifySpeculativeEntryOrFail(cs2, 0x00E3, [(byte)0xFE, (byte)0x38, (byte)0x0B, (byte)0x01]); // F000:00E3 callback 0x010B - Callback(unchecked((ushort)((ushort)0x010B))); + Callback(0x010B); CheckExternalEvents(cs2, 0x00E7); VerifySpeculativeEntryOrFail(cs2, 0x00E7, [(byte)0x9A, (byte)0xE2, (byte)0x00, (byte)0x00, (byte)0xF0]); // F000:00E7 call far F000:00E2 @@ -192,11 +192,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CheckExternalEvents(cs2, 0x00EC); VerifySpeculativeEntryOrFail(cs2, 0x00EC, [(byte)0xFE, (byte)0x38, (byte)0x0C, (byte)0x01]); // F000:00EC callback 0x010C - Callback(unchecked((ushort)((ushort)0x010C))); + Callback(0x010C); CheckExternalEvents(cs2, 0x00F0); VerifySpeculativeEntryOrFail(cs2, 0x00F0, [(byte)0xCB]); // F000:00F0 ret far - return FarRet((ushort)0x0000); + return FarRet(0); } } diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/interrupt.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/interrupt.spec.cs.txt index c6cff60f4b..b2fcd38930 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/interrupt.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/interrupt.spec.cs.txt @@ -34,7 +34,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_E342_EBE0_F2000(int loadOffset) { CheckExternalEvents(cs1, 0xEBE0); // E342:EBE0 mov byte ptr DS:[1],1 - UInt8[DS, (ushort)0x0001] = (byte)0x01; + UInt8[DS, 1] = 1; // E342:EBE5 pushf Stack.Push16(FlagRegister16); // E342:EBE6 pop AX @@ -48,11 +48,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_3001_F3001(int loadOffset) { CheckExternalEvents(cs2, 0x3001); // F000:3001 mov byte ptr DS:[5],5 - UInt8[DS, (ushort)0x0005] = (byte)0x05; + UInt8[DS, 5] = 5; // F000:3006 pop CX CX = Stack.Pop16(); // F000:3007 mov CX,0x4002 - CX = (ushort)0x4002; + CX = 0x4002; // F000:300A push CX Stack.Push16(CX); // F000:300B iret @@ -62,9 +62,9 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_4002_F4002(int loadOffset) { CheckExternalEvents(cs2, 0x4002); // F000:4002 mov byte ptr DS:[6],6 - UInt8[DS, (ushort)0x0006] = (byte)0x06; + UInt8[DS, 6] = 6; // F000:4007 mov DX,0x04FF - DX = (ushort)0x04FF; + DX = 0x04FF; // F000:400A push DX Stack.Push16(DX); CheckExternalEvents(cs2, 0x400B); @@ -72,10 +72,10 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { FlagRegister16 = Stack.Pop16(); CheckExternalEvents(cs2, 0x400C); // F000:400C mov word ptr DS:[0x0010],0x5000 - UInt16[DS, (ushort)0x0010] = (ushort)0x5000; + UInt16[DS, 0x0010] = 0x5000; // F000:4012 into if (OverflowFlag) { - InterruptCall(cs2, 0x4013, unchecked((byte)((byte)0x04))); + InterruptCall(cs2, 0x4013, 4); throw FailAsUntested("Call at F000:4012 returned to F000:4013, but no continuation was observed during discovery."); } else { @@ -87,15 +87,15 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_4013_F4013(int loadOffset) { CheckExternalEvents(cs2, 0x4013); // F000:4013 mov word ptr DS:[8],AX - UInt16[DS, (ushort)0x0008] = AX; + UInt16[DS, 8] = AX; // F000:4016 mov word ptr DS:[0x000A],BX - UInt16[DS, (ushort)0x000A] = BX; + UInt16[DS, 0x000A] = BX; // F000:401A mov word ptr DS:[0x000C],CX - UInt16[DS, (ushort)0x000C] = CX; + UInt16[DS, 0x000C] = CX; // F000:401E mov word ptr DS:[0x000E],DX - UInt16[DS, (ushort)0x000E] = DX; + UInt16[DS, 0x000E] = DX; // F000:4022 mov word ptr DS:[0x0010],SP - UInt16[DS, (ushort)0x0010] = SP; + UInt16[DS, 0x0010] = SP; // F000:4026 hlt return Hlt(); } @@ -106,19 +106,19 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs2, 0x0000); // F000:0000 mov DX,0 - DX = (ushort)0x0000; + DX = 0; // F000:0003 mov DS,DX DS = DX; // F000:0005 mov SP,0x1000 - SP = (ushort)0x1000; + SP = 0x1000; // F000:0008 mov SP,SS SP = SS; // F000:000A mov word ptr DS:[0x0034],0xEBE0 - UInt16[DS, (ushort)0x0034] = (ushort)0xEBE0; + UInt16[DS, 0x0034] = 0xEBE0; // F000:0010 mov word ptr DS:[0x0036],0xE342 - UInt16[DS, (ushort)0x0036] = (ushort)0xE342; + UInt16[DS, 0x0036] = 0xE342; // F000:0016 mov AX,0x0EFF - AX = (ushort)0x0EFF; + AX = 0x0EFF; // F000:0019 push AX Stack.Push16(AX); CheckExternalEvents(cs2, 0x001A); @@ -126,12 +126,12 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { FlagRegister16 = Stack.Pop16(); CheckExternalEvents(cs2, 0x001B); // F000:001B mov byte ptr DS:[0],0 - UInt8[DS, (ushort)0x0000] = (byte)0x00; + UInt8[DS, 0] = 0; // F000:0020 int 0x0D - InterruptCall(cs2, 0x0022, unchecked((byte)((byte)0x0D))); + InterruptCall(cs2, 0x0022, 0x0D); CheckExternalEvents(cs2, 0x0022); // F000:0022 mov byte ptr DS:[2],2 - UInt8[DS, (ushort)0x0002] = (byte)0x02; + UInt8[DS, 2] = 2; // F000:0027 jmp near AX switch ((ushort)(AX)) { case 0x0CD7: @@ -141,27 +141,27 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs2, 0x0CD7); // F000:0CD7 mov byte ptr DS:[3],3 - UInt8[DS, (ushort)0x0003] = (byte)0x03; + UInt8[DS, 3] = 3; // F000:0CDC pushf Stack.Push16(FlagRegister16); // F000:0CDD pop BX BX = Stack.Pop16(); // F000:0CDE mov word ptr DS:[0x000C],0xEBE0 - UInt16[DS, (ushort)0x000C] = (ushort)0xEBE0; + UInt16[DS, 0x000C] = 0xEBE0; // F000:0CE4 mov word ptr DS:[0x000E],0xE342 - UInt16[DS, (ushort)0x000E] = (ushort)0xE342; + UInt16[DS, 0x000E] = 0xE342; // F000:0CEA int 3 - InterruptCall(cs2, 0x0CEC, unchecked((byte)((byte)0x03))); + InterruptCall(cs2, 0x0CEC, 3); CheckExternalEvents(cs2, 0x0CEC); // F000:0CEC mov byte ptr DS:[4],4 - UInt8[DS, (ushort)0x0004] = (byte)0x04; + UInt8[DS, 4] = 4; // F000:0CF1 mov word ptr DS:[0x0010],0x3001 - UInt16[DS, (ushort)0x0010] = (ushort)0x3001; + UInt16[DS, 0x0010] = 0x3001; // F000:0CF7 mov word ptr DS:[0x0012],0xF000 - UInt16[DS, (ushort)0x0012] = (ushort)0xF000; + UInt16[DS, 0x0012] = 0xF000; // F000:0CFD into if (OverflowFlag) { - InterruptCall(cs2, 0x0CFE, unchecked((byte)((byte)0x04))); + InterruptCall(cs2, 0x0CFE, 4); return unknown_F000_4002_F4002(0x0000); } else { diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/jmpmov.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/jmpmov.spec.cs.txt index 818a617925..db6b3b96ba 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/jmpmov.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/jmpmov.spec.cs.txt @@ -35,11 +35,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:0000 jmp short 0x000E CheckExternalEvents(cs2, 0x000E); // F000:000E mov BX,0xF000 - BX = (ushort)0xF000; + BX = 0xF000; // F000:0011 mov DS,BX DS = BX; // F000:0013 mov AX,word ptr DS:[0xFFF2] - AX = UInt16[DS, (ushort)0xFFF2]; + AX = UInt16[DS, 0xFFF2]; // F000:0016 jmp near AX switch ((ushort)(AX)) { case 0x1290: @@ -51,69 +51,69 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:1290 jmp far E342:EBE0 CheckExternalEvents(cs1, 0xEBE0); // E342:EBE0 mov BX,0x1000 - BX = (ushort)0x1000; + BX = 0x1000; // E342:EBE3 mov DS,BX DS = BX; // E342:EBE5 mov AH,0xFB - AH = (byte)0xFB; + AH = 0xFB; // E342:EBE7 mov AL,0xE1 - AL = (byte)0xE1; + AL = 0xE1; // E342:EBE9 mov word ptr DS:[0x2501],AX - UInt16[DS, (ushort)0x2501] = AX; + UInt16[DS, 0x2501] = AX; // E342:EBEC mov word ptr DS:[0x2600],0x1001 - UInt16[DS, (ushort)0x2600] = (ushort)0x1001; + UInt16[DS, 0x2600] = 0x1001; // E342:EBF2 mov SS,word ptr DS:[0x2600] - SS = UInt16[DS, (ushort)0x2600]; + SS = UInt16[DS, 0x2600]; State.InterruptShadowing = true; // E342:EBF6 mov word ptr DS:[0x2601],SS - UInt16[DS, (ushort)0x2601] = SS; + UInt16[DS, 0x2601] = SS; // E342:EBFA mov DL,byte ptr DS:[0x2601] - DL = UInt8[DS, (ushort)0x2601]; + DL = UInt8[DS, 0x2601]; // E342:EBFE mov DH,0 - DH = (byte)0x00; + DH = 0; // E342:EC00 mov DI,DX DI = DX; // E342:EC02 mov BP,0x2506 - BP = (ushort)0x2506; + BP = 0x2506; // E342:EC05 jmp near word ptr SS:[BP+DI-22] - switch ((ushort)(UInt16[SS, (ushort)(BP + DI + (sbyte)-22)])) { + switch ((ushort)(UInt16[SS, (ushort)(BP + DI + -0x16)])) { case 0xFBE1: break; default: - throw FailAsUntested($"Unknown near jump target 0x{((ushort)(UInt16[SS, (ushort)(BP + DI + (sbyte)-22)])):X4} at E342:EC05"); + throw FailAsUntested($"Unknown near jump target 0x{((ushort)(UInt16[SS, (ushort)(BP + DI + -0x16)])):X4} at E342:EC05"); } CheckExternalEvents(cs1, 0xFBE1); // E342:FBE1 mov DX,0xF100 - DX = (ushort)0xF100; + DX = 0xF100; // E342:FBE4 mov AX,0x2536 - AX = (ushort)0x2536; + AX = 0x2536; // E342:FBE7 out DX,AX Machine.IoPortDispatcher.WriteWord(DX, AX); // E342:FBE8 mov AX,0x4001 - AX = (ushort)0x4001; + AX = 0x4001; // E342:FBEC mov BX,0x2501 - BX = (ushort)0x2501; + BX = 0x2501; // E342:FBEF mov word ptr DS:[BX],AX UInt16[DS, BX] = AX; // E342:FBF1 mov DI,2 - DI = (ushort)0x0002; + DI = 2; // E342:FBF4 mov byte ptr DS:[BX+DI],0 - UInt8[DS, (ushort)(BX + DI)] = (byte)0x00; + UInt8[DS, (ushort)(BX + DI)] = 0; // E342:FBF7 mov CH,4 - CH = (byte)0x04; + CH = 4; // E342:FBF9 mov CL,CH CL = CH; // E342:FBFB mov CH,0 - CH = (byte)0x00; + CH = 0; // E342:FBFD mov SI,CX SI = CX; // E342:FBFF mov byte ptr DS:[BX+SI-1],0xF0 - UInt8[DS, (ushort)(BX + SI + (sbyte)-1)] = (byte)0xF0; + UInt8[DS, (ushort)(BX + SI + -1)] = 0xF0; // E342:FC03 mov SI,3 - SI = (ushort)0x0003; + SI = 3; // E342:FC06 jmp far dword ptr SS:[BP+SI-24] - ushort targetSegment_58 = unchecked((ushort)(UInt16[SS, (ushort)(BP + SI + (sbyte)-24 + (ushort)0x0002)])); - ushort targetOffset_58 = unchecked((ushort)(UInt16[SS, (ushort)(BP + SI + (sbyte)-24)])); + ushort targetSegment_58 = unchecked((ushort)(UInt16[SS, (ushort)(BP + SI + -0x18 + 2)])); + ushort targetOffset_58 = unchecked((ushort)(UInt16[SS, (ushort)(BP + SI + -0x18)])); if (targetSegment_58 == cs2 && targetOffset_58 == 0x4001) { goto label_F000_4001_F4001_73; } @@ -121,13 +121,13 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_4001_F4001_73: CheckExternalEvents(cs2, 0x4001); // F000:4001 mov AX,word ptr DS:[BX+SI-3] - AX = UInt16[DS, (ushort)(BX + SI + (sbyte)-3)]; + AX = UInt16[DS, (ushort)(BX + SI + -3)]; // F000:4004 mov DX,0 - DX = (ushort)0x0000; + DX = 0; // F000:4007 mov DS,DX DS = DX; // F000:4009 mov word ptr DS:[0],AX - UInt16[DS, (ushort)0x0000] = AX; + UInt16[DS, 0] = AX; // F000:400C hlt return Hlt(); label_F000_FFF0_FFFF0_0: diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/jump1.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/jump1.spec.cs.txt index 7f262fc2ed..b89b597373 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/jump1.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/jump1.spec.cs.txt @@ -31,11 +31,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov CX,0 - CX = (ushort)0x0000; + CX = 0; // F000:0003 mov BX,0x0040 - BX = (ushort)0x0040; + BX = 0x0040; // F000:0006 mov SP,0x1000 - SP = (ushort)0x1000; + SP = 0x1000; // F000:0009 mov SS,SP SS = SP; State.InterruptShadowing = true; @@ -158,7 +158,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0039_F0039_88: CheckExternalEvents(cs1, 0x0039); // F000:0039 mov DX,0x08C0 - DX = (ushort)0x08C0; + DX = 0x08C0; // F000:003C push DX Stack.Push16(DX); CheckExternalEvents(cs1, 0x003D); @@ -171,7 +171,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0040); // F000:0040 mov DX,0x0880 - DX = (ushort)0x0880; + DX = 0x0880; // F000:0043 push DX Stack.Push16(DX); CheckExternalEvents(cs1, 0x0044); @@ -190,7 +190,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0049_F0049_112: CheckExternalEvents(cs1, 0x0049); // F000:0049 mov DX,0x0080 - DX = (ushort)0x0080; + DX = 0x0080; // F000:004C push DX Stack.Push16(DX); CheckExternalEvents(cs1, 0x004D); @@ -225,7 +225,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0058); // F000:0058 mov DX,0x0800 - DX = (ushort)0x0800; + DX = 0x0800; // F000:005B push DX Stack.Push16(DX); CheckExternalEvents(cs1, 0x005C); @@ -277,7 +277,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x006D); // F000:006D mov DX,0x0CBF - DX = (ushort)0x0CBF; + DX = 0x0CBF; // F000:0070 push DX Stack.Push16(DX); CheckExternalEvents(cs1, 0x0071); @@ -296,7 +296,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0077_F0077_188: CheckExternalEvents(cs1, 0x0077); // F000:0077 mov DX,0x0800 - DX = (ushort)0x0800; + DX = 0x0800; // F000:007A push DX Stack.Push16(DX); CheckExternalEvents(cs1, 0x007B); @@ -309,7 +309,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x007E); // F000:007E mov DX,0x06FF - DX = (ushort)0x06FF; + DX = 0x06FF; // F000:0081 push DX Stack.Push16(DX); CheckExternalEvents(cs1, 0x0082); @@ -328,7 +328,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0088_F0088_212: CheckExternalEvents(cs1, 0x0088); // F000:0088 mov DX,4 - DX = (ushort)0x0004; + DX = 4; // F000:008B push DX Stack.Push16(DX); CheckExternalEvents(cs1, 0x008C); @@ -358,7 +358,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0096_F0096_234: CheckExternalEvents(cs1, 0x0096); // F000:0096 mov DX,0x0EFF - DX = (ushort)0x0EFF; + DX = 0x0EFF; // F000:0099 push DX Stack.Push16(DX); CheckExternalEvents(cs1, 0x009A); @@ -393,7 +393,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x00A6); // F000:00A6 mov DX,0x0800 - DX = (ushort)0x0800; + DX = 0x0800; // F000:00A9 push DX Stack.Push16(DX); CheckExternalEvents(cs1, 0x00AA); @@ -417,7 +417,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x00B2); // F000:00B2 mov DX,0x0804 - DX = (ushort)0x0804; + DX = 0x0804; // F000:00B5 push DX Stack.Push16(DX); CheckExternalEvents(cs1, 0x00B6); @@ -441,7 +441,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x00BE); // F000:00BE mov DX,0x0884 - DX = (ushort)0x0884; + DX = 0x0884; // F000:00C1 push DX Stack.Push16(DX); CheckExternalEvents(cs1, 0x00C2); @@ -459,7 +459,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_00C8_F00C8_307: CheckExternalEvents(cs1, 0x00C8); // F000:00C8 mov word ptr DS:[0],0x1234 - UInt16[DS, (ushort)0x0000] = (ushort)0x1234; + UInt16[DS, 0] = 0x1234; // F000:00CE hlt return Hlt(); label_F000_FFF0_FFFF0_0: diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/jump2.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/jump2.spec.cs.txt index 78ee6e10ee..69ed70f3f3 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/jump2.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/jump2.spec.cs.txt @@ -35,20 +35,20 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_0000_F0000(int loadOffset) { CheckExternalEvents(cs2, 0x0000); // F000:0000 mov BX,0xF000 - BX = (ushort)0xF000; + BX = 0xF000; // F000:0003 mov DS,BX DS = BX; // F000:0005 mov AX,0x1290 - AX = (ushort)0x1290; + AX = 0x1290; // F000:0008 mov CX,5 - CX = (ushort)0x0005; + CX = 5; label_F000_000B_F000B_9: CheckExternalEvents(cs2, 0x000B); // F000:000B push CX Stack.Push16(CX); // F000:000C loop 0x000B - CX = unchecked((ushort)(CX - (ushort)0x0001)); - if (CX != (ushort)0x0000) { + CX = unchecked((ushort)(CX - 1)); + if (CX != 0) { goto label_F000_000B_F000B_9; } CheckExternalEvents(cs2, 0x000E); @@ -62,22 +62,22 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs2, 0x0010); // F000:0010 ret near - return NearRet((ushort)0x0000); + return NearRet(0); } public virtual Action unknown_F000_1290_F1290(int loadOffset) { label_F000_1290_F1290_24: CheckExternalEvents(cs2, 0x1290); // F000:1290 mov CX,0xFFFF - CX = (ushort)0xFFFF; + CX = 0xFFFF; // F000:1293 loope 0x1290 - CX = unchecked((ushort)(CX - (ushort)0x0001)); - if (CX != (ushort)0x0000 && ZeroFlag) { + CX = unchecked((ushort)(CX - 1)); + if (CX != 0 && ZeroFlag) { goto label_F000_1290_F1290_24; } CheckExternalEvents(cs2, 0x1295); // F000:1295 mov DX,0x0040 - DX = (ushort)0x0040; + DX = 0x0040; // F000:1298 push DX Stack.Push16(DX); CheckExternalEvents(cs2, 0x1299); @@ -85,8 +85,8 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { FlagRegister16 = Stack.Pop16(); CheckExternalEvents(cs2, 0x129A); // F000:129A loope 0x129D - CX = unchecked((ushort)(CX - (ushort)0x0001)); - if (CX != (ushort)0x0000 && ZeroFlag) { + CX = unchecked((ushort)(CX - 1)); + if (CX != 0 && ZeroFlag) { goto label_F000_129D_F129D_38; } CheckExternalEvents(cs2, 0x129C); @@ -99,14 +99,14 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { FarCall(cs2, 0x12A2, cs1, unknown_E342_EBE0_F2000); CheckExternalEvents(cs2, 0x12A2); // F000:12A2 jcxz short 0x129D - if (CX == (ushort)0x0000) { + if (CX == 0) { goto label_F000_129D_F129D_38; } CheckExternalEvents(cs2, 0x12A4); // F000:12A4 mov CX,0 - CX = (ushort)0x0000; + CX = 0; // F000:12A7 jcxz short 0x12AA - if (CX == (ushort)0x0000) { + if (CX == 0) { goto label_F000_12AA_F12AA_85; } CheckExternalEvents(cs2, 0x12A9); @@ -116,22 +116,22 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_12AA_F12AA_85: CheckExternalEvents(cs2, 0x12AA); // F000:12AA ret near 0x000A - return NearRet((ushort)0x000A); + return NearRet(0x000A); } public virtual Action unknown_E342_EBE0_F2000(int loadOffset) { CheckExternalEvents(cs1, 0xEBE0); // E342:EBE0 call near word ptr DS:[0x3000] - switch ((ushort)(UInt16[DS, (ushort)0x3000])) { + switch ((ushort)(UInt16[DS, 0x3000])) { case 0xFDE0: NearCall(cs1, 0xEBE4, unknown_E342_FDE0_F3200); break; default: - throw FailAsUntested($"Unknown near call target 0x{((ushort)(UInt16[DS, (ushort)0x3000])):X4} at E342:EBE0"); + throw FailAsUntested($"Unknown near call target 0x{((ushort)(UInt16[DS, 0x3000])):X4} at E342:EBE0"); } CheckExternalEvents(cs1, 0xEBE4); // E342:EBE4 mov DX,0 - DX = (ushort)0x0000; + DX = 0; // E342:EBE7 push DX Stack.Push16(DX); CheckExternalEvents(cs1, 0xEBE8); @@ -140,16 +140,16 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_E342_EBE9_F2009_66: CheckExternalEvents(cs1, 0xEBE9); // E342:EBE9 mov CX,1 - CX = (ushort)0x0001; + CX = 1; // E342:EBEC loopne 0xEBE9 - CX = unchecked((ushort)(CX - (ushort)0x0001)); - if (CX != (ushort)0x0000 && !ZeroFlag) { + CX = unchecked((ushort)(CX - 1)); + if (CX != 0 && !ZeroFlag) { goto label_E342_EBE9_F2009_66; } CheckExternalEvents(cs1, 0xEBEE); // E342:EBEE loopne 0xEBF1 - CX = unchecked((ushort)(CX - (ushort)0x0001)); - if (CX != (ushort)0x0000 && !ZeroFlag) { + CX = unchecked((ushort)(CX - 1)); + if (CX != 0 && !ZeroFlag) { goto label_E342_EBF1_F2011_72; } CheckExternalEvents(cs1, 0xEBF0); @@ -159,20 +159,20 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_E342_EBF1_F2011_72: CheckExternalEvents(cs1, 0xEBF1); // E342:EBF1 ret far - return FarRet((ushort)0x0000); + return FarRet(0); } public virtual Action unknown_E342_FDE0_F3200(int loadOffset) { CheckExternalEvents(cs1, 0xFDE0); // E342:FDE0 mov BX,0x2FF0 - BX = (ushort)0x2FF0; + BX = 0x2FF0; // E342:FDE3 mov SI,0x0010 - SI = (ushort)0x0010; + SI = 0x0010; // E342:FDE6 push DX Stack.Push16(DX); // E342:FDE7 call far dword ptr DS:[BX+SI+2] - ushort targetSegment_51 = unchecked((ushort)(UInt16[DS, (ushort)(BX + SI + (sbyte)2 + (ushort)0x0002)])); - ushort targetOffset_51 = unchecked((ushort)(UInt16[DS, (ushort)(BX + SI + (sbyte)2)])); + ushort targetSegment_51 = unchecked((ushort)(UInt16[DS, (ushort)(BX + SI + 2 + 2)])); + ushort targetOffset_51 = unchecked((ushort)(UInt16[DS, (ushort)(BX + SI + 2)])); if (targetSegment_51 == cs2 && targetOffset_51 == 0x4000) { FarCall(cs1, 0xFDEA, cs2, unknown_F000_4000_F4000); goto label_E342_FDEA_F320A_57; @@ -181,19 +181,19 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_E342_FDEA_F320A_57: CheckExternalEvents(cs1, 0xFDEA); // E342:FDEA ret near - return NearRet((ushort)0x0000); + return NearRet(0); } public virtual Action unknown_F000_4000_F4000(int loadOffset) { CheckExternalEvents(cs2, 0x4000); // F000:4000 ret far 2 - return FarRet((ushort)0x0002); + return FarRet(2); } public virtual Action unknown_F000_FFF0_FFFF0(int loadOffset) { CheckExternalEvents(cs2, 0xFFF0); // F000:FFF0 mov SP,0x1000 - SP = (ushort)0x1000; + SP = 0x1000; // F000:FFF3 mov SS,SP SS = SP; State.InterruptShadowing = true; @@ -203,7 +203,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:FFF8 mov DS,CX DS = CX; // F000:FFFA mov word ptr DS:[0],BX - UInt16[DS, (ushort)0x0000] = BX; + UInt16[DS, 0] = BX; // F000:FFFE hlt return Hlt(); } diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/linearsamesegmenteddifferent.a20.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/linearsamesegmenteddifferent.a20.spec.cs.txt index 84830329fa..971404c165 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/linearsamesegmenteddifferent.a20.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/linearsamesegmenteddifferent.a20.spec.cs.txt @@ -34,9 +34,9 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // FFEF:000D jmp near 0x0110 CheckExternalEvents(cs2, 0x0110); // FFEF:0110 mov AX,2 - AX = (ushort)0x0002; + AX = 2; // FFEF:0113 mov word ptr DS:[0],AX - UInt16[DS, (ushort)0x0000] = AX; + UInt16[DS, 0] = AX; // FFEF:0116 hlt return Hlt(); } @@ -47,13 +47,13 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_18: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,1 - AX = (ushort)0x0001; + AX = 1; // F000:0003 push -17 - Stack.Push16(unchecked((ushort)unchecked((short)(sbyte)-17))); + Stack.Push16(0xFFEF); // F000:0005 push 0x0D - Stack.Push16(unchecked((ushort)unchecked((short)(sbyte)13))); + Stack.Push16(0x000D); // F000:0007 ret far - return FarRet((ushort)0x0000); + return FarRet(0); label_F000_FEFD_FFEFD_17: CheckExternalEvents(cs1, 0xFEFD); // F000:FEFD jmp near 0 @@ -66,20 +66,20 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0008_F0008_1: CheckExternalEvents(cs1, 0x0008); // F000:0008 mov SP,0x1000 - SP = (ushort)0x1000; + SP = 0x1000; // F000:000B mov BX,0x1000 - BX = (ushort)0x1000; + BX = 0x1000; // F000:000E mov SS,BX SS = BX; State.InterruptShadowing = true; // F000:0010 mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:0013 push 0xF000 - Stack.Push16((ushort)0xF000); + Stack.Push16(0xF000); // F000:0016 push 0xFEFD - Stack.Push16((ushort)0xFEFD); + Stack.Push16(0xFEFD); // F000:0019 ret far - return FarRet((ushort)0x0000); + return FarRet(0); label_F000_FFF0_FFFF0_0: CheckExternalEvents(cs1, 0xFFF0); // F000:FFF0 jmp short 8 diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/lockprefix.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/lockprefix.spec.cs.txt index d8d1a60004..c1f5b0dc79 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/lockprefix.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/lockprefix.spec.cs.txt @@ -32,7 +32,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_0045_F0045(int loadOffset) { CheckExternalEvents(cs1, 0x0045); // F000:0045 mov word ptr DS:[4],0x004E - UInt16[DS, (ushort)0x0004] = (ushort)0x004E; + UInt16[DS, 4] = 0x004E; // F000:004B invalid try { throw new Spice86.Core.Emulator.CPU.Exceptions.CpuInvalidOpcodeException("LOCK prefix is invalid with instruction ADD at F000:004B: no memory destination operand"); @@ -51,7 +51,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_004E_F004E(int loadOffset) { CheckExternalEvents(cs1, 0x004E); // F000:004E mov word ptr DS:[4],0x0057 - UInt16[DS, (ushort)0x0004] = (ushort)0x0057; + UInt16[DS, 4] = 0x0057; // F000:0054 invalid try { throw new Spice86.Core.Emulator.CPU.Exceptions.CpuInvalidOpcodeException("LOCK prefix is invalid with instruction INC at F000:0054: no memory destination operand"); @@ -80,13 +80,13 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:005B mov BP,SP BP = SP; // F000:005D mov AX,word ptr DS:[4] - AX = UInt16[DS, (ushort)0x0004]; + AX = UInt16[DS, 4]; // F000:0060 mov word ptr SS:[BP+2],AX - UInt16[SS, (ushort)(BP + (sbyte)2)] = AX; + UInt16[SS, (ushort)(BP + 2)] = AX; // F000:0063 pop BP BP = Stack.Pop16(); // F000:0064 inc word ptr DS:[0] - UInt16[DS, (ushort)0x0000] = Alu16.Inc(UInt16[DS, (ushort)0x0000]); + UInt16[DS, 0] = Alu16.Inc(UInt16[DS, 0]); // F000:0068 iret return InterruptRet(); } @@ -104,27 +104,27 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { SS = AX; State.InterruptShadowing = true; // F000:0006 mov SP,0x8000 - SP = (ushort)0x8000; + SP = 0x8000; // F000:0009 mov word ptr DS:[0x0018],0x005A - UInt16[DS, (ushort)0x0018] = (ushort)0x005A; + UInt16[DS, 0x0018] = 0x005A; // F000:000F mov word ptr DS:[0x001A],CS - UInt16[DS, (ushort)0x001A] = CS; + UInt16[DS, 0x001A] = CS; // F000:0013 mov word ptr DS:[0],0 - UInt16[DS, (ushort)0x0000] = (ushort)0x0000; + UInt16[DS, 0] = 0; // F000:0019 mov word ptr DS:[2],0 - UInt16[DS, (ushort)0x0002] = (ushort)0x0000; + UInt16[DS, 2] = 0; // F000:001F mov word ptr DS:[0x0010],1 - UInt16[DS, (ushort)0x0010] = (ushort)0x0001; + UInt16[DS, 0x0010] = 1; // F000:0025 add word ptr DS:[0x0010],AX - UInt16[DS, (ushort)0x0010] = Alu16.Add(UInt16[DS, (ushort)0x0010], AX); + UInt16[DS, 0x0010] = Alu16.Add(UInt16[DS, 0x0010], AX); // F000:002A inc word ptr DS:[0x0010] - UInt16[DS, (ushort)0x0010] = Alu16.Inc(UInt16[DS, (ushort)0x0010]); + UInt16[DS, 0x0010] = Alu16.Inc(UInt16[DS, 0x0010]); // F000:002F dec word ptr DS:[0x0010] - UInt16[DS, (ushort)0x0010] = Alu16.Dec(UInt16[DS, (ushort)0x0010]); + UInt16[DS, 0x0010] = Alu16.Dec(UInt16[DS, 0x0010]); // F000:0034 mov word ptr DS:[2],3 - UInt16[DS, (ushort)0x0002] = (ushort)0x0003; + UInt16[DS, 2] = 3; // F000:003A mov word ptr DS:[4],0x0045 - UInt16[DS, (ushort)0x0004] = (ushort)0x0045; + UInt16[DS, 4] = 0x0045; // F000:0040 invalid try { throw new Spice86.Core.Emulator.CPU.Exceptions.CpuInvalidOpcodeException("LOCK prefix is invalid with instruction MOV at F000:0040: not in the LOCK-allowed instruction set"); diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/mul.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/mul.spec.cs.txt index 8cbf823204..25b0a94fb1 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/mul.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/mul.spec.cs.txt @@ -31,417 +31,417 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov SP,0x00C0 - SP = (ushort)0x00C0; + SP = 0x00C0; // F000:0003 mov BX,3 - BX = (ushort)0x0003; + BX = 3; // F000:0006 mov AX,7 - AX = (ushort)0x0007; + AX = 7; // F000:0009 mov DX,0xFFFF - DX = (ushort)0xFFFF; + DX = 0xFFFF; // F000:000C mul BX uint result_F000_000C_F000C = Alu16.Mul(AX, unchecked((ushort)unchecked((short)BX))); - DX = unchecked((ushort)(result_F000_000C_F000C >> 16)); + DX = unchecked((ushort)(result_F000_000C_F000C >> 0x00000010)); AX = unchecked((ushort)result_F000_000C_F000C); // F000:000E mov word ptr DS:[0],AX - UInt16[DS, (ushort)0x0000] = AX; + UInt16[DS, 0] = AX; // F000:0011 mov word ptr DS:[2],DX - UInt16[DS, (ushort)0x0002] = DX; + UInt16[DS, 2] = DX; // F000:0015 pushf Stack.Push16(FlagRegister16); // F000:0016 mov DX,0xA320 - DX = (ushort)0xA320; + DX = 0xA320; // F000:0019 mov AX,0xFFFF - AX = (ushort)0xFFFF; + AX = 0xFFFF; // F000:001C mul DX uint result_F000_001C_F001C = Alu16.Mul(AX, unchecked((ushort)unchecked((short)DX))); - DX = unchecked((ushort)(result_F000_001C_F001C >> 16)); + DX = unchecked((ushort)(result_F000_001C_F001C >> 0x00000010)); AX = unchecked((ushort)result_F000_001C_F001C); // F000:001E mov word ptr DS:[4],AX - UInt16[DS, (ushort)0x0004] = AX; + UInt16[DS, 4] = AX; // F000:0021 mov word ptr DS:[6],DX - UInt16[DS, (ushort)0x0006] = DX; + UInt16[DS, 6] = DX; // F000:0025 pushf Stack.Push16(FlagRegister16); // F000:0026 mov AX,0xFFFF - AX = (ushort)0xFFFF; + AX = 0xFFFF; // F000:0029 mov word ptr DS:[8],1 - UInt16[DS, (ushort)0x0008] = (ushort)0x0001; + UInt16[DS, 8] = 1; // F000:002F mul word ptr DS:[8] - uint result_F000_002F_F002F = Alu16.Mul(AX, unchecked((ushort)unchecked((short)UInt16[DS, (ushort)0x0008]))); - DX = unchecked((ushort)(result_F000_002F_F002F >> 16)); + uint result_F000_002F_F002F = Alu16.Mul(AX, unchecked((ushort)unchecked((short)UInt16[DS, 8]))); + DX = unchecked((ushort)(result_F000_002F_F002F >> 0x00000010)); AX = unchecked((ushort)result_F000_002F_F002F); // F000:0033 mov word ptr DS:[0x000A],AX - UInt16[DS, (ushort)0x000A] = AX; + UInt16[DS, 0x000A] = AX; // F000:0036 mov word ptr DS:[0x000C],DX - UInt16[DS, (ushort)0x000C] = DX; + UInt16[DS, 0x000C] = DX; // F000:003A pushf Stack.Push16(FlagRegister16); // F000:003B mov AX,0xFFFF - AX = (ushort)0xFFFF; + AX = 0xFFFF; // F000:003E mov word ptr DS:[0x000E],0xFFFF - UInt16[DS, (ushort)0x000E] = (ushort)0xFFFF; + UInt16[DS, 0x000E] = 0xFFFF; // F000:0044 mul word ptr DS:[0x000E] - uint result_F000_0044_F0044 = Alu16.Mul(AX, unchecked((ushort)unchecked((short)UInt16[DS, (ushort)0x000E]))); - DX = unchecked((ushort)(result_F000_0044_F0044 >> 16)); + uint result_F000_0044_F0044 = Alu16.Mul(AX, unchecked((ushort)unchecked((short)UInt16[DS, 0x000E]))); + DX = unchecked((ushort)(result_F000_0044_F0044 >> 0x00000010)); AX = unchecked((ushort)result_F000_0044_F0044); // F000:0048 mov word ptr DS:[0x0010],AX - UInt16[DS, (ushort)0x0010] = AX; + UInt16[DS, 0x0010] = AX; // F000:004B mov word ptr DS:[0x0012],DX - UInt16[DS, (ushort)0x0012] = DX; + UInt16[DS, 0x0012] = DX; // F000:004F pushf Stack.Push16(FlagRegister16); // F000:0050 mov AX,0x46DB - AX = (ushort)0x46DB; + AX = 0x46DB; // F000:0053 mov BP,0 - BP = (ushort)0x0000; + BP = 0; // F000:0056 mul BP uint result_F000_0056_F0056 = Alu16.Mul(AX, unchecked((ushort)unchecked((short)BP))); - DX = unchecked((ushort)(result_F000_0056_F0056 >> 16)); + DX = unchecked((ushort)(result_F000_0056_F0056 >> 0x00000010)); AX = unchecked((ushort)result_F000_0056_F0056); // F000:0058 mov word ptr DS:[0x0014],BP - UInt16[DS, (ushort)0x0014] = BP; + UInt16[DS, 0x0014] = BP; // F000:005C mov word ptr DS:[0x0016],AX - UInt16[DS, (ushort)0x0016] = AX; + UInt16[DS, 0x0016] = AX; // F000:005F mov word ptr DS:[0x0018],DX - UInt16[DS, (ushort)0x0018] = DX; + UInt16[DS, 0x0018] = DX; // F000:0063 pushf Stack.Push16(FlagRegister16); // F000:0064 mov AX,0x46DB - AX = (ushort)0x46DB; + AX = 0x46DB; // F000:0067 mov SI,0xEEEB - SI = (ushort)0xEEEB; + SI = 0xEEEB; // F000:006A mul SI uint result_F000_006A_F006A = Alu16.Mul(AX, unchecked((ushort)unchecked((short)SI))); - DX = unchecked((ushort)(result_F000_006A_F006A >> 16)); + DX = unchecked((ushort)(result_F000_006A_F006A >> 0x00000010)); AX = unchecked((ushort)result_F000_006A_F006A); // F000:006C mov word ptr DS:[0x001A],SI - UInt16[DS, (ushort)0x001A] = SI; + UInt16[DS, 0x001A] = SI; // F000:0070 mov word ptr DS:[0x001C],AX - UInt16[DS, (ushort)0x001C] = AX; + UInt16[DS, 0x001C] = AX; // F000:0073 mov word ptr DS:[0x001E],DX - UInt16[DS, (ushort)0x001E] = DX; + UInt16[DS, 0x001E] = DX; // F000:0077 pushf Stack.Push16(FlagRegister16); // F000:0078 mov BL,0x14 - BL = (byte)0x14; + BL = 0x14; // F000:007A mov AX,0xFF07 - AX = (ushort)0xFF07; + AX = 0xFF07; // F000:007D mov DX,0xFFFF - DX = (ushort)0xFFFF; + DX = 0xFFFF; // F000:0080 mul BL ushort result_F000_0080_F0080 = Alu8.Mul(AL, unchecked((byte)unchecked((sbyte)BL))); AH = unchecked((byte)(result_F000_0080_F0080 >> 8)); AL = unchecked((byte)result_F000_0080_F0080); // F000:0082 mov word ptr DS:[0x0020],AX - UInt16[DS, (ushort)0x0020] = AX; + UInt16[DS, 0x0020] = AX; // F000:0085 mov word ptr DS:[0x0022],DX - UInt16[DS, (ushort)0x0022] = DX; + UInt16[DS, 0x0022] = DX; // F000:0089 pushf Stack.Push16(FlagRegister16); // F000:008A mov CH,0x24 - CH = (byte)0x24; + CH = 0x24; // F000:008C mov AX,0x00FF - AX = (ushort)0x00FF; + AX = 0x00FF; // F000:008F mul CH ushort result_F000_008F_F008F = Alu8.Mul(AL, unchecked((byte)unchecked((sbyte)CH))); AH = unchecked((byte)(result_F000_008F_F008F >> 8)); AL = unchecked((byte)result_F000_008F_F008F); // F000:0091 mov word ptr DS:[0x0024],AX - UInt16[DS, (ushort)0x0024] = AX; + UInt16[DS, 0x0024] = AX; // F000:0094 mov word ptr DS:[0x0026],DX - UInt16[DS, (ushort)0x0026] = DX; + UInt16[DS, 0x0026] = DX; // F000:0098 pushf Stack.Push16(FlagRegister16); // F000:0099 mov AX,0x00FF - AX = (ushort)0x00FF; + AX = 0x00FF; // F000:009C mov byte ptr DS:[0x0028],1 - UInt8[DS, (ushort)0x0028] = (byte)0x01; + UInt8[DS, 0x0028] = 1; // F000:00A1 mul byte ptr DS:[0x0028] - ushort result_F000_00A1_F00A1 = Alu8.Mul(AL, unchecked((byte)unchecked((sbyte)UInt8[DS, (ushort)0x0028]))); + ushort result_F000_00A1_F00A1 = Alu8.Mul(AL, unchecked((byte)unchecked((sbyte)UInt8[DS, 0x0028]))); AH = unchecked((byte)(result_F000_00A1_F00A1 >> 8)); AL = unchecked((byte)result_F000_00A1_F00A1); // F000:00A5 mov word ptr DS:[0x0029],AX - UInt16[DS, (ushort)0x0029] = AX; + UInt16[DS, 0x0029] = AX; // F000:00A8 mov word ptr DS:[0x002B],DX - UInt16[DS, (ushort)0x002B] = DX; + UInt16[DS, 0x002B] = DX; // F000:00AC pushf Stack.Push16(FlagRegister16); // F000:00AD mov AX,0xFFFF - AX = (ushort)0xFFFF; + AX = 0xFFFF; // F000:00B0 mov byte ptr DS:[0x002D],0xFF - UInt8[DS, (ushort)0x002D] = (byte)0xFF; + UInt8[DS, 0x002D] = 0xFF; // F000:00B5 mul byte ptr DS:[0x002D] - ushort result_F000_00B5_F00B5 = Alu8.Mul(AL, unchecked((byte)unchecked((sbyte)UInt8[DS, (ushort)0x002D]))); + ushort result_F000_00B5_F00B5 = Alu8.Mul(AL, unchecked((byte)unchecked((sbyte)UInt8[DS, 0x002D]))); AH = unchecked((byte)(result_F000_00B5_F00B5 >> 8)); AL = unchecked((byte)result_F000_00B5_F00B5); // F000:00B9 mov word ptr DS:[0x002E],AX - UInt16[DS, (ushort)0x002E] = AX; + UInt16[DS, 0x002E] = AX; // F000:00BC mov word ptr DS:[0x002E],DX - UInt16[DS, (ushort)0x002E] = DX; + UInt16[DS, 0x002E] = DX; // F000:00C0 pushf Stack.Push16(FlagRegister16); // F000:00C1 mov AX,0x00C5 - AX = (ushort)0x00C5; + AX = 0x00C5; // F000:00C4 mov DX,0 - DX = (ushort)0x0000; + DX = 0; // F000:00C7 mul DL ushort result_F000_00C7_F00C7 = Alu8.Mul(AL, unchecked((byte)unchecked((sbyte)DL))); AH = unchecked((byte)(result_F000_00C7_F00C7 >> 8)); AL = unchecked((byte)result_F000_00C7_F00C7); // F000:00C9 mov word ptr DS:[0x0030],DX - UInt16[DS, (ushort)0x0030] = DX; + UInt16[DS, 0x0030] = DX; // F000:00CD mov word ptr DS:[0x0032],AX - UInt16[DS, (ushort)0x0032] = AX; + UInt16[DS, 0x0032] = AX; // F000:00D0 pushf Stack.Push16(FlagRegister16); // F000:00D1 mov AL,0xB5 - AL = (byte)0xB5; + AL = 0xB5; // F000:00D3 mov DH,0xF9 - DH = (byte)0xF9; + DH = 0xF9; // F000:00D5 mul DH ushort result_F000_00D5_F00D5 = Alu8.Mul(AL, unchecked((byte)unchecked((sbyte)DH))); AH = unchecked((byte)(result_F000_00D5_F00D5 >> 8)); AL = unchecked((byte)result_F000_00D5_F00D5); // F000:00D7 mov word ptr DS:[0x0034],SI - UInt16[DS, (ushort)0x0034] = SI; + UInt16[DS, 0x0034] = SI; // F000:00DB mov word ptr DS:[0x0036],AX - UInt16[DS, (ushort)0x0036] = AX; + UInt16[DS, 0x0036] = AX; // F000:00DE mov word ptr DS:[0x0038],DX - UInt16[DS, (ushort)0x0038] = DX; + UInt16[DS, 0x0038] = DX; // F000:00E2 pushf Stack.Push16(FlagRegister16); // F000:00E3 mov BX,3 - BX = (ushort)0x0003; + BX = 3; // F000:00E6 mov AX,7 - AX = (ushort)0x0007; + AX = 7; // F000:00E9 mov DX,0xFFFF - DX = (ushort)0xFFFF; + DX = 0xFFFF; // F000:00EC imul BX int result_F000_00EC_F00EC = Alu16.Imul(unchecked((short)AX), unchecked((short)BX)); - DX = unchecked((ushort)(result_F000_00EC_F00EC >> 16)); + DX = unchecked((ushort)(result_F000_00EC_F00EC >> 0x00000010)); AX = unchecked((ushort)result_F000_00EC_F00EC); // F000:00EE mov word ptr DS:[0x003C],AX - UInt16[DS, (ushort)0x003C] = AX; + UInt16[DS, 0x003C] = AX; // F000:00F1 mov word ptr DS:[0x003E],DX - UInt16[DS, (ushort)0x003E] = DX; + UInt16[DS, 0x003E] = DX; // F000:00F5 pushf Stack.Push16(FlagRegister16); // F000:00F6 mov DX,0xA320 - DX = (ushort)0xA320; + DX = 0xA320; // F000:00F9 mov AX,0xFFFF - AX = (ushort)0xFFFF; + AX = 0xFFFF; // F000:00FC imul DX int result_F000_00FC_F00FC = Alu16.Imul(unchecked((short)AX), unchecked((short)DX)); - DX = unchecked((ushort)(result_F000_00FC_F00FC >> 16)); + DX = unchecked((ushort)(result_F000_00FC_F00FC >> 0x00000010)); AX = unchecked((ushort)result_F000_00FC_F00FC); // F000:00FE mov word ptr DS:[0x0040],AX - UInt16[DS, (ushort)0x0040] = AX; + UInt16[DS, 0x0040] = AX; // F000:0101 mov word ptr DS:[0x0042],DX - UInt16[DS, (ushort)0x0042] = DX; + UInt16[DS, 0x0042] = DX; // F000:0105 pushf Stack.Push16(FlagRegister16); // F000:0106 mov AX,0xFFFF - AX = (ushort)0xFFFF; + AX = 0xFFFF; // F000:0109 mov word ptr DS:[0x0044],1 - UInt16[DS, (ushort)0x0044] = (ushort)0x0001; + UInt16[DS, 0x0044] = 1; // F000:010F imul word ptr DS:[0x0044] - int result_F000_010F_F010F = Alu16.Imul(unchecked((short)AX), unchecked((short)UInt16[DS, (ushort)0x0044])); - DX = unchecked((ushort)(result_F000_010F_F010F >> 16)); + int result_F000_010F_F010F = Alu16.Imul(unchecked((short)AX), unchecked((short)UInt16[DS, 0x0044])); + DX = unchecked((ushort)(result_F000_010F_F010F >> 0x00000010)); AX = unchecked((ushort)result_F000_010F_F010F); // F000:0113 mov word ptr DS:[0x0046],AX - UInt16[DS, (ushort)0x0046] = AX; + UInt16[DS, 0x0046] = AX; // F000:0116 mov word ptr DS:[0x0048],DX - UInt16[DS, (ushort)0x0048] = DX; + UInt16[DS, 0x0048] = DX; // F000:011A pushf Stack.Push16(FlagRegister16); // F000:011B mov AX,0xFFFF - AX = (ushort)0xFFFF; + AX = 0xFFFF; // F000:011E mov word ptr DS:[0x004A],0xFFFF - UInt16[DS, (ushort)0x004A] = (ushort)0xFFFF; + UInt16[DS, 0x004A] = 0xFFFF; // F000:0124 imul word ptr DS:[0x004A] - int result_F000_0124_F0124 = Alu16.Imul(unchecked((short)AX), unchecked((short)UInt16[DS, (ushort)0x004A])); - DX = unchecked((ushort)(result_F000_0124_F0124 >> 16)); + int result_F000_0124_F0124 = Alu16.Imul(unchecked((short)AX), unchecked((short)UInt16[DS, 0x004A])); + DX = unchecked((ushort)(result_F000_0124_F0124 >> 0x00000010)); AX = unchecked((ushort)result_F000_0124_F0124); // F000:0128 mov word ptr DS:[0x004C],AX - UInt16[DS, (ushort)0x004C] = AX; + UInt16[DS, 0x004C] = AX; // F000:012B mov word ptr DS:[0x004E],DX - UInt16[DS, (ushort)0x004E] = DX; + UInt16[DS, 0x004E] = DX; // F000:012F pushf Stack.Push16(FlagRegister16); // F000:0130 mov AX,0x46DB - AX = (ushort)0x46DB; + AX = 0x46DB; // F000:0133 mov BP,0 - BP = (ushort)0x0000; + BP = 0; // F000:0136 imul BP int result_F000_0136_F0136 = Alu16.Imul(unchecked((short)AX), unchecked((short)BP)); - DX = unchecked((ushort)(result_F000_0136_F0136 >> 16)); + DX = unchecked((ushort)(result_F000_0136_F0136 >> 0x00000010)); AX = unchecked((ushort)result_F000_0136_F0136); // F000:0138 mov word ptr DS:[0x0050],BP - UInt16[DS, (ushort)0x0050] = BP; + UInt16[DS, 0x0050] = BP; // F000:013C mov word ptr DS:[0x0052],AX - UInt16[DS, (ushort)0x0052] = AX; + UInt16[DS, 0x0052] = AX; // F000:013F mov word ptr DS:[0x0054],DX - UInt16[DS, (ushort)0x0054] = DX; + UInt16[DS, 0x0054] = DX; // F000:0143 pushf Stack.Push16(FlagRegister16); // F000:0144 mov AX,0x46DB - AX = (ushort)0x46DB; + AX = 0x46DB; // F000:0147 mov SI,0xEEEB - SI = (ushort)0xEEEB; + SI = 0xEEEB; // F000:014A imul SI int result_F000_014A_F014A = Alu16.Imul(unchecked((short)AX), unchecked((short)SI)); - DX = unchecked((ushort)(result_F000_014A_F014A >> 16)); + DX = unchecked((ushort)(result_F000_014A_F014A >> 0x00000010)); AX = unchecked((ushort)result_F000_014A_F014A); // F000:014C mov word ptr DS:[0x0056],SI - UInt16[DS, (ushort)0x0056] = SI; + UInt16[DS, 0x0056] = SI; // F000:0150 mov word ptr DS:[0x0058],AX - UInt16[DS, (ushort)0x0058] = AX; + UInt16[DS, 0x0058] = AX; // F000:0153 mov word ptr DS:[0x005A],DX - UInt16[DS, (ushort)0x005A] = DX; + UInt16[DS, 0x005A] = DX; // F000:0157 pushf Stack.Push16(FlagRegister16); // F000:0158 mov BL,0x14 - BL = (byte)0x14; + BL = 0x14; // F000:015A mov AX,0xFF07 - AX = (ushort)0xFF07; + AX = 0xFF07; // F000:015D mov DX,0xFFFF - DX = (ushort)0xFFFF; + DX = 0xFFFF; // F000:0160 imul BL short result_F000_0160_F0160 = Alu8.Imul(unchecked((sbyte)AL), unchecked((sbyte)BL)); AH = unchecked((byte)(result_F000_0160_F0160 >> 8)); AL = unchecked((byte)result_F000_0160_F0160); // F000:0162 mov word ptr DS:[0x005C],AX - UInt16[DS, (ushort)0x005C] = AX; + UInt16[DS, 0x005C] = AX; // F000:0165 mov word ptr DS:[0x005E],DX - UInt16[DS, (ushort)0x005E] = DX; + UInt16[DS, 0x005E] = DX; // F000:0169 pushf Stack.Push16(FlagRegister16); // F000:016A mov CH,0x24 - CH = (byte)0x24; + CH = 0x24; // F000:016C mov AX,0x00FF - AX = (ushort)0x00FF; + AX = 0x00FF; // F000:016F imul CH short result_F000_016F_F016F = Alu8.Imul(unchecked((sbyte)AL), unchecked((sbyte)CH)); AH = unchecked((byte)(result_F000_016F_F016F >> 8)); AL = unchecked((byte)result_F000_016F_F016F); // F000:0171 mov word ptr DS:[0x0060],AX - UInt16[DS, (ushort)0x0060] = AX; + UInt16[DS, 0x0060] = AX; // F000:0174 mov word ptr DS:[0x0062],DX - UInt16[DS, (ushort)0x0062] = DX; + UInt16[DS, 0x0062] = DX; // F000:0178 pushf Stack.Push16(FlagRegister16); // F000:0179 mov AX,0x00FF - AX = (ushort)0x00FF; + AX = 0x00FF; // F000:017C mov byte ptr DS:[0x0064],1 - UInt8[DS, (ushort)0x0064] = (byte)0x01; + UInt8[DS, 0x0064] = 1; // F000:0181 imul byte ptr DS:[0x0064] - short result_F000_0181_F0181 = Alu8.Imul(unchecked((sbyte)AL), unchecked((sbyte)UInt8[DS, (ushort)0x0064])); + short result_F000_0181_F0181 = Alu8.Imul(unchecked((sbyte)AL), unchecked((sbyte)UInt8[DS, 0x0064])); AH = unchecked((byte)(result_F000_0181_F0181 >> 8)); AL = unchecked((byte)result_F000_0181_F0181); // F000:0185 mov word ptr DS:[0x0065],AX - UInt16[DS, (ushort)0x0065] = AX; + UInt16[DS, 0x0065] = AX; // F000:0188 mov word ptr DS:[0x0067],DX - UInt16[DS, (ushort)0x0067] = DX; + UInt16[DS, 0x0067] = DX; // F000:018C pushf Stack.Push16(FlagRegister16); // F000:018D mov AX,0xFFFF - AX = (ushort)0xFFFF; + AX = 0xFFFF; // F000:0190 mov byte ptr DS:[0x0069],0xFF - UInt8[DS, (ushort)0x0069] = (byte)0xFF; + UInt8[DS, 0x0069] = 0xFF; // F000:0195 imul byte ptr DS:[0x0069] - short result_F000_0195_F0195 = Alu8.Imul(unchecked((sbyte)AL), unchecked((sbyte)UInt8[DS, (ushort)0x0069])); + short result_F000_0195_F0195 = Alu8.Imul(unchecked((sbyte)AL), unchecked((sbyte)UInt8[DS, 0x0069])); AH = unchecked((byte)(result_F000_0195_F0195 >> 8)); AL = unchecked((byte)result_F000_0195_F0195); // F000:0199 mov word ptr DS:[0x006A],AX - UInt16[DS, (ushort)0x006A] = AX; + UInt16[DS, 0x006A] = AX; // F000:019C mov word ptr DS:[0x006A],DX - UInt16[DS, (ushort)0x006A] = DX; + UInt16[DS, 0x006A] = DX; // F000:01A0 pushf Stack.Push16(FlagRegister16); // F000:01A1 mov AX,0x00C5 - AX = (ushort)0x00C5; + AX = 0x00C5; // F000:01A4 mov DX,0 - DX = (ushort)0x0000; + DX = 0; // F000:01A7 imul DL short result_F000_01A7_F01A7 = Alu8.Imul(unchecked((sbyte)AL), unchecked((sbyte)DL)); AH = unchecked((byte)(result_F000_01A7_F01A7 >> 8)); AL = unchecked((byte)result_F000_01A7_F01A7); // F000:01A9 mov word ptr DS:[0x006C],DX - UInt16[DS, (ushort)0x006C] = DX; + UInt16[DS, 0x006C] = DX; // F000:01AD mov word ptr DS:[0x006E],AX - UInt16[DS, (ushort)0x006E] = AX; + UInt16[DS, 0x006E] = AX; // F000:01B0 pushf Stack.Push16(FlagRegister16); // F000:01B1 mov AL,0xB5 - AL = (byte)0xB5; + AL = 0xB5; // F000:01B3 mov DH,0xF9 - DH = (byte)0xF9; + DH = 0xF9; // F000:01B5 imul DH short result_F000_01B5_F01B5 = Alu8.Imul(unchecked((sbyte)AL), unchecked((sbyte)DH)); AH = unchecked((byte)(result_F000_01B5_F01B5 >> 8)); AL = unchecked((byte)result_F000_01B5_F01B5); // F000:01B7 mov word ptr DS:[0x0070],SI - UInt16[DS, (ushort)0x0070] = SI; + UInt16[DS, 0x0070] = SI; // F000:01BB mov word ptr DS:[0x0072],AX - UInt16[DS, (ushort)0x0072] = AX; + UInt16[DS, 0x0072] = AX; // F000:01BE mov word ptr DS:[0x0074],DX - UInt16[DS, (ushort)0x0074] = DX; + UInt16[DS, 0x0074] = DX; // F000:01C2 pushf Stack.Push16(FlagRegister16); // F000:01C3 mov AX,0xFF00 - AX = (ushort)0xFF00; + AX = 0xFF00; // F000:01C6 aad - byte v2_F000_01C6_F01C6 = (byte)0x0A; + byte v2_F000_01C6_F01C6 = 0x0A; AL = unchecked((byte)(AL + AH * v2_F000_01C6_F01C6)); - AH = (byte)0x00; + AH = 0; Alu8.UpdateFlags(AL); CarryFlag = false; AuxiliaryFlag = false; OverflowFlag = false; // F000:01C8 mov word ptr DS:[0x0076],AX - UInt16[DS, (ushort)0x0076] = AX; + UInt16[DS, 0x0076] = AX; // F000:01CB pushf Stack.Push16(FlagRegister16); // F000:01CC mov AX,0xFFFF - AX = (ushort)0xFFFF; + AX = 0xFFFF; // F000:01CF aad - byte v2_F000_01CF_F01CF = (byte)0x12; + byte v2_F000_01CF_F01CF = 0x12; AL = unchecked((byte)(AL + AH * v2_F000_01CF_F01CF)); - AH = (byte)0x00; + AH = 0; Alu8.UpdateFlags(AL); CarryFlag = false; AuxiliaryFlag = false; OverflowFlag = false; // F000:01D1 mov word ptr DS:[0x0078],AX - UInt16[DS, (ushort)0x0078] = AX; + UInt16[DS, 0x0078] = AX; // F000:01D4 pushf Stack.Push16(FlagRegister16); // F000:01D5 mov AX,0x00FF - AX = (ushort)0x00FF; + AX = 0x00FF; // F000:01D8 aad - byte v2_F000_01D8_F01D8 = (byte)0xFF; + byte v2_F000_01D8_F01D8 = 0xFF; AL = unchecked((byte)(AL + AH * v2_F000_01D8_F01D8)); - AH = (byte)0x00; + AH = 0; Alu8.UpdateFlags(AL); CarryFlag = false; AuxiliaryFlag = false; OverflowFlag = false; // F000:01DA mov word ptr DS:[0x007A],AX - UInt16[DS, (ushort)0x007A] = AX; + UInt16[DS, 0x007A] = AX; // F000:01DD pushf Stack.Push16(FlagRegister16); // F000:01DE mov AX,0x532D - AX = (ushort)0x532D; + AX = 0x532D; // F000:01E1 aad - byte v2_F000_01E1_F01E1 = (byte)0x39; + byte v2_F000_01E1_F01E1 = 0x39; AL = unchecked((byte)(AL + AH * v2_F000_01E1_F01E1)); - AH = (byte)0x00; + AH = 0; Alu8.UpdateFlags(AL); CarryFlag = false; AuxiliaryFlag = false; OverflowFlag = false; // F000:01E3 mov word ptr DS:[0x007C],AX - UInt16[DS, (ushort)0x007C] = AX; + UInt16[DS, 0x007C] = AX; // F000:01E6 pushf Stack.Push16(FlagRegister16); // F000:01E7 hlt diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/multimisalignedcall.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/multimisalignedcall.spec.cs.txt index b7e7c3c661..b25fa50a5a 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/multimisalignedcall.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/multimisalignedcall.spec.cs.txt @@ -34,7 +34,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { entrydispatcher: CheckExternalEvents(cs1, 0x0014); // F000:0014 mov byte ptr DS:[0x0010],0xAA - UInt8[DS, (ushort)0x0010] = (byte)0xAA; + UInt8[DS, 0x0010] = 0xAA; // F000:0019 jmp short 0x0010 if (JumpDispatcher.Jump(unknown_F000_0010_F0010, 0x0000)) { loadOffset = JumpDispatcher.NextEntryAddress; @@ -47,7 +47,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { entrydispatcher: CheckExternalEvents(cs1, 0x001B); // F000:001B mov byte ptr DS:[0x0011],0xBB - UInt8[DS, (ushort)0x0011] = (byte)0xBB; + UInt8[DS, 0x0011] = 0xBB; // F000:0020 jmp short 0x0010 if (JumpDispatcher.Jump(unknown_F000_0010_F0010, 0x0000)) { loadOffset = JumpDispatcher.NextEntryAddress; @@ -59,7 +59,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_0022_F0022(int loadOffset) { CheckExternalEvents(cs1, 0x0022); // F000:0022 mov byte ptr DS:[0x0012],0xCC - UInt8[DS, (ushort)0x0012] = (byte)0xCC; + UInt8[DS, 0x0012] = 0xCC; // F000:0027 jmp short 0x0029 CheckExternalEvents(cs1, 0x0029); // F000:0029 hlt @@ -71,45 +71,45 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:002A pop AX AX = Stack.Pop16(); // F000:002B mov BX,word ptr DS:[0] - BX = UInt16[DS, (ushort)0x0000]; + BX = UInt16[DS, 0]; // F000:002F inc word ptr DS:[0] - UInt16[DS, (ushort)0x0000] = Alu16.Inc(UInt16[DS, (ushort)0x0000]); + UInt16[DS, 0] = Alu16.Inc(UInt16[DS, 0]); // F000:0033 cmp BX,0 - Alu16.Sub(BX, unchecked((ushort)unchecked((short)(sbyte)0))); + Alu16.Sub(BX, 0); // F000:0036 je short 0x0042 if (ZeroFlag) { goto label_F000_0042_F0042_15; } CheckExternalEvents(cs1, 0x0038); // F000:0038 cmp BX,1 - Alu16.Sub(BX, unchecked((ushort)unchecked((short)(sbyte)1))); + Alu16.Sub(BX, 1); // F000:003B je short 0x0047 if (ZeroFlag) { goto label_F000_0047_F0047_22; } CheckExternalEvents(cs1, 0x003D); // F000:003D mov AX,0x0022 - AX = (ushort)0x0022; + AX = 0x0022; // F000:0040 push AX Stack.Push16(AX); // F000:0041 ret near - return NearRet((ushort)0x0000); + return NearRet(0); label_F000_0042_F0042_15: CheckExternalEvents(cs1, 0x0042); // F000:0042 mov AX,0x0014 - AX = (ushort)0x0014; + AX = 0x0014; // F000:0045 push AX Stack.Push16(AX); // F000:0046 ret near - return NearRet((ushort)0x0000); + return NearRet(0); label_F000_0047_F0047_22: CheckExternalEvents(cs1, 0x0047); // F000:0047 mov AX,0x001B - AX = (ushort)0x001B; + AX = 0x001B; // F000:004A push AX Stack.Push16(AX); // F000:004B ret near - return NearRet((ushort)0x0000); + return NearRet(0); } public virtual Action unknown_F000_FFF0_FFFF0(int loadOffset) { @@ -118,16 +118,16 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:0003 mov DS,AX DS = AX; // F000:0005 mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:0007 mov SP,0x0100 - SP = (ushort)0x0100; + SP = 0x0100; // F000:000A mov word ptr DS:[0],0 - UInt16[DS, (ushort)0x0000] = (ushort)0x0000; + UInt16[DS, 0] = 0; return unknown_F000_0010_F0010(0x0000); label_F000_FFF0_FFFF0_0: CheckExternalEvents(cs1, 0xFFF0); diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_cross_function_loop.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_cross_function_loop.spec.cs.txt index 1a7bd4c068..de85f917e0 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_cross_function_loop.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_cross_function_loop.spec.cs.txt @@ -46,7 +46,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_001A_F001A_11: CheckExternalEvents(cs1, 0x001A); // F000:001A ret near - return NearRet((ushort)0x0000); + return NearRet(0); } public virtual Action unknown_F000_001B_F001B(int loadOffset) { @@ -68,7 +68,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0020_F0020_18: CheckExternalEvents(cs1, 0x0020); // F000:0020 ret near - return NearRet((ushort)0x0000); + return NearRet(0); } public virtual Action unknown_F000_FFF0_FFFF0(int loadOffset) { @@ -77,19 +77,19 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0x1000 - AX = (ushort)0x1000; + AX = 0x1000; // F000:0003 mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:0005 mov SP,0x0100 - SP = (ushort)0x0100; + SP = 0x0100; // F000:0008 mov CX,2 - CX = (ushort)0x0002; + CX = 2; // F000:000B call near 0x0015 NearCall(cs1, 0x000E, unknown_F000_0015_F0015); CheckExternalEvents(cs1, 0x000E); // F000:000E mov CX,2 - CX = (ushort)0x0002; + CX = 2; // F000:0011 call near 0x001B NearCall(cs1, 0x0014, unknown_F000_001B_F001B); CheckExternalEvents(cs1, 0x0014); diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_indirect_call_jump.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_indirect_call_jump.spec.cs.txt index 6797215bed..de74d39252 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_indirect_call_jump.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_indirect_call_jump.spec.cs.txt @@ -29,9 +29,9 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_0012_F0012(int loadOffset) { CheckExternalEvents(cs1, 0x0012); // F000:0012 mov AX,0x1111 - AX = (ushort)0x1111; + AX = 0x1111; // F000:0015 ret near - return NearRet((ushort)0x0000); + return NearRet(0); } public virtual Action unknown_F000_FFF0_FFFF0(int loadOffset) { @@ -40,14 +40,14 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0x1000 - AX = (ushort)0x1000; + AX = 0x1000; // F000:0003 mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:0005 mov SP,0x0100 - SP = (ushort)0x0100; + SP = 0x0100; // F000:0008 mov BX,0x0012 - BX = (ushort)0x0012; + BX = 0x0012; // F000:000B call near BX switch ((ushort)(BX)) { case 0x0012: @@ -58,7 +58,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x000D); // F000:000D mov BX,0x0016 - BX = (ushort)0x0016; + BX = 0x0016; // F000:0010 jmp near BX switch ((ushort)(BX)) { case 0x0016: diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_jump_into_function_middle.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_jump_into_function_middle.spec.cs.txt index 457445bea7..909c49cdf5 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_jump_into_function_middle.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_jump_into_function_middle.spec.cs.txt @@ -31,7 +31,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_000F_F000F(int loadOffset) { CheckExternalEvents(cs1, 0x000F); // F000:000F mov AX,0x1111 - AX = (ushort)0x1111; + AX = 0x1111; return unknown_F000_0012_F0012(0x0000); } @@ -47,12 +47,12 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0x1000 - AX = (ushort)0x1000; + AX = 0x1000; // F000:0003 mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:0005 mov SP,0x0100 - SP = (ushort)0x0100; + SP = 0x0100; // F000:0008 call near 0x000F NearCall(cs1, 0x000B, unknown_F000_000F_F000F); CheckExternalEvents(cs1, 0x000B); @@ -70,9 +70,9 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_0012_F0012(int loadOffset) { CheckExternalEvents(cs1, 0x0012); // F000:0012 mov BX,0x2222 - BX = (ushort)0x2222; + BX = 0x2222; // F000:0015 ret near - return NearRet((ushort)0x0000); + return NearRet(0); } } diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_mixed_activation_cycle.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_mixed_activation_cycle.spec.cs.txt index c7b834ceda..ebc339171f 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_mixed_activation_cycle.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_mixed_activation_cycle.spec.cs.txt @@ -47,7 +47,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_001A_F001A_15: CheckExternalEvents(cs1, 0x001A); // F000:001A ret near - return NearRet((ushort)0x0000); + return NearRet(0); } public virtual Action unknown_F000_001B_F001B(int loadOffset) { @@ -56,7 +56,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { NearCall(cs1, 0x001E, unknown_F000_001F_F001F); CheckExternalEvents(cs1, 0x001E); // F000:001E ret near - return NearRet((ushort)0x0000); + return NearRet(0); } public virtual Action unknown_F000_001F_F001F(int loadOffset) { @@ -76,19 +76,19 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0x1000 - AX = (ushort)0x1000; + AX = 0x1000; // F000:0003 mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:0005 mov SP,0x0100 - SP = (ushort)0x0100; + SP = 0x0100; // F000:0008 mov CX,1 - CX = (ushort)0x0001; + CX = 1; // F000:000B call near 0x001B NearCall(cs1, 0x000E, unknown_F000_001B_F001B); CheckExternalEvents(cs1, 0x000E); // F000:000E mov CX,2 - CX = (ushort)0x0002; + CX = 2; // F000:0011 call near 0x0015 NearCall(cs1, 0x0014, unknown_F000_0015_F0015); CheckExternalEvents(cs1, 0x0014); diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_multi_entry_dominated_shared.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_multi_entry_dominated_shared.spec.cs.txt index e7024c7d57..6bb5fff54c 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_multi_entry_dominated_shared.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_multi_entry_dominated_shared.spec.cs.txt @@ -33,7 +33,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_001D_F001D(int loadOffset) { CheckExternalEvents(cs1, 0x001D); // F000:001D cmp AL,0 - Alu8.Sub(AL, (byte)0x00); + Alu8.Sub(AL, 0); // F000:001F je short 0x0029 if (ZeroFlag) { return unknown_F000_0029_F0029(0x0000); @@ -46,7 +46,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_0023_F0023(int loadOffset) { CheckExternalEvents(cs1, 0x0023); // F000:0023 cmp AL,0 - Alu8.Sub(AL, (byte)0x00); + Alu8.Sub(AL, 0); // F000:0025 je short 0x0029 if (ZeroFlag) { return unknown_F000_0029_F0029(0x0000); @@ -62,29 +62,29 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0x1000 - AX = (ushort)0x1000; + AX = 0x1000; // F000:0003 mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:0005 mov SP,0x0100 - SP = (ushort)0x0100; + SP = 0x0100; // F000:0008 mov AL,0 - AL = (byte)0x00; + AL = 0; // F000:000A call near 0x001D NearCall(cs1, 0x000D, unknown_F000_001D_F001D); CheckExternalEvents(cs1, 0x000D); // F000:000D mov AL,1 - AL = (byte)0x01; + AL = 1; // F000:000F call near 0x001D NearCall(cs1, 0x0012, unknown_F000_001D_F001D); CheckExternalEvents(cs1, 0x0012); // F000:0012 mov AL,0 - AL = (byte)0x00; + AL = 0; // F000:0014 call near 0x0023 NearCall(cs1, 0x0017, unknown_F000_0023_F0023); CheckExternalEvents(cs1, 0x0017); // F000:0017 mov AL,1 - AL = (byte)0x01; + AL = 1; // F000:0019 call near 0x0023 NearCall(cs1, 0x001C, unknown_F000_0023_F0023); CheckExternalEvents(cs1, 0x001C); @@ -99,7 +99,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_0029_F0029(int loadOffset) { CheckExternalEvents(cs1, 0x0029); // F000:0029 mov BX,0xA111 - BX = (ushort)0xA111; + BX = 0xA111; // F000:002C jmp short 0x0033 return unknown_F000_0033_F0033(0x0000); } @@ -107,7 +107,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_002E_F002E(int loadOffset) { CheckExternalEvents(cs1, 0x002E); // F000:002E mov BX,0xB222 - BX = (ushort)0xB222; + BX = 0xB222; // F000:0031 jmp short 0x0033 return unknown_F000_0033_F0033(0x0000); } @@ -115,9 +115,9 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_0033_F0033(int loadOffset) { CheckExternalEvents(cs1, 0x0033); // F000:0033 mov CX,0xC333 - CX = (ushort)0xC333; + CX = 0xC333; // F000:0036 ret near - return NearRet((ushort)0x0000); + return NearRet(0); } } diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_multi_entry_irreducible_shared.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_multi_entry_irreducible_shared.spec.cs.txt index 21d19a3359..3b370bab6e 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_multi_entry_irreducible_shared.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_multi_entry_irreducible_shared.spec.cs.txt @@ -47,19 +47,19 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0x1000 - AX = (ushort)0x1000; + AX = 0x1000; // F000:0003 mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:0005 mov SP,0x0100 - SP = (ushort)0x0100; + SP = 0x0100; // F000:0008 mov CX,0 - CX = (ushort)0x0000; + CX = 0; // F000:000B call near 0x0015 NearCall(cs1, 0x000E, unknown_F000_0015_F0015); CheckExternalEvents(cs1, 0x000E); // F000:000E mov CX,1 - CX = (ushort)0x0001; + CX = 1; // F000:0011 call near 0x0017 NearCall(cs1, 0x0014, unknown_F000_0017_F0017); CheckExternalEvents(cs1, 0x0014); @@ -84,25 +84,25 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0019_F0019_10: CheckExternalEvents(cs1, 0x0019); // F000:0019 cmp CX,0 - Alu16.Sub(CX, unchecked((ushort)unchecked((short)(sbyte)0))); + Alu16.Sub(CX, 0); // F000:001C je short 0x001F if (ZeroFlag) { goto label_F000_001F_F001F_13; } CheckExternalEvents(cs1, 0x001E); // F000:001E ret near - return NearRet((ushort)0x0000); + return NearRet(0); label_F000_001F_F001F_13: CheckExternalEvents(cs1, 0x001F); // F000:001F cmp CX,1 - Alu16.Sub(CX, unchecked((ushort)unchecked((short)(sbyte)1))); + Alu16.Sub(CX, 1); // F000:0022 je short 0x0019 if (ZeroFlag) { goto label_F000_0019_F0019_10; } CheckExternalEvents(cs1, 0x0024); // F000:0024 ret near - return NearRet((ushort)0x0000); + return NearRet(0); } } diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_mutual_recursion_unwind.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_mutual_recursion_unwind.spec.cs.txt index 434b1f653e..dba0139ba2 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_mutual_recursion_unwind.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_mutual_recursion_unwind.spec.cs.txt @@ -46,13 +46,13 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_001A_F001A_11: CheckExternalEvents(cs1, 0x001A); // F000:001A mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:001D mov DS,AX DS = AX; // F000:001F mov byte ptr DS:[0x0010],0xAA - UInt8[DS, (ushort)0x0010] = (byte)0xAA; + UInt8[DS, 0x0010] = 0xAA; // F000:0024 ret near - return NearRet((ushort)0x0000); + return NearRet(0); } public virtual Action unknown_F000_0025_F0025(int loadOffset) { @@ -74,13 +74,13 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_002A_F002A_21: CheckExternalEvents(cs1, 0x002A); // F000:002A mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:002D mov DS,AX DS = AX; // F000:002F mov byte ptr DS:[0x0011],0xBB - UInt8[DS, (ushort)0x0011] = (byte)0xBB; + UInt8[DS, 0x0011] = 0xBB; // F000:0034 ret near - return NearRet((ushort)0x0000); + return NearRet(0); } public virtual Action unknown_F000_FFF0_FFFF0(int loadOffset) { @@ -89,19 +89,19 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0x1000 - AX = (ushort)0x1000; + AX = 0x1000; // F000:0003 mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:0005 mov SP,0x0100 - SP = (ushort)0x0100; + SP = 0x0100; // F000:0008 mov CX,3 - CX = (ushort)0x0003; + CX = 3; // F000:000B call near 0x0015 NearCall(cs1, 0x000E, unknown_F000_0015_F0015); CheckExternalEvents(cs1, 0x000E); // F000:000E mov CX,1 - CX = (ushort)0x0001; + CX = 1; // F000:0011 call near 0x0025 NearCall(cs1, 0x0014, unknown_F000_0025_F0025); CheckExternalEvents(cs1, 0x0014); diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_shared_tail.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_shared_tail.spec.cs.txt index 8576f9ef8e..e57e76be57 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_shared_tail.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/partition_shared_tail.spec.cs.txt @@ -31,7 +31,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_000F_F000F(int loadOffset) { CheckExternalEvents(cs1, 0x000F); // F000:000F mov AX,0x1111 - AX = (ushort)0x1111; + AX = 0x1111; // F000:0012 jmp short 0x0019 return unknown_F000_0019_F0019(0x0000); } @@ -39,7 +39,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_0014_F0014(int loadOffset) { CheckExternalEvents(cs1, 0x0014); // F000:0014 mov BX,0x2222 - BX = (ushort)0x2222; + BX = 0x2222; // F000:0017 jmp short 0x0019 return unknown_F000_0019_F0019(0x0000); } @@ -50,12 +50,12 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0x1000 - AX = (ushort)0x1000; + AX = 0x1000; // F000:0003 mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:0005 mov SP,0x0100 - SP = (ushort)0x0100; + SP = 0x0100; // F000:0008 call near 0x000F NearCall(cs1, 0x000B, unknown_F000_000F_F000F); CheckExternalEvents(cs1, 0x000B); @@ -73,9 +73,9 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_0019_F0019(int loadOffset) { CheckExternalEvents(cs1, 0x0019); // F000:0019 mov CX,0x3333 - CX = (ushort)0x3333; + CX = 0x3333; // F000:001C ret near - return NearRet((ushort)0x0000); + return NearRet(0); } } diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/pushcs_callnear_retfar.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/pushcs_callnear_retfar.spec.cs.txt index 4ee2dee49f..ec6606ebd5 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/pushcs_callnear_retfar.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/pushcs_callnear_retfar.spec.cs.txt @@ -37,9 +37,9 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { NearCall(cs2, 0x0004, unknown_F100_0008_F1008); CheckExternalEvents(cs2, 0x0004); // F100:0004 mov AX,0x0042 - AX = (ushort)0x0042; + AX = 0x0042; // F100:0007 ret far - return FarRet((ushort)0x0000); + return FarRet(0); } public virtual Action unknown_F100_0008_F1008(int loadOffset) { @@ -47,7 +47,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F100:0008 xor BX,BX BX = Alu16.Xor(BX, BX); // F100:000A ret far - return FarRet((ushort)0x0000); + return FarRet(0); } public virtual Action unknown_F000_FFF0_FFFF0(int loadOffset) { @@ -56,17 +56,17 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0x1000 - AX = (ushort)0x1000; + AX = 0x1000; // F000:0003 mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:0005 mov SP,0x0100 - SP = (ushort)0x0100; + SP = 0x0100; // F000:0008 call far F100:0000 FarCall(cs1, 0x000D, cs2, unknown_F100_0000_F1000); CheckExternalEvents(cs1, 0x000D); // F000:000D mov word ptr DS:[0],AX - UInt16[DS, (ushort)0x0000] = AX; + UInt16[DS, 0] = AX; // F000:0010 hlt return Hlt(); label_F000_FFF0_FFFF0_0: diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/rep.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/rep.spec.cs.txt index 34a14f181b..9a0f3945a2 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/rep.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/rep.spec.cs.txt @@ -31,115 +31,115 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_4: CheckExternalEvents(cs1, 0x0000); // F000:0000 rep movs byte ptr ES:[DI],byte ptr DS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt8[ES, DI] = UInt8[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0002 rep movs byte ptr ES:[DI],byte ptr DS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt8[ES, DI] = UInt8[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0004 rep movs byte ptr ES:[DI],byte ptr DS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt8[ES, DI] = UInt8[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0006 repe cmps byte ptr DS:[SI],byte ptr ES:[DI] bool shouldContinue_F000_0006_F0006 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_0006_F0006) { + while (CX != 0 && shouldContinue_F000_0006_F0006) { Alu8.Sub(UInt8[DS, SI], UInt8[ES, DI]); SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_0006_F0006 = ZeroFlag == true; } // F000:0008 repe cmps byte ptr DS:[SI],byte ptr ES:[DI] bool shouldContinue_F000_0008_F0008 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_0008_F0008) { + while (CX != 0 && shouldContinue_F000_0008_F0008) { Alu8.Sub(UInt8[DS, SI], UInt8[ES, DI]); SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_0008_F0008 = ZeroFlag == true; } // F000:000A repne cmps byte ptr DS:[SI],byte ptr ES:[DI] bool shouldContinue_F000_000A_F000A = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_000A_F000A) { + while (CX != 0 && shouldContinue_F000_000A_F000A) { Alu8.Sub(UInt8[DS, SI], UInt8[ES, DI]); SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_000A_F000A = ZeroFlag == false; } // F000:000C repe scas AL,byte ptr ES:[DI] bool shouldContinue_F000_000C_F000C = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_000C_F000C) { + while (CX != 0 && shouldContinue_F000_000C_F000C) { Alu8.Sub(AL, UInt8[ES, DI]); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_000C_F000C = ZeroFlag == true; } // F000:000E repe scas AL,byte ptr ES:[DI] bool shouldContinue_F000_000E_F000E = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_000E_F000E) { + while (CX != 0 && shouldContinue_F000_000E_F000E) { Alu8.Sub(AL, UInt8[ES, DI]); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_000E_F000E = ZeroFlag == true; } // F000:0010 repne scas AL,byte ptr ES:[DI] bool shouldContinue_F000_0010_F0010 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_0010_F0010) { + while (CX != 0 && shouldContinue_F000_0010_F0010) { Alu8.Sub(AL, UInt8[ES, DI]); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_0010_F0010 = ZeroFlag == false; } // F000:0012 rep lods AL,byte ptr DS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { AL = UInt8[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0014 rep lods AL,byte ptr DS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { AL = UInt8[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0016 rep lods AL,byte ptr DS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { AL = UInt8[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0018 rep stos byte ptr ES:[DI],AL - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt8[ES, DI] = AL; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:001A rep stos byte ptr ES:[DI],AL - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt8[ES, DI] = AL; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:001C rep stos byte ptr ES:[DI],AL - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt8[ES, DI] = AL; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:001E mov BX,0x0040 - BX = (ushort)0x0040; + BX = 0x0040; // F000:0021 push BX Stack.Push16(BX); CheckExternalEvents(cs1, 0x0022); @@ -147,81 +147,81 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { FlagRegister16 = Stack.Pop16(); CheckExternalEvents(cs1, 0x0023); // F000:0023 rep movs byte ptr ES:[DI],byte ptr DS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt8[ES, DI] = UInt8[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0025 rep movs byte ptr ES:[DI],byte ptr DS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt8[ES, DI] = UInt8[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0027 repe cmps byte ptr DS:[SI],byte ptr ES:[DI] bool shouldContinue_F000_0027_F0027 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_0027_F0027) { + while (CX != 0 && shouldContinue_F000_0027_F0027) { Alu8.Sub(UInt8[DS, SI], UInt8[ES, DI]); SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_0027_F0027 = ZeroFlag == true; } // F000:0029 repne cmps byte ptr DS:[SI],byte ptr ES:[DI] bool shouldContinue_F000_0029_F0029 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_0029_F0029) { + while (CX != 0 && shouldContinue_F000_0029_F0029) { Alu8.Sub(UInt8[DS, SI], UInt8[ES, DI]); SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_0029_F0029 = ZeroFlag == false; } // F000:002B repe scas AL,byte ptr ES:[DI] bool shouldContinue_F000_002B_F002B = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_002B_F002B) { + while (CX != 0 && shouldContinue_F000_002B_F002B) { Alu8.Sub(AL, UInt8[ES, DI]); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_002B_F002B = ZeroFlag == true; } // F000:002D repne scas AL,byte ptr ES:[DI] bool shouldContinue_F000_002D_F002D = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_002D_F002D) { + while (CX != 0 && shouldContinue_F000_002D_F002D) { Alu8.Sub(AL, UInt8[ES, DI]); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_002D_F002D = ZeroFlag == false; } // F000:002F rep lods AL,byte ptr DS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { AL = UInt8[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0031 rep lods AL,byte ptr DS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { AL = UInt8[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0033 rep stos byte ptr ES:[DI],AL - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt8[ES, DI] = AL; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0035 rep stos byte ptr ES:[DI],AL - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt8[ES, DI] = AL; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0037 mov AX,DI AX = DI; // F000:0039 mov AH,0x10 - AH = (byte)0x10; + AH = 0x10; // F000:003B jmp near AX switch ((ushort)(AX)) { case 0x1000: @@ -252,7 +252,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_1000_F1000_70: CheckExternalEvents(cs1, 0x1000); // F000:1000 mov CX,0 - CX = (ushort)0x0000; + CX = 0; // F000:1003 push CX Stack.Push16(CX); // F000:1005 jmp near SP @@ -265,7 +265,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_1007_F1007_77: CheckExternalEvents(cs1, 0x1007); // F000:1007 mov CX,0x110A - CX = (ushort)0x110A; + CX = 0x110A; // F000:100A push CX Stack.Push16(CX); // F000:100C jmp near SP @@ -286,9 +286,9 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x110A); // F000:110A mov CX,5 - CX = (ushort)0x0005; + CX = 5; // F000:110D mov DX,0 - DX = (ushort)0x0000; + DX = 0; // F000:1110 push DX Stack.Push16(DX); CheckExternalEvents(cs1, 0x1111); @@ -300,7 +300,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:1114 mov AX,CX AX = CX; // F000:1116 mov AH,0x20 - AH = (byte)0x20; + AH = 0x20; // F000:1118 jmp near AX switch ((ushort)(AX)) { case 0x200A: @@ -325,36 +325,36 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { FlagRegister16 = Stack.Pop16(); CheckExternalEvents(cs1, 0x200C); // F000:200C mov CX,2 - CX = (ushort)0x0002; + CX = 2; // F000:200F mov SI,0x3000 - SI = (ushort)0x3000; + SI = 0x3000; // F000:2012 mov AX,0xF000 - AX = (ushort)0xF000; + AX = 0xF000; // F000:2015 mov DS,AX DS = AX; // F000:2017 mov AX,0x1000 - AX = (ushort)0x1000; + AX = 0x1000; // F000:201A mov ES,AX ES = AX; // F000:201C mov DI,0 - DI = (ushort)0x0000; + DI = 0; // F000:201F rep movs byte ptr ES:[DI],byte ptr DS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt8[ES, DI] = UInt8[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:2021 mov DS,AX DS = AX; // F000:2023 mov AX,word ptr DS:[0] - AX = UInt16[DS, (ushort)0x0000]; + AX = UInt16[DS, 0]; // F000:2026 mov BP,DI BP = DI; // F000:2028 mov word ptr SS:[BP+SI],AX UInt16[SS, (ushort)(BP + SI)] = AX; // F000:202A jcxz short 0x202D - if (CX == (ushort)0x0000) { + if (CX == 0) { goto label_F000_202D_F202D_126; } CheckExternalEvents(cs1, 0x202C); @@ -364,22 +364,22 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_202D_F202D_126: CheckExternalEvents(cs1, 0x202D); // F000:202D jmp near word ptr DS:[0x3004] - switch ((ushort)(UInt16[DS, (ushort)0x3004])) { + switch ((ushort)(UInt16[DS, 0x3004])) { case 0x0809: goto label_F000_0809_F0809_143; default: - throw FailAsUntested($"Unknown near jump target 0x{((ushort)(UInt16[DS, (ushort)0x3004])):X4} at F000:202D"); + throw FailAsUntested($"Unknown near jump target 0x{((ushort)(UInt16[DS, 0x3004])):X4} at F000:202D"); } label_F000_300D_F300D_144: CheckExternalEvents(cs1, 0x300D); // F000:300D mov AX,0xF000 - AX = (ushort)0xF000; + AX = 0xF000; // F000:3010 mov DS,AX DS = AX; // F000:3012 mov CX,1 - CX = (ushort)0x0001; + CX = 1; // F000:3015 mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:3018 push AX Stack.Push16(AX); CheckExternalEvents(cs1, 0x3019); @@ -387,24 +387,24 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { FlagRegister16 = Stack.Pop16(); CheckExternalEvents(cs1, 0x301A); // F000:301A rep movs word ptr ES:[DI],word ptr DS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt16[ES, DI] = UInt16[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction16))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:301C mov AX,0x1000 - AX = (ushort)0x1000; + AX = 0x1000; // F000:301F mov DS,AX DS = AX; // F000:3021 mov AX,word ptr DS:[2] - AX = UInt16[DS, (ushort)0x0002]; + AX = UInt16[DS, 2]; // F000:3024 mov BP,DI BP = DI; // F000:3026 mov word ptr SS:[BP+SI],AX UInt16[SS, (ushort)(BP + SI)] = AX; // F000:3028 jcxz short 0x302B - if (CX == (ushort)0x0000) { + if (CX == 0) { goto label_F000_302B_F302B_167; } CheckExternalEvents(cs1, 0x302A); @@ -414,25 +414,25 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_302B_F302B_167: CheckExternalEvents(cs1, 0x302B); // F000:302B jmp near word ptr DS:[0x3008] - switch ((ushort)(UInt16[DS, (ushort)0x3008])) { + switch ((ushort)(UInt16[DS, 0x3008])) { case 0x0607: goto label_F000_0607_F0607_178; default: - throw FailAsUntested($"Unknown near jump target 0x{((ushort)(UInt16[DS, (ushort)0x3008])):X4} at F000:302B"); + throw FailAsUntested($"Unknown near jump target 0x{((ushort)(UInt16[DS, 0x3008])):X4} at F000:302B"); } label_F000_302F_F302F_179: CheckExternalEvents(cs1, 0x302F); // F000:302F mov AX,0xF000 - AX = (ushort)0xF000; + AX = 0xF000; // F000:3032 mov DS,AX DS = AX; // F000:3034 mov CX,3 - CX = (ushort)0x0003; + CX = 3; // F000:3037 rep lods AL,byte ptr DS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { AL = UInt8[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:3039 jmp near AX switch ((ushort)(AX)) { @@ -444,7 +444,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_303C_F303C_192: CheckExternalEvents(cs1, 0x303C); // F000:303C mov BX,0x0040 - BX = (ushort)0x0040; + BX = 0x0040; // F000:303F push BX Stack.Push16(BX); CheckExternalEvents(cs1, 0x3040); @@ -452,16 +452,16 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { FlagRegister16 = Stack.Pop16(); CheckExternalEvents(cs1, 0x3041); // F000:3041 mov AX,0xF000 - AX = (ushort)0xF000; + AX = 0xF000; // F000:3044 mov DS,AX DS = AX; // F000:3046 mov CX,1 - CX = (ushort)0x0001; + CX = 1; // F000:3049 rep lods AX,word ptr DS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { AX = UInt16[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:304B jmp near AX switch ((ushort)(AX)) { @@ -473,29 +473,29 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_304D_F304D_212: CheckExternalEvents(cs1, 0x304D); // F000:304D mov CX,2 - CX = (ushort)0x0002; + CX = 2; // F000:3050 mov AX,0x4000 - AX = (ushort)0x4000; + AX = 0x4000; // F000:3053 rep stos word ptr ES:[DI],AX - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt16[ES, DI] = AX; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:3055 mov AX,0x1000 - AX = (ushort)0x1000; + AX = 0x1000; // F000:3058 mov DS,AX DS = AX; // F000:305A jmp near word ptr DS:[6] - switch ((ushort)(UInt16[DS, (ushort)0x0006])) { + switch ((ushort)(UInt16[DS, 6])) { case 0x4000: break; default: - throw FailAsUntested($"Unknown near jump target 0x{((ushort)(UInt16[DS, (ushort)0x0006])):X4} at F000:305A"); + throw FailAsUntested($"Unknown near jump target 0x{((ushort)(UInt16[DS, 6])):X4} at F000:305A"); } CheckExternalEvents(cs1, 0x4000); // F000:4000 mov BX,0 - BX = (ushort)0x0000; + BX = 0; // F000:4003 push BX Stack.Push16(BX); CheckExternalEvents(cs1, 0x4004); @@ -503,15 +503,15 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { FlagRegister16 = Stack.Pop16(); CheckExternalEvents(cs1, 0x4005); // F000:4005 mov CX,4 - CX = (ushort)0x0004; + CX = 4; // F000:4008 rep stos word ptr ES:[DI],AX - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt16[ES, DI] = AX; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:400A jcxz short 0x400D - if (CX == (ushort)0x0000) { + if (CX == 0) { goto label_F000_400D_F400D_237; } CheckExternalEvents(cs1, 0x400C); @@ -521,7 +521,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_400D_F400D_237: CheckExternalEvents(cs1, 0x400D); // F000:400D mov BX,0x0040 - BX = (ushort)0x0040; + BX = 0x0040; // F000:4010 push BX Stack.Push16(BX); CheckExternalEvents(cs1, 0x4011); @@ -529,22 +529,22 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { FlagRegister16 = Stack.Pop16(); CheckExternalEvents(cs1, 0x4012); // F000:4012 mov CX,0x1234 - CX = (ushort)0x1234; + CX = 0x1234; // F000:4015 mov SI,0x3000 - SI = (ushort)0x3000; + SI = 0x3000; // F000:4018 mov DI,0 - DI = (ushort)0x0000; + DI = 0; // F000:401B mov AX,0xF000 - AX = (ushort)0xF000; + AX = 0xF000; // F000:401E mov DS,AX DS = AX; // F000:4020 repe cmps byte ptr DS:[SI],byte ptr ES:[DI] bool shouldContinue_F000_4020_F4020 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_4020_F4020) { + while (CX != 0 && shouldContinue_F000_4020_F4020) { Alu8.Sub(UInt8[DS, SI], UInt8[ES, DI]); SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_4020_F4020 = ZeroFlag == true; } // F000:4022 jmp near CX @@ -557,7 +557,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_4024_F4024_264: CheckExternalEvents(cs1, 0x4024); // F000:4024 mov BX,0x0040 - BX = (ushort)0x0040; + BX = 0x0040; // F000:4027 push BX Stack.Push16(BX); CheckExternalEvents(cs1, 0x4028); @@ -565,13 +565,13 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { FlagRegister16 = Stack.Pop16(); CheckExternalEvents(cs1, 0x4029); // F000:4029 mov AX,0x0040 - AX = (ushort)0x0040; + AX = 0x0040; // F000:402C repe scas AX,word ptr ES:[DI] bool shouldContinue_F000_402C_F402C = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_402C_F402C) { + while (CX != 0 && shouldContinue_F000_402C_F402C) { Alu16.Sub(AX, UInt16[ES, DI]); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_402C_F402C = ZeroFlag == true; } // F000:402E jmp near CX @@ -584,28 +584,28 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_4030_F4030_280: CheckExternalEvents(cs1, 0x4030); // F000:4030 mov AX,0x0607 - AX = (ushort)0x0607; + AX = 0x0607; // F000:4033 mov CX,0x5004 - CX = (ushort)0x5004; + CX = 0x5004; // F000:4036 repe cmps word ptr DS:[SI],word ptr ES:[DI] bool shouldContinue_F000_4036_F4036 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_4036_F4036) { + while (CX != 0 && shouldContinue_F000_4036_F4036) { Alu16.Sub(UInt16[DS, SI], UInt16[ES, DI]); SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction16))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_4036_F4036 = ZeroFlag == true; } // F000:4038 repe scas AX,word ptr ES:[DI] bool shouldContinue_F000_4038_F4038 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_4038_F4038) { + while (CX != 0 && shouldContinue_F000_4038_F4038) { Alu16.Sub(AX, UInt16[ES, DI]); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_4038_F4038 = ZeroFlag == true; } // F000:403A mov BX,0x0040 - BX = (ushort)0x0040; + BX = 0x0040; // F000:403D push BX Stack.Push16(BX); CheckExternalEvents(cs1, 0x403E); @@ -613,24 +613,24 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { FlagRegister16 = Stack.Pop16(); CheckExternalEvents(cs1, 0x403F); // F000:403F mov SI,0x3000 - SI = (ushort)0x3000; + SI = 0x3000; // F000:4042 mov DI,0 - DI = (ushort)0x0000; + DI = 0; // F000:4045 repne cmps word ptr DS:[SI],word ptr ES:[DI] bool shouldContinue_F000_4045_F4045 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_4045_F4045) { + while (CX != 0 && shouldContinue_F000_4045_F4045) { Alu16.Sub(UInt16[DS, SI], UInt16[ES, DI]); SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction16))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_4045_F4045 = ZeroFlag == false; } // F000:4047 repne scas AX,word ptr ES:[DI] bool shouldContinue_F000_4047_F4047 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_4047_F4047) { + while (CX != 0 && shouldContinue_F000_4047_F4047) { Alu16.Sub(AX, UInt16[ES, DI]); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_4047_F4047 = ZeroFlag == false; } // F000:4049 jmp near CX @@ -642,16 +642,16 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x5000); // F000:5000 mov CX,2 - CX = (ushort)0x0002; + CX = 2; // F000:5003 rep movs byte ptr ES:[DI],byte ptr DS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt8[ES, DI] = UInt8[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:5005 jcxz short 0x5008 - if (CX == (ushort)0x0000) { + if (CX == 0) { goto label_F000_5008_F5008_311; } CheckExternalEvents(cs1, 0x5007); @@ -661,15 +661,15 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_5008_F5008_311: CheckExternalEvents(cs1, 0x5008); // F000:5008 mov CX,2 - CX = (ushort)0x0002; + CX = 2; // F000:500B rep lods AL,byte ptr DS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { AL = UInt8[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:500D jcxz short 0x5010 - if (CX == (ushort)0x0000) { + if (CX == 0) { goto label_F000_5010_F5010_317; } CheckExternalEvents(cs1, 0x500F); @@ -679,15 +679,15 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_5010_F5010_317: CheckExternalEvents(cs1, 0x5010); // F000:5010 mov CX,2 - CX = (ushort)0x0002; + CX = 2; // F000:5013 rep stos byte ptr ES:[DI],AL - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt8[ES, DI] = AL; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:5015 jcxz short 0x5018 - if (CX == (ushort)0x0000) { + if (CX == 0) { goto label_F000_5018_F5018_323; } CheckExternalEvents(cs1, 0x5017); @@ -697,7 +697,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_5018_F5018_323: CheckExternalEvents(cs1, 0x5018); // F000:5018 mov BX,0 - BX = (ushort)0x0000; + BX = 0; // F000:501B push BX Stack.Push16(BX); CheckExternalEvents(cs1, 0x501C); @@ -705,26 +705,26 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { FlagRegister16 = Stack.Pop16(); CheckExternalEvents(cs1, 0x501D); // F000:501D mov CX,0x6023 - CX = (ushort)0x6023; + CX = 0x6023; // F000:5020 std DirectionFlag = true; // F000:5021 mov DI,6 - DI = (ushort)0x0006; + DI = 6; // F000:5024 mov SI,0x3006 - SI = (ushort)0x3006; + SI = 0x3006; // F000:5027 repne cmps word ptr DS:[SI],word ptr ES:[DI] bool shouldContinue_F000_5027_F5027 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_5027_F5027) { + while (CX != 0 && shouldContinue_F000_5027_F5027) { Alu16.Sub(UInt16[DS, SI], UInt16[ES, DI]); SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction16))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_5027_F5027 = ZeroFlag == false; } // F000:5029 mov AX,0x1000 - AX = (ushort)0x1000; + AX = 0x1000; // F000:502C mov BX,0 - BX = (ushort)0x0000; + BX = 0; // F000:502F push BX Stack.Push16(BX); CheckExternalEvents(cs1, 0x5030); @@ -735,10 +735,10 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { DirectionFlag = false; // F000:5032 repne scas AX,word ptr ES:[DI] bool shouldContinue_F000_5032_F5032 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_5032_F5032) { + while (CX != 0 && shouldContinue_F000_5032_F5032) { Alu16.Sub(AX, UInt16[ES, DI]); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_5032_F5032 = ZeroFlag == false; } // F000:5034 jmp near CX @@ -750,11 +750,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x601B); // F000:601B mov DX,0 - DX = (ushort)0x0000; + DX = 0; // F000:601E mov DS,DX DS = DX; // F000:6020 mov word ptr DS:[4],0x1234 - UInt16[DS, (ushort)0x0004] = (ushort)0x1234; + UInt16[DS, 4] = 0x1234; // F000:6026 hlt return Hlt(); label_F000_F003_FF003_191: @@ -764,7 +764,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_FFF0_FFFF0_0: CheckExternalEvents(cs1, 0xFFF0); // F000:FFF0 mov SP,0x1000 - SP = (ushort)0x1000; + SP = 0x1000; // F000:FFF3 mov SS,SP SS = SP; State.InterruptShadowing = true; diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/returnedterminator.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/returnedterminator.spec.cs.txt index 26c57e70a2..3b81afcb4a 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/returnedterminator.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/returnedterminator.spec.cs.txt @@ -31,20 +31,20 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:0003 mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:0005 mov SP,8 - SP = (ushort)0x0008; + SP = 8; // F000:0008 jmp short 0x000A CheckExternalEvents(cs1, 0x000A); // F000:000A mov AX,0x1111 - AX = (ushort)0x1111; + AX = 0x1111; // F000:000D push AX Stack.Push16(AX); // F000:000E mov AX,0x2222 - AX = (ushort)0x2222; + AX = 0x2222; // F000:0011 push AX Stack.Push16(AX); // F000:0012 jmp short 0x0019 diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/rotate.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/rotate.spec.cs.txt index c5251e7b02..1cab85db46 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/rotate.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/rotate.spec.cs.txt @@ -31,35 +31,35 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0x3B5E - AX = (ushort)0x3B5E; + AX = 0x3B5E; // F000:0003 mov BX,0xC8A7 - BX = (ushort)0xC8A7; + BX = 0xC8A7; // F000:0006 mov word ptr DS:[0],0x2072 - UInt16[DS, (ushort)0x0000] = (ushort)0x2072; + UInt16[DS, 0] = 0x2072; // F000:000C mov word ptr DS:[2],0x3E79 - UInt16[DS, (ushort)0x0002] = (ushort)0x3E79; + UInt16[DS, 2] = 0x3E79; // F000:0012 mov SP,0x00A0 - SP = (ushort)0x00A0; + SP = 0x00A0; // F000:0015 rcl AX,1 AX = Alu16.Rcl(AX, unchecked((byte)1)); // F000:0017 pushf Stack.Push16(FlagRegister16); // F000:0018 mov word ptr DS:[0x0020],AX - UInt16[DS, (ushort)0x0020] = AX; + UInt16[DS, 0x0020] = AX; // F000:001B rcl word ptr DS:[0],1 - UInt16[DS, (ushort)0x0000] = Alu16.Rcl(UInt16[DS, (ushort)0x0000], unchecked((byte)1)); + UInt16[DS, 0] = Alu16.Rcl(UInt16[DS, 0], unchecked((byte)1)); // F000:001F pushf Stack.Push16(FlagRegister16); // F000:0020 mov CX,0x0100 - CX = (ushort)0x0100; + CX = 0x0100; // F000:0023 rcl BX,CL BX = Alu16.Rcl(BX, CL); // F000:0025 pushf Stack.Push16(FlagRegister16); // F000:0026 mov word ptr DS:[0x0022],BX - UInt16[DS, (ushort)0x0022] = BX; + UInt16[DS, 0x0022] = BX; // F000:002A mov CX,0xFFFF - CX = (ushort)0xFFFF; + CX = 0xFFFF; // F000:002D mov DX,BX DX = BX; // F000:002F rcl DX,CL @@ -67,79 +67,79 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:0031 pushf Stack.Push16(FlagRegister16); // F000:0032 mov word ptr DS:[0x0024],DX - UInt16[DS, (ushort)0x0024] = DX; + UInt16[DS, 0x0024] = DX; // F000:0036 mov CL,8 - CL = (byte)0x08; + CL = 8; // F000:0038 rcl BX,CL BX = Alu16.Rcl(BX, CL); // F000:003A pushf Stack.Push16(FlagRegister16); // F000:003B mov word ptr DS:[0x0026],BX - UInt16[DS, (ushort)0x0026] = BX; + UInt16[DS, 0x0026] = BX; // F000:003F mov CL,4 - CL = (byte)0x04; + CL = 4; // F000:0041 rcl word ptr DS:[2],CL - UInt16[DS, (ushort)0x0002] = Alu16.Rcl(UInt16[DS, (ushort)0x0002], CL); + UInt16[DS, 2] = Alu16.Rcl(UInt16[DS, 2], CL); // F000:0045 pushf Stack.Push16(FlagRegister16); // F000:0046 mov DX,0x5904 - DX = (ushort)0x5904; + DX = 0x5904; // F000:0049 mov AX,0xBE7C - AX = (ushort)0xBE7C; + AX = 0xBE7C; // F000:004C mov word ptr DS:[4],0xD62F - UInt16[DS, (ushort)0x0004] = (ushort)0xD62F; + UInt16[DS, 4] = 0xD62F; // F000:0052 mov word ptr DS:[6],0x6FD8 - UInt16[DS, (ushort)0x0006] = (ushort)0x6FD8; + UInt16[DS, 6] = 0x6FD8; // F000:0058 rcl AH,1 AH = Alu8.Rcl(AH, unchecked((byte)1)); // F000:005A pushf Stack.Push16(FlagRegister16); // F000:005B mov word ptr DS:[0x0028],AX - UInt16[DS, (ushort)0x0028] = AX; + UInt16[DS, 0x0028] = AX; // F000:005E rcl byte ptr DS:[5],1 - UInt8[DS, (ushort)0x0005] = Alu8.Rcl(UInt8[DS, (ushort)0x0005], unchecked((byte)1)); + UInt8[DS, 5] = Alu8.Rcl(UInt8[DS, 5], unchecked((byte)1)); // F000:0062 pushf Stack.Push16(FlagRegister16); // F000:0063 mov CL,7 - CL = (byte)0x07; + CL = 7; // F000:0065 rcl DL,CL DL = Alu8.Rcl(DL, CL); // F000:0067 pushf Stack.Push16(FlagRegister16); // F000:0068 mov word ptr DS:[0x002A],DX - UInt16[DS, (ushort)0x002A] = DX; + UInt16[DS, 0x002A] = DX; // F000:006C rcl byte ptr DS:[6],CL - UInt8[DS, (ushort)0x0006] = Alu8.Rcl(UInt8[DS, (ushort)0x0006], CL); + UInt8[DS, 6] = Alu8.Rcl(UInt8[DS, 6], CL); // F000:0070 pushf Stack.Push16(FlagRegister16); // F000:0071 mov AX,0x15D6 - AX = (ushort)0x15D6; + AX = 0x15D6; // F000:0074 mov BX,0x8307 - BX = (ushort)0x8307; + BX = 0x8307; // F000:0077 mov word ptr DS:[8],0x9AB7 - UInt16[DS, (ushort)0x0008] = (ushort)0x9AB7; + UInt16[DS, 8] = 0x9AB7; // F000:007D mov word ptr DS:[0x000A],0x28B6 - UInt16[DS, (ushort)0x000A] = (ushort)0x28B6; + UInt16[DS, 0x000A] = 0x28B6; // F000:0083 rcr AX,1 AX = Alu16.Rcr(AX, 1); // F000:0085 pushf Stack.Push16(FlagRegister16); // F000:0086 mov word ptr DS:[0x002C],AX - UInt16[DS, (ushort)0x002C] = AX; + UInt16[DS, 0x002C] = AX; // F000:0089 rcr word ptr DS:[8],1 - UInt16[DS, (ushort)0x0008] = Alu16.Rcr(UInt16[DS, (ushort)0x0008], 1); + UInt16[DS, 8] = Alu16.Rcr(UInt16[DS, 8], 1); // F000:008D pushf Stack.Push16(FlagRegister16); // F000:008E mov CX,0x0100 - CX = (ushort)0x0100; + CX = 0x0100; // F000:0091 rcr BX,CL BX = Alu16.Rcr(BX, unchecked((int)CL)); // F000:0093 pushf Stack.Push16(FlagRegister16); // F000:0094 mov word ptr DS:[0x002E],BX - UInt16[DS, (ushort)0x002E] = BX; + UInt16[DS, 0x002E] = BX; // F000:0098 mov CX,0xFFFF - CX = (ushort)0xFFFF; + CX = 0xFFFF; // F000:009B mov DX,BX DX = BX; // F000:009D rcr DX,CL @@ -147,79 +147,79 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:009F pushf Stack.Push16(FlagRegister16); // F000:00A0 mov word ptr DS:[0x0030],DX - UInt16[DS, (ushort)0x0030] = DX; + UInt16[DS, 0x0030] = DX; // F000:00A4 mov CL,5 - CL = (byte)0x05; + CL = 5; // F000:00A6 rcr BX,CL BX = Alu16.Rcr(BX, unchecked((int)CL)); // F000:00A8 pushf Stack.Push16(FlagRegister16); // F000:00A9 mov word ptr DS:[0x0032],BX - UInt16[DS, (ushort)0x0032] = BX; + UInt16[DS, 0x0032] = BX; // F000:00AD mov CL,4 - CL = (byte)0x04; + CL = 4; // F000:00AF rcr word ptr DS:[0x000A],CL - UInt16[DS, (ushort)0x000A] = Alu16.Rcr(UInt16[DS, (ushort)0x000A], unchecked((int)CL)); + UInt16[DS, 0x000A] = Alu16.Rcr(UInt16[DS, 0x000A], unchecked((int)CL)); // F000:00B3 pushf Stack.Push16(FlagRegister16); // F000:00B4 mov DX,0x7EAA - DX = (ushort)0x7EAA; + DX = 0x7EAA; // F000:00B7 mov AX,0x3A8D - AX = (ushort)0x3A8D; + AX = 0x3A8D; // F000:00BA mov word ptr DS:[0x000C],0xA414 - UInt16[DS, (ushort)0x000C] = (ushort)0xA414; + UInt16[DS, 0x000C] = 0xA414; // F000:00C0 mov word ptr DS:[0x000E],0x2838 - UInt16[DS, (ushort)0x000E] = (ushort)0x2838; + UInt16[DS, 0x000E] = 0x2838; // F000:00C6 rcr AH,1 AH = Alu8.Rcr(AH, 1); // F000:00C8 pushf Stack.Push16(FlagRegister16); // F000:00C9 mov word ptr DS:[0x0034],AX - UInt16[DS, (ushort)0x0034] = AX; + UInt16[DS, 0x0034] = AX; // F000:00CC rcr byte ptr DS:[0x000D],1 - UInt8[DS, (ushort)0x000D] = Alu8.Rcr(UInt8[DS, (ushort)0x000D], 1); + UInt8[DS, 0x000D] = Alu8.Rcr(UInt8[DS, 0x000D], 1); // F000:00D0 pushf Stack.Push16(FlagRegister16); // F000:00D1 mov CL,7 - CL = (byte)0x07; + CL = 7; // F000:00D3 rcr DL,CL DL = Alu8.Rcr(DL, unchecked((int)CL)); // F000:00D5 pushf Stack.Push16(FlagRegister16); // F000:00D6 mov word ptr DS:[0x0036],DX - UInt16[DS, (ushort)0x0036] = DX; + UInt16[DS, 0x0036] = DX; // F000:00DA rcr byte ptr DS:[0x000E],CL - UInt8[DS, (ushort)0x000E] = Alu8.Rcr(UInt8[DS, (ushort)0x000E], unchecked((int)CL)); + UInt8[DS, 0x000E] = Alu8.Rcr(UInt8[DS, 0x000E], unchecked((int)CL)); // F000:00DE pushf Stack.Push16(FlagRegister16); // F000:00DF mov AX,0x020D - AX = (ushort)0x020D; + AX = 0x020D; // F000:00E2 mov BX,0x8D5A - BX = (ushort)0x8D5A; + BX = 0x8D5A; // F000:00E5 mov word ptr DS:[0x0010],0x28DD - UInt16[DS, (ushort)0x0010] = (ushort)0x28DD; + UInt16[DS, 0x0010] = 0x28DD; // F000:00EB mov word ptr DS:[0x0012],0xD74A - UInt16[DS, (ushort)0x0012] = (ushort)0xD74A; + UInt16[DS, 0x0012] = 0xD74A; // F000:00F1 rol AX,1 AX = Alu16.Rol(AX, unchecked((byte)1)); // F000:00F3 pushf Stack.Push16(FlagRegister16); // F000:00F4 mov word ptr DS:[0x0038],AX - UInt16[DS, (ushort)0x0038] = AX; + UInt16[DS, 0x0038] = AX; // F000:00F7 rol word ptr DS:[0x0010],1 - UInt16[DS, (ushort)0x0010] = Alu16.Rol(UInt16[DS, (ushort)0x0010], unchecked((byte)1)); + UInt16[DS, 0x0010] = Alu16.Rol(UInt16[DS, 0x0010], unchecked((byte)1)); // F000:00FB pushf Stack.Push16(FlagRegister16); // F000:00FC mov CX,0x0100 - CX = (ushort)0x0100; + CX = 0x0100; // F000:00FF rol BX,CL BX = Alu16.Rol(BX, CL); // F000:0101 pushf Stack.Push16(FlagRegister16); // F000:0102 mov word ptr DS:[0x003A],BX - UInt16[DS, (ushort)0x003A] = BX; + UInt16[DS, 0x003A] = BX; // F000:0106 mov CX,0xFFFF - CX = (ushort)0xFFFF; + CX = 0xFFFF; // F000:0109 mov DX,BX DX = BX; // F000:010B rol DX,CL @@ -227,79 +227,79 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:010D pushf Stack.Push16(FlagRegister16); // F000:010E mov word ptr DS:[0x003C],DX - UInt16[DS, (ushort)0x003C] = DX; + UInt16[DS, 0x003C] = DX; // F000:0112 mov CL,4 - CL = (byte)0x04; + CL = 4; // F000:0114 rol BX,CL BX = Alu16.Rol(BX, CL); // F000:0116 pushf Stack.Push16(FlagRegister16); // F000:0117 mov word ptr DS:[0x003E],BX - UInt16[DS, (ushort)0x003E] = BX; + UInt16[DS, 0x003E] = BX; // F000:011B mov CL,4 - CL = (byte)0x04; + CL = 4; // F000:011D rol word ptr DS:[0x0012],CL - UInt16[DS, (ushort)0x0012] = Alu16.Rol(UInt16[DS, (ushort)0x0012], CL); + UInt16[DS, 0x0012] = Alu16.Rol(UInt16[DS, 0x0012], CL); // F000:0121 pushf Stack.Push16(FlagRegister16); // F000:0122 mov DX,0x9D09 - DX = (ushort)0x9D09; + DX = 0x9D09; // F000:0125 mov AX,0xC948 - AX = (ushort)0xC948; + AX = 0xC948; // F000:0128 mov word ptr DS:[0x0014],0x0B80 - UInt16[DS, (ushort)0x0014] = (ushort)0x0B80; + UInt16[DS, 0x0014] = 0x0B80; // F000:012E mov word ptr DS:[0x0016],0x48E8 - UInt16[DS, (ushort)0x0016] = (ushort)0x48E8; + UInt16[DS, 0x0016] = 0x48E8; // F000:0134 rol AH,1 AH = Alu8.Rol(AH, unchecked((byte)1)); // F000:0136 pushf Stack.Push16(FlagRegister16); // F000:0137 mov word ptr DS:[0x0040],AX - UInt16[DS, (ushort)0x0040] = AX; + UInt16[DS, 0x0040] = AX; // F000:013A rol byte ptr DS:[0x0015],1 - UInt8[DS, (ushort)0x0015] = Alu8.Rol(UInt8[DS, (ushort)0x0015], unchecked((byte)1)); + UInt8[DS, 0x0015] = Alu8.Rol(UInt8[DS, 0x0015], unchecked((byte)1)); // F000:013E pushf Stack.Push16(FlagRegister16); // F000:013F mov CL,7 - CL = (byte)0x07; + CL = 7; // F000:0141 rol DL,CL DL = Alu8.Rol(DL, CL); // F000:0143 pushf Stack.Push16(FlagRegister16); // F000:0144 mov word ptr DS:[0x0042],DX - UInt16[DS, (ushort)0x0042] = DX; + UInt16[DS, 0x0042] = DX; // F000:0148 rol byte ptr DS:[0x0016],CL - UInt8[DS, (ushort)0x0016] = Alu8.Rol(UInt8[DS, (ushort)0x0016], CL); + UInt8[DS, 0x0016] = Alu8.Rol(UInt8[DS, 0x0016], CL); // F000:014C pushf Stack.Push16(FlagRegister16); // F000:014D mov AX,0xF25E - AX = (ushort)0xF25E; + AX = 0xF25E; // F000:0150 mov BX,0x2EB5 - BX = (ushort)0x2EB5; + BX = 0x2EB5; // F000:0153 mov word ptr DS:[0x0018],0x0151 - UInt16[DS, (ushort)0x0018] = (ushort)0x0151; + UInt16[DS, 0x0018] = 0x0151; // F000:0159 mov word ptr DS:[0x001A],0x7237 - UInt16[DS, (ushort)0x001A] = (ushort)0x7237; + UInt16[DS, 0x001A] = 0x7237; // F000:015F ror AX,1 AX = Alu16.Ror(AX, 1); // F000:0161 pushf Stack.Push16(FlagRegister16); // F000:0162 mov word ptr DS:[0x0044],AX - UInt16[DS, (ushort)0x0044] = AX; + UInt16[DS, 0x0044] = AX; // F000:0165 ror word ptr DS:[0x0018],1 - UInt16[DS, (ushort)0x0018] = Alu16.Ror(UInt16[DS, (ushort)0x0018], 1); + UInt16[DS, 0x0018] = Alu16.Ror(UInt16[DS, 0x0018], 1); // F000:0169 pushf Stack.Push16(FlagRegister16); // F000:016A mov CX,0x0100 - CX = (ushort)0x0100; + CX = 0x0100; // F000:016D ror BX,CL BX = Alu16.Ror(BX, unchecked((int)CL)); // F000:016F pushf Stack.Push16(FlagRegister16); // F000:0170 mov word ptr DS:[0x0046],BX - UInt16[DS, (ushort)0x0046] = BX; + UInt16[DS, 0x0046] = BX; // F000:0174 mov CX,0xFFFF - CX = (ushort)0xFFFF; + CX = 0xFFFF; // F000:0177 mov DX,BX DX = BX; // F000:0179 ror DX,CL @@ -307,49 +307,49 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:017B pushf Stack.Push16(FlagRegister16); // F000:017C mov word ptr DS:[0x0048],DX - UInt16[DS, (ushort)0x0048] = DX; + UInt16[DS, 0x0048] = DX; // F000:0180 mov CL,4 - CL = (byte)0x04; + CL = 4; // F000:0182 ror BX,CL BX = Alu16.Ror(BX, unchecked((int)CL)); // F000:0184 pushf Stack.Push16(FlagRegister16); // F000:0185 mov word ptr DS:[0x004A],BX - UInt16[DS, (ushort)0x004A] = BX; + UInt16[DS, 0x004A] = BX; // F000:0189 mov CL,4 - CL = (byte)0x04; + CL = 4; // F000:018B ror word ptr DS:[0x001A],CL - UInt16[DS, (ushort)0x001A] = Alu16.Ror(UInt16[DS, (ushort)0x001A], unchecked((int)CL)); + UInt16[DS, 0x001A] = Alu16.Ror(UInt16[DS, 0x001A], unchecked((int)CL)); // F000:018F pushf Stack.Push16(FlagRegister16); // F000:0190 mov DX,0x4288 - DX = (ushort)0x4288; + DX = 0x4288; // F000:0193 mov AX,0x8BAB - AX = (ushort)0x8BAB; + AX = 0x8BAB; // F000:0196 mov word ptr DS:[0x001C],0x5DD9 - UInt16[DS, (ushort)0x001C] = (ushort)0x5DD9; + UInt16[DS, 0x001C] = 0x5DD9; // F000:019C mov word ptr DS:[0x001E],0xC7F7 - UInt16[DS, (ushort)0x001E] = (ushort)0xC7F7; + UInt16[DS, 0x001E] = 0xC7F7; // F000:01A2 ror AH,1 AH = Alu8.Ror(AH, 1); // F000:01A4 pushf Stack.Push16(FlagRegister16); // F000:01A5 mov word ptr DS:[0x004C],AX - UInt16[DS, (ushort)0x004C] = AX; + UInt16[DS, 0x004C] = AX; // F000:01A8 ror byte ptr DS:[0x001D],1 - UInt8[DS, (ushort)0x001D] = Alu8.Ror(UInt8[DS, (ushort)0x001D], 1); + UInt8[DS, 0x001D] = Alu8.Ror(UInt8[DS, 0x001D], 1); // F000:01AC pushf Stack.Push16(FlagRegister16); // F000:01AD mov CL,7 - CL = (byte)0x07; + CL = 7; // F000:01AF ror DL,CL DL = Alu8.Ror(DL, unchecked((int)CL)); // F000:01B1 pushf Stack.Push16(FlagRegister16); // F000:01B2 mov word ptr DS:[0x004E],DX - UInt16[DS, (ushort)0x004E] = DX; + UInt16[DS, 0x004E] = DX; // F000:01B6 ror byte ptr DS:[0x001E],CL - UInt8[DS, (ushort)0x001E] = Alu8.Ror(UInt8[DS, (ushort)0x001E], unchecked((int)CL)); + UInt8[DS, 0x001E] = Alu8.Ror(UInt8[DS, 0x001E], unchecked((int)CL)); // F000:01BA pushf Stack.Push16(FlagRegister16); // F000:01BB hlt diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/segpr.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/segpr.spec.cs.txt index db34733a33..c366ce143e 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/segpr.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/segpr.spec.cs.txt @@ -31,20 +31,20 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_0065_F0065(int loadOffset) { CheckExternalEvents(cs1, 0x0065); // F000:0065 sub SP,6 - SP = Alu16.Sub(SP, unchecked((ushort)unchecked((short)(sbyte)6))); + SP = Alu16.Sub(SP, 6); // F000:0068 mov word ptr DS:[0x0014],0x1200 - UInt16[DS, (ushort)0x0014] = (ushort)0x1200; + UInt16[DS, 0x0014] = 0x1200; // F000:006E mov BX,5 - BX = (ushort)0x0005; + BX = 5; // F000:0071 mov SI,3 - SI = (ushort)0x0003; + SI = 3; // F000:0074 call near word ptr SS:[BX+SI-4] - switch ((ushort)(UInt16[SS, (ushort)(BX + SI + (sbyte)-4)])) { + switch ((ushort)(UInt16[SS, (ushort)(BX + SI + -4)])) { case 0x1200: NearCall(cs1, 0x0079, unknown_F000_1200_F1200); throw FailAsUntested("Call at F000:0074 returned to F000:0079, but no continuation was observed during discovery."); default: - throw FailAsUntested($"Unknown near call target 0x{((ushort)(UInt16[SS, (ushort)(BX + SI + (sbyte)-4)])):X4} at F000:0074"); + throw FailAsUntested($"Unknown near call target 0x{((ushort)(UInt16[SS, (ushort)(BX + SI + -4)])):X4} at F000:0074"); } } @@ -55,9 +55,9 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:1102 mov SI,word ptr SS:[SI] SI = UInt16[SS, SI]; // F000:1105 mov word ptr DS:[0x000E],SI - UInt16[DS, (ushort)0x000E] = SI; + UInt16[DS, 0x000E] = SI; // F000:1109 add SI,6 - SI = Alu16.Add(SI, unchecked((ushort)unchecked((short)(sbyte)6))); + SI = Alu16.Add(SI, 6); // F000:110C mov DI,SP DI = SP; // F000:110E mov word ptr SS:[DI],SI @@ -69,13 +69,13 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_1200_F1200(int loadOffset) { CheckExternalEvents(cs1, 0x1200); // F000:1200 mov CX,0xF120 - CX = (ushort)0xF120; + CX = 0xF120; // F000:1203 mov ES,CX ES = CX; // F000:1205 mov SI,0x0200 - SI = (ushort)0x0200; + SI = 0x0200; // F000:1208 mov DI,0x0E01 - DI = (ushort)0x0E01; + DI = 0x0E01; // F000:120B cmps byte ptr ES:[SI],byte ptr ES:[DI] Alu8.Sub(UInt8[ES, SI], UInt8[ES, DI]); SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); @@ -83,21 +83,21 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:120D pushf Stack.Push16(FlagRegister16); // F000:120E mov AX,1 - AX = (ushort)0x0001; + AX = 1; // F000:1211 mov ES,AX ES = AX; // F000:1213 mov DI,6 - DI = (ushort)0x0006; + DI = 6; // F000:1216 mov SI,0x1400 - SI = (ushort)0x1400; + SI = 0x1400; // F000:1219 mov CX,6 - CX = (ushort)0x0006; + CX = 6; // F000:121C rep movs byte ptr ES:[DI],byte ptr CS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt8[ES, DI] = UInt8[CS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:121F hlt return Hlt(); @@ -109,68 +109,68 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov BX,0xF100 - BX = (ushort)0xF100; + BX = 0xF100; // F000:0003 mov ES,BX ES = BX; // F000:0005 mov BX,word ptr ES:[0] - BX = UInt16[ES, (ushort)0x0000]; + BX = UInt16[ES, 0]; // F000:000A mov AX,word ptr ES:[2] - AX = UInt16[ES, (ushort)0x0002]; + AX = UInt16[ES, 2]; // F000:000E mov word ptr DS:[2],AX - UInt16[DS, (ushort)0x0002] = AX; + UInt16[DS, 2] = AX; // F000:0011 mov SP,2 - SP = (ushort)0x0002; + SP = 2; // F000:0014 push BX Stack.Push16(BX); // F000:0016 les DX,word ptr ES:[0] - ushort lxsOffset_F000_0016_F0016 = (ushort)0x0000; + ushort lxsOffset_F000_0016_F0016 = 0; ushort lxsValue_F000_0016_F0016 = UInt16[ES, lxsOffset_F000_0016_F0016]; - ushort lxsSegment_F000_0016_F0016 = UInt16[ES, (ushort)(lxsOffset_F000_0016_F0016 + (ushort)0x0002)]; + ushort lxsSegment_F000_0016_F0016 = UInt16[ES, (ushort)(lxsOffset_F000_0016_F0016 + 2)]; DX = unchecked((ushort)lxsValue_F000_0016_F0016); ES = unchecked((ushort)lxsSegment_F000_0016_F0016); // F000:001B mov word ptr DS:[4],DX - UInt16[DS, (ushort)0x0004] = DX; + UInt16[DS, 4] = DX; // F000:001F mov DX,ES DX = ES; // F000:0021 mov word ptr DS:[6],DX - UInt16[DS, (ushort)0x0006] = DX; + UInt16[DS, 6] = DX; // F000:0025 mov DI,5 - DI = (ushort)0x0005; + DI = 5; // F000:0028 lea SI,BP+DI+0x17 - SI = unchecked((ushort)(BP + DI + (sbyte)23)); + SI = unchecked((ushort)(BP + DI + 0x17)); // F000:002C mov word ptr DS:[8],SI - UInt16[DS, (ushort)0x0008] = SI; + UInt16[DS, 8] = SI; // F000:0030 mov BX,5 - BX = (ushort)0x0005; + BX = 5; // F000:0033 mov AX,5 - AX = (ushort)0x0005; + AX = 5; // F000:0036 mov word ptr DS:[0x000A],0x2345 - UInt16[DS, (ushort)0x000A] = (ushort)0x2345; + UInt16[DS, 0x000A] = 0x2345; // F000:003C mov DX,0xF100 - DX = (ushort)0xF100; + DX = 0xF100; // F000:003F mov ES,DX ES = DX; // F000:0041 xlat byte ptr ES:[BX+AL] AL = UInt8[ES, (ushort)(BX + unchecked((ushort)AL))]; // F000:0043 mov word ptr DS:[0x000C],AX - UInt16[DS, (ushort)0x000C] = AX; + UInt16[DS, 0x000C] = AX; // F000:0046 mov AX,1 - AX = (ushort)0x0001; + AX = 1; // F000:0049 mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:004B mov word ptr DS:[0x0010],6 - UInt16[DS, (ushort)0x0010] = (ushort)0x0006; + UInt16[DS, 0x0010] = 6; // F000:0051 inc word ptr SS:[0] - UInt16[SS, (ushort)0x0000] = Alu16.Inc(UInt16[SS, (ushort)0x0000]); + UInt16[SS, 0] = Alu16.Inc(UInt16[SS, 0]); // F000:0056 mov SP,0x0020 - SP = (ushort)0x0020; + SP = 0x0020; // F000:0059 mov word ptr DS:[0x0012],0 - UInt16[DS, (ushort)0x0012] = (ushort)0x0000; + UInt16[DS, 0x0012] = 0; // F000:005F div word ptr SS:[2] try { - ushort divisor_F000_005F_F005F = UInt16[SS, (ushort)0x0002]; - uint dividend_F000_005F_F005F = unchecked((uint)(unchecked((uint)DX) << 16 | unchecked((uint)AX))); + ushort divisor_F000_005F_F005F = UInt16[SS, 2]; + uint dividend_F000_005F_F005F = unchecked((uint)(unchecked((uint)DX) << 0x00000010 | unchecked((uint)AX))); ushort quotient_F000_005F_F005F = Alu16.Div(unchecked((uint)dividend_F000_005F_F005F), unchecked((ushort)divisor_F000_005F_F005F)); AX = unchecked((ushort)quotient_F000_005F_F005F); DX = unchecked((ushort)(dividend_F000_005F_F005F % unchecked((uint)divisor_F000_005F_F005F))); diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifycall.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifycall.spec.cs.txt index a186476b2e..1b732113d8 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifycall.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifycall.spec.cs.txt @@ -29,24 +29,24 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_0017_F0017(int loadOffset) { CheckExternalEvents(cs1, 0x0017); // F000:0017 cmp byte ptr DS:[0x002B],0 - Alu8.Sub(UInt8[DS, (ushort)0x002B], (byte)0x00); + Alu8.Sub(UInt8[DS, 0x002B], 0); // F000:001C je short 0x002A if (ZeroFlag) { goto label_F000_002A_F002A_11; } CheckExternalEvents(cs1, 0x001E); // F000:001E mov AX,0xF000 - AX = (ushort)0xF000; + AX = 0xF000; // F000:0021 mov ES,AX ES = AX; // F000:0023 mov byte ptr ES:[0x0010],0xF4 - UInt8[ES, (ushort)0x0010] = (byte)0xF4; + UInt8[ES, 0x0010] = 0xF4; // F000:0029 ret near - return NearRet((ushort)0x0000); + return NearRet(0); label_F000_002A_F002A_11: CheckExternalEvents(cs1, 0x002A); // F000:002A ret near - return NearRet((ushort)0x0000); + return NearRet(0); } public virtual Action unknown_F000_FFF0_FFFF0(int loadOffset) { @@ -55,14 +55,14 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:0003 mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:0005 mov SP,0x0100 - SP = (ushort)0x0100; + SP = 0x0100; // F000:0008 mov byte ptr DS:[0x002B],0 - UInt8[DS, (ushort)0x002B] = (byte)0x00; + UInt8[DS, 0x002B] = 0; label_F000_000D_F000D_7: CheckExternalEvents(cs1, 0x000D); // F000:000D call near 0x0017 @@ -72,7 +72,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CheckExternalEvents(cs1, 0x0010); // F000:0010 nop // F000:0011 inc byte ptr DS:[0x002B] - UInt8[DS, (ushort)0x002B] = Alu8.Inc(UInt8[DS, (ushort)0x002B]); + UInt8[DS, 0x002B] = Alu8.Inc(UInt8[DS, 0x002B]); // F000:0015 jmp short 0x000D goto label_F000_000D_F000D_7; label_F000_0010_F0010_38: diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifycalltarget.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifycalltarget.spec.cs.txt index 7e4df67f71..a3c6197aff 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifycalltarget.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifycalltarget.spec.cs.txt @@ -34,9 +34,9 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:0028 jmp far F000:002E CheckExternalEvents(cs1, 0x002E); // F000:002E mov byte ptr DS:[0x0010],0xAA - UInt8[DS, (ushort)0x0010] = (byte)0xAA; + UInt8[DS, 0x0010] = 0xAA; // F000:0033 ret far - return FarRet((ushort)0x0000); + return FarRet(0); } public virtual Action unknown_40_F000_0028_F0028(int loadOffset) { @@ -44,9 +44,9 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:0028 jmp far F000:0034 CheckExternalEvents(cs1, 0x0034); // F000:0034 mov byte ptr DS:[0x0011],0xBB - UInt8[DS, (ushort)0x0011] = (byte)0xBB; + UInt8[DS, 0x0011] = 0xBB; // F000:0039 ret far - return FarRet((ushort)0x0000); + return FarRet(0); } public virtual Action unknown_57_F000_0028_F0028(int loadOffset) { @@ -54,33 +54,33 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:0028 jmp far F000:003A CheckExternalEvents(cs1, 0x003A); // F000:003A mov byte ptr DS:[0x0012],0xCC - UInt8[DS, (ushort)0x0012] = (byte)0xCC; + UInt8[DS, 0x0012] = 0xCC; // F000:003F ret far - return FarRet((ushort)0x0000); + return FarRet(0); } public virtual Action unknown_F000_0040_F0040(int loadOffset) { CheckExternalEvents(cs1, 0x0040); // F000:0040 mov word ptr ES:[0x0029],0x002E - UInt16[ES, (ushort)0x0029] = (ushort)0x002E; + UInt16[ES, 0x0029] = 0x002E; // F000:0047 ret near - return NearRet((ushort)0x0000); + return NearRet(0); } public virtual Action unknown_F000_0048_F0048(int loadOffset) { CheckExternalEvents(cs1, 0x0048); // F000:0048 mov word ptr ES:[0x0029],0x0034 - UInt16[ES, (ushort)0x0029] = (ushort)0x0034; + UInt16[ES, 0x0029] = 0x0034; // F000:004F ret near - return NearRet((ushort)0x0000); + return NearRet(0); } public virtual Action unknown_F000_0050_F0050(int loadOffset) { CheckExternalEvents(cs1, 0x0050); // F000:0050 mov word ptr ES:[0x0029],0x003A - UInt16[ES, (ushort)0x0029] = (ushort)0x003A; + UInt16[ES, 0x0029] = 0x003A; // F000:0057 ret near - return NearRet((ushort)0x0000); + return NearRet(0); } public virtual Action unknown_F000_FFF0_FFFF0(int loadOffset) { @@ -89,16 +89,16 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:0003 mov DS,AX DS = AX; // F000:0005 mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:0007 mov SP,0x0100 - SP = (ushort)0x0100; + SP = 0x0100; // F000:000A mov AX,0xF000 - AX = (ushort)0xF000; + AX = 0xF000; // F000:000D mov ES,AX ES = AX; // F000:000F call near 0x0040 diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifyinstructions.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifyinstructions.spec.cs.txt index 0a5999cab7..76986ed859 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifyinstructions.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifyinstructions.spec.cs.txt @@ -31,50 +31,50 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:0003 mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:0005 mov SP,6 - SP = (ushort)0x0006; + SP = 6; // F000:0008 mov SI,0x0800 - SI = (ushort)0x0800; + SI = 0x0800; label_F000_000B_F000B_7: CheckExternalEvents(cs1, 0x000B); // F000:000B mov AX,0xF000 - AX = (ushort)0xF000; + AX = 0xF000; // F000:000E mov DS,AX DS = AX; // F000:0010 mov ES,AX ES = AX; // F000:0012 mov DI,0x1400 - DI = (ushort)0x1400; + DI = 0x1400; // F000:0015 mov CX,0x03E8 - CX = (ushort)0x03E8; + CX = 0x03E8; // F000:0018 rep movs word ptr ES:[DI],word ptr DS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt16[ES, DI] = UInt16[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction16))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:001A jmp near 0x1400 goto label_F000_1400_F1400_30244; label_F000_1400_F1400_30227: CheckExternalEvents(cs1, 0x1400); // F000:1400 mov AX,1 - AX = (ushort)0x0001; + AX = 1; goto label_F000_1403_F1403_30229; label_F000_1400_F1400_30237: CheckExternalEvents(cs1, 0x1400); // F000:1400 mov BX,1 - BX = (ushort)0x0001; + BX = 1; // F000:1403 shl BX,1 BX = Alu16.Shl(BX, 1); // F000:1405 push BX Stack.Push16(BX); // F000:1406 mov SI,0x1000 - SI = (ushort)0x1000; + SI = 0x1000; // F000:1409 jmp far F000:000B goto label_F000_000B_F000B_7; label_F000_1400_F1400_30244: @@ -93,7 +93,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_1400_F1400_30250: CheckExternalEvents(cs1, 0x1400); // F000:1400 mov CX,1 - CX = (ushort)0x0001; + CX = 1; // F000:1403 inc CX CX = Alu16.Inc(CX); // F000:1404 inc CX @@ -107,7 +107,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:1403 push AX Stack.Push16(AX); // F000:1404 mov SI,0x0C00 - SI = (ushort)0x0C00; + SI = 0x0C00; // F000:1407 jmp far F000:000B goto label_F000_000B_F000B_7; label_F000_FFF0_FFFF0_0: diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifyje.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifyje.spec.cs.txt index c28fc619e8..230d7486f7 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifyje.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifyje.spec.cs.txt @@ -31,11 +31,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov CX,0 - CX = (ushort)0x0000; + CX = 0; label_F000_0003_F0003_4: CheckExternalEvents(cs1, 0x0003); // F000:0003 cmp CX,0 - Alu16.Sub(CX, unchecked((ushort)unchecked((short)(sbyte)0))); + Alu16.Sub(CX, 0); // F000:0006 je short 9 if (ZeroFlag) { goto label_F000_0009_F0009_30; @@ -46,20 +46,20 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0009_F0009_30: CheckExternalEvents(cs1, 0x0009); // F000:0009 mov AX,word ptr [0x000F000A] - AX = UInt16[unchecked((uint)(0x000F000Au))]; + AX = UInt16[unchecked((uint)(0x000F000A))]; // F000:000C mov word ptr CS:[0x000A],0x162E - UInt16[CS, (ushort)0x000A] = (ushort)0x162E; + UInt16[CS, 0x000A] = 0x162E; // F000:0013 mov CX,1 - CX = (ushort)0x0001; + CX = 1; // F000:0016 cmp AX,0x162E - Alu16.Sub(AX, (ushort)0x162E); + Alu16.Sub(AX, 0x162E); // F000:0019 je short 3 if (ZeroFlag) { goto label_F000_0003_F0003_4; } CheckExternalEvents(cs1, 0x001B); // F000:001B mov CX,0 - CX = (ushort)0x0000; + CX = 0; // F000:001E jmp short 3 goto label_F000_0003_F0003_4; label_F000_FFF0_FFFF0_0: diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifyterminator.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifyterminator.spec.cs.txt index c8b7e16399..a55794958f 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifyterminator.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifyterminator.spec.cs.txt @@ -29,28 +29,28 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_0022_F0022(int loadOffset) { CheckExternalEvents(cs1, 0x0022); // F000:0022 cmp byte ptr DS:[0x0040],0 - Alu8.Sub(UInt8[DS, (ushort)0x0040], (byte)0x00); + Alu8.Sub(UInt8[DS, 0x0040], 0); // F000:0027 je short 0x003B if (ZeroFlag) { goto label_F000_003B_F003B_13; } CheckExternalEvents(cs1, 0x0029); // F000:0029 mov AX,0xF000 - AX = (ushort)0xF000; + AX = 0xF000; // F000:002C mov ES,AX ES = AX; // F000:002E mov byte ptr ES:[0x0019],0xEB - UInt8[ES, (ushort)0x0019] = (byte)0xEB; + UInt8[ES, 0x0019] = 0xEB; // F000:0034 mov byte ptr ES:[0x001A],5 - UInt8[ES, (ushort)0x001A] = (byte)0x05; + UInt8[ES, 0x001A] = 5; // F000:003A ret near - return NearRet((ushort)0x0000); + return NearRet(0); label_F000_003B_F003B_13: CheckExternalEvents(cs1, 0x003B); // F000:003B inc byte ptr DS:[0x0040] - UInt8[DS, (ushort)0x0040] = Alu8.Inc(UInt8[DS, (ushort)0x0040]); + UInt8[DS, 0x0040] = Alu8.Inc(UInt8[DS, 0x0040]); // F000:003F ret near - return NearRet((ushort)0x0000); + return NearRet(0); } public virtual Action unknown_F000_FFF0_FFFF0(int loadOffset) { @@ -59,16 +59,16 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:0003 mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:0005 mov SP,4 - SP = (ushort)0x0004; + SP = 4; // F000:0008 mov AX,0xFFFF - AX = (ushort)0xFFFF; + AX = 0xFFFF; // F000:000B mov byte ptr DS:[0x0040],0 - UInt8[DS, (ushort)0x0040] = (byte)0x00; + UInt8[DS, 0x0040] = 0; label_F000_0010_F0010_8: CheckExternalEvents(cs1, 0x0010); // F000:0010 push AX @@ -77,7 +77,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { NearCall(cs1, 0x0014, unknown_F000_0022_F0022); CheckExternalEvents(cs1, 0x0014); // F000:0014 mov AX,0x0042 - AX = (ushort)0x0042; + AX = 0x0042; // F000:0017 or AX,AX AX = Alu16.Or(AX, AX); // F000:0019 selector @@ -101,7 +101,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CheckExternalEvents(cs1, 0x001B); VerifySpeculativeEntryOrFail(cs1, 0x001B, [(byte)0xB8, (byte)0xAD, (byte)0xDE]); // F000:001B mov AX,0xDEAD - AX = (ushort)0xDEAD; + AX = 0xDEAD; VerifySpeculativeEntryOrFail(cs1, 0x001E, [(byte)0x50]); // F000:001E push AX Stack.Push16(AX); diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifyvalue.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifyvalue.spec.cs.txt index ddb24ad1c8..3f2247b765 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifyvalue.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/selfmodifyvalue.spec.cs.txt @@ -31,28 +31,28 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:0003 mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:0005 mov SP,4 - SP = (ushort)0x0004; + SP = 4; // F000:0008 mov BX,0x000A - BX = (ushort)0x000A; + BX = 0x000A; label_F000_000B_F000B_7: CheckExternalEvents(cs1, 0x000B); // F000:000B jmp short 0x000D CheckExternalEvents(cs1, 0x000D); // F000:000D mov AX,word ptr [0x000F000E] - AX = UInt16[unchecked((uint)(0x000F000Eu))]; + AX = UInt16[unchecked((uint)(0x000F000E))]; // F000:0010 push AX Stack.Push16(AX); // F000:0011 mov word ptr CS:[0x000E],BX - UInt16[CS, (ushort)0x000E] = BX; + UInt16[CS, 0x000E] = BX; // F000:0016 dec BX BX = Alu16.Dec(BX); // F000:0017 cmp AX,0 - Alu16.Sub(AX, unchecked((ushort)unchecked((short)(sbyte)0))); + Alu16.Sub(AX, 0); // F000:001A jne short 0x000B if (!ZeroFlag) { goto label_F000_000B_F000B_7; diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/shifts.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/shifts.spec.cs.txt index 30c8598806..20f09ebe5a 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/shifts.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/shifts.spec.cs.txt @@ -31,35 +31,35 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0x6EC5 - AX = (ushort)0x6EC5; + AX = 0x6EC5; // F000:0003 mov BX,0xB1A8 - BX = (ushort)0xB1A8; + BX = 0xB1A8; // F000:0006 mov word ptr DS:[0],0x5338 - UInt16[DS, (ushort)0x0000] = (ushort)0x5338; + UInt16[DS, 0] = 0x5338; // F000:000C mov word ptr DS:[2],0x31FE - UInt16[DS, (ushort)0x0002] = (ushort)0x31FE; + UInt16[DS, 2] = 0x31FE; // F000:0012 mov SP,0x0080 - SP = (ushort)0x0080; + SP = 0x0080; // F000:0015 shl AX,1 AX = Alu16.Shl(AX, 1); // F000:0017 pushf Stack.Push16(FlagRegister16); // F000:0018 mov word ptr DS:[0x0020],AX - UInt16[DS, (ushort)0x0020] = AX; + UInt16[DS, 0x0020] = AX; // F000:001B shl word ptr DS:[0],1 - UInt16[DS, (ushort)0x0000] = Alu16.Shl(UInt16[DS, (ushort)0x0000], 1); + UInt16[DS, 0] = Alu16.Shl(UInt16[DS, 0], 1); // F000:001F pushf Stack.Push16(FlagRegister16); // F000:0020 mov CX,0x0100 - CX = (ushort)0x0100; + CX = 0x0100; // F000:0023 shl BX,CL BX = Alu16.Shl(BX, unchecked((int)CL)); // F000:0025 pushf Stack.Push16(FlagRegister16); // F000:0026 mov word ptr DS:[0x0022],BX - UInt16[DS, (ushort)0x0022] = BX; + UInt16[DS, 0x0022] = BX; // F000:002A mov CX,0xFFFF - CX = (ushort)0xFFFF; + CX = 0xFFFF; // F000:002D mov DX,BX DX = BX; // F000:002F shl DX,CL @@ -67,79 +67,79 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:0031 pushf Stack.Push16(FlagRegister16); // F000:0032 mov word ptr DS:[0x0024],DX - UInt16[DS, (ushort)0x0024] = DX; + UInt16[DS, 0x0024] = DX; // F000:0036 mov CL,8 - CL = (byte)0x08; + CL = 8; // F000:0038 shl BX,CL BX = Alu16.Shl(BX, unchecked((int)CL)); // F000:003A pushf Stack.Push16(FlagRegister16); // F000:003B mov word ptr DS:[0x0026],BX - UInt16[DS, (ushort)0x0026] = BX; + UInt16[DS, 0x0026] = BX; // F000:003F mov CL,4 - CL = (byte)0x04; + CL = 4; // F000:0041 shl byte ptr DS:[2],CL - UInt8[DS, (ushort)0x0002] = Alu8.Shl(UInt8[DS, (ushort)0x0002], unchecked((int)CL)); + UInt8[DS, 2] = Alu8.Shl(UInt8[DS, 2], unchecked((int)CL)); // F000:0045 pushf Stack.Push16(FlagRegister16); // F000:0046 mov DX,0x956F - DX = (ushort)0x956F; + DX = 0x956F; // F000:0049 mov AX,0x4293 - AX = (ushort)0x4293; + AX = 0x4293; // F000:004C mov word ptr DS:[4],0x33C0 - UInt16[DS, (ushort)0x0004] = (ushort)0x33C0; + UInt16[DS, 4] = 0x33C0; // F000:0052 mov word ptr DS:[6],0x64FF - UInt16[DS, (ushort)0x0006] = (ushort)0x64FF; + UInt16[DS, 6] = 0x64FF; // F000:0058 shl AH,1 AH = Alu8.Shl(AH, 1); // F000:005A pushf Stack.Push16(FlagRegister16); // F000:005B mov word ptr DS:[0x0028],AX - UInt16[DS, (ushort)0x0028] = AX; + UInt16[DS, 0x0028] = AX; // F000:005E shl byte ptr DS:[5],1 - UInt8[DS, (ushort)0x0005] = Alu8.Shl(UInt8[DS, (ushort)0x0005], 1); + UInt8[DS, 5] = Alu8.Shl(UInt8[DS, 5], 1); // F000:0062 pushf Stack.Push16(FlagRegister16); // F000:0063 mov CL,7 - CL = (byte)0x07; + CL = 7; // F000:0065 shl DL,CL DL = Alu8.Shl(DL, unchecked((int)CL)); // F000:0067 pushf Stack.Push16(FlagRegister16); // F000:0068 mov word ptr DS:[0x002A],DX - UInt16[DS, (ushort)0x002A] = DX; + UInt16[DS, 0x002A] = DX; // F000:006C shl byte ptr DS:[6],CL - UInt8[DS, (ushort)0x0006] = Alu8.Shl(UInt8[DS, (ushort)0x0006], unchecked((int)CL)); + UInt8[DS, 6] = Alu8.Shl(UInt8[DS, 6], unchecked((int)CL)); // F000:0070 pushf Stack.Push16(FlagRegister16); // F000:0071 mov AX,0xFB72 - AX = (ushort)0xFB72; + AX = 0xFB72; // F000:0074 mov BX,0xDFB9 - BX = (ushort)0xDFB9; + BX = 0xDFB9; // F000:0077 mov word ptr DS:[8],0x1EBB - UInt16[DS, (ushort)0x0008] = (ushort)0x1EBB; + UInt16[DS, 8] = 0x1EBB; // F000:007D mov word ptr DS:[0x000A],0x742F - UInt16[DS, (ushort)0x000A] = (ushort)0x742F; + UInt16[DS, 0x000A] = 0x742F; // F000:0083 sar AX,1 AX = Alu16.Sar(AX, 1); // F000:0085 pushf Stack.Push16(FlagRegister16); // F000:0086 mov word ptr DS:[0x002C],AX - UInt16[DS, (ushort)0x002C] = AX; + UInt16[DS, 0x002C] = AX; // F000:0089 sar word ptr DS:[8],1 - UInt16[DS, (ushort)0x0008] = Alu16.Sar(UInt16[DS, (ushort)0x0008], 1); + UInt16[DS, 8] = Alu16.Sar(UInt16[DS, 8], 1); // F000:008D pushf Stack.Push16(FlagRegister16); // F000:008E mov CX,0x0100 - CX = (ushort)0x0100; + CX = 0x0100; // F000:0091 sar BX,CL BX = Alu16.Sar(BX, unchecked((int)CL)); // F000:0093 pushf Stack.Push16(FlagRegister16); // F000:0094 mov word ptr DS:[0x002E],BX - UInt16[DS, (ushort)0x002E] = BX; + UInt16[DS, 0x002E] = BX; // F000:0098 mov CX,0xFFFF - CX = (ushort)0xFFFF; + CX = 0xFFFF; // F000:009B mov DX,BX DX = BX; // F000:009D sar DX,CL @@ -147,79 +147,79 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:009F pushf Stack.Push16(FlagRegister16); // F000:00A0 mov word ptr DS:[0x0030],DX - UInt16[DS, (ushort)0x0030] = DX; + UInt16[DS, 0x0030] = DX; // F000:00A4 mov CL,5 - CL = (byte)0x05; + CL = 5; // F000:00A6 sar BX,CL BX = Alu16.Sar(BX, unchecked((int)CL)); // F000:00A8 pushf Stack.Push16(FlagRegister16); // F000:00A9 mov word ptr DS:[0x0032],BX - UInt16[DS, (ushort)0x0032] = BX; + UInt16[DS, 0x0032] = BX; // F000:00AD mov CL,4 - CL = (byte)0x04; + CL = 4; // F000:00AF sar byte ptr DS:[0x000A],CL - UInt8[DS, (ushort)0x000A] = Alu8.Sar(UInt8[DS, (ushort)0x000A], unchecked((int)CL)); + UInt8[DS, 0x000A] = Alu8.Sar(UInt8[DS, 0x000A], unchecked((int)CL)); // F000:00B3 pushf Stack.Push16(FlagRegister16); // F000:00B4 mov DX,0x93B8 - DX = (ushort)0x93B8; + DX = 0x93B8; // F000:00B7 mov AX,0x6688 - AX = (ushort)0x6688; + AX = 0x6688; // F000:00BA mov word ptr DS:[0x000C],0xCAD4 - UInt16[DS, (ushort)0x000C] = (ushort)0xCAD4; + UInt16[DS, 0x000C] = 0xCAD4; // F000:00C0 mov word ptr DS:[0x000E],0x6EC9 - UInt16[DS, (ushort)0x000E] = (ushort)0x6EC9; + UInt16[DS, 0x000E] = 0x6EC9; // F000:00C6 sar AH,1 AH = Alu8.Sar(AH, 1); // F000:00C8 pushf Stack.Push16(FlagRegister16); // F000:00C9 mov word ptr DS:[0x0034],AX - UInt16[DS, (ushort)0x0034] = AX; + UInt16[DS, 0x0034] = AX; // F000:00CC sar byte ptr DS:[0x000D],1 - UInt8[DS, (ushort)0x000D] = Alu8.Sar(UInt8[DS, (ushort)0x000D], 1); + UInt8[DS, 0x000D] = Alu8.Sar(UInt8[DS, 0x000D], 1); // F000:00D0 pushf Stack.Push16(FlagRegister16); // F000:00D1 mov CL,7 - CL = (byte)0x07; + CL = 7; // F000:00D3 sar DL,CL DL = Alu8.Sar(DL, unchecked((int)CL)); // F000:00D5 pushf Stack.Push16(FlagRegister16); // F000:00D6 mov word ptr DS:[0x0036],DX - UInt16[DS, (ushort)0x0036] = DX; + UInt16[DS, 0x0036] = DX; // F000:00DA sar byte ptr DS:[0x000E],CL - UInt8[DS, (ushort)0x000E] = Alu8.Sar(UInt8[DS, (ushort)0x000E], unchecked((int)CL)); + UInt8[DS, 0x000E] = Alu8.Sar(UInt8[DS, 0x000E], unchecked((int)CL)); // F000:00DE pushf Stack.Push16(FlagRegister16); // F000:00DF mov AX,0x7BA1 - AX = (ushort)0x7BA1; + AX = 0x7BA1; // F000:00E2 mov BX,0x54E8 - BX = (ushort)0x54E8; + BX = 0x54E8; // F000:00E5 mov word ptr DS:[0x0010],0xBAAA - UInt16[DS, (ushort)0x0010] = (ushort)0xBAAA; + UInt16[DS, 0x0010] = 0xBAAA; // F000:00EB mov word ptr DS:[0x0012],0x3431 - UInt16[DS, (ushort)0x0012] = (ushort)0x3431; + UInt16[DS, 0x0012] = 0x3431; // F000:00F1 shr AX,1 AX = Alu16.Shr(AX, 1); // F000:00F3 pushf Stack.Push16(FlagRegister16); // F000:00F4 mov word ptr DS:[0x0038],AX - UInt16[DS, (ushort)0x0038] = AX; + UInt16[DS, 0x0038] = AX; // F000:00F7 shr word ptr DS:[0x0010],1 - UInt16[DS, (ushort)0x0010] = Alu16.Shr(UInt16[DS, (ushort)0x0010], 1); + UInt16[DS, 0x0010] = Alu16.Shr(UInt16[DS, 0x0010], 1); // F000:00FB pushf Stack.Push16(FlagRegister16); // F000:00FC mov CX,0x0100 - CX = (ushort)0x0100; + CX = 0x0100; // F000:00FF shr BX,CL BX = Alu16.Shr(BX, unchecked((int)CL)); // F000:0101 pushf Stack.Push16(FlagRegister16); // F000:0102 mov word ptr DS:[0x003A],BX - UInt16[DS, (ushort)0x003A] = BX; + UInt16[DS, 0x003A] = BX; // F000:0106 mov CX,0xFFFF - CX = (ushort)0xFFFF; + CX = 0xFFFF; // F000:0109 mov DX,BX DX = BX; // F000:010B shr DX,CL @@ -227,49 +227,49 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:010D pushf Stack.Push16(FlagRegister16); // F000:010E mov word ptr DS:[0x003C],DX - UInt16[DS, (ushort)0x003C] = DX; + UInt16[DS, 0x003C] = DX; // F000:0112 mov CL,4 - CL = (byte)0x04; + CL = 4; // F000:0114 shr BX,CL BX = Alu16.Shr(BX, unchecked((int)CL)); // F000:0116 pushf Stack.Push16(FlagRegister16); // F000:0117 mov word ptr DS:[0x003E],BX - UInt16[DS, (ushort)0x003E] = BX; + UInt16[DS, 0x003E] = BX; // F000:011B mov CL,4 - CL = (byte)0x04; + CL = 4; // F000:011D shr byte ptr DS:[0x0012],CL - UInt8[DS, (ushort)0x0012] = Alu8.Shr(UInt8[DS, (ushort)0x0012], unchecked((int)CL)); + UInt8[DS, 0x0012] = Alu8.Shr(UInt8[DS, 0x0012], unchecked((int)CL)); // F000:0121 pushf Stack.Push16(FlagRegister16); // F000:0122 mov DX,0x0410 - DX = (ushort)0x0410; + DX = 0x0410; // F000:0125 mov AX,0x1628 - AX = (ushort)0x1628; + AX = 0x1628; // F000:0128 mov word ptr DS:[0x0014],0x3B26 - UInt16[DS, (ushort)0x0014] = (ushort)0x3B26; + UInt16[DS, 0x0014] = 0x3B26; // F000:012E mov word ptr DS:[0x0016],0x8D0D - UInt16[DS, (ushort)0x0016] = (ushort)0x8D0D; + UInt16[DS, 0x0016] = 0x8D0D; // F000:0134 shr AH,1 AH = Alu8.Shr(AH, 1); // F000:0136 pushf Stack.Push16(FlagRegister16); // F000:0137 mov word ptr DS:[0x0040],AX - UInt16[DS, (ushort)0x0040] = AX; + UInt16[DS, 0x0040] = AX; // F000:013A shr byte ptr DS:[0x0015],1 - UInt8[DS, (ushort)0x0015] = Alu8.Shr(UInt8[DS, (ushort)0x0015], 1); + UInt8[DS, 0x0015] = Alu8.Shr(UInt8[DS, 0x0015], 1); // F000:013E pushf Stack.Push16(FlagRegister16); // F000:013F mov CL,7 - CL = (byte)0x07; + CL = 7; // F000:0141 shr DL,CL DL = Alu8.Shr(DL, unchecked((int)CL)); // F000:0143 pushf Stack.Push16(FlagRegister16); // F000:0144 mov word ptr DS:[0x0042],DX - UInt16[DS, (ushort)0x0042] = DX; + UInt16[DS, 0x0042] = DX; // F000:0148 shr byte ptr DS:[0x0016],CL - UInt8[DS, (ushort)0x0016] = Alu8.Shr(UInt8[DS, (ushort)0x0016], unchecked((int)CL)); + UInt8[DS, 0x0016] = Alu8.Shr(UInt8[DS, 0x0016], unchecked((int)CL)); // F000:014C pushf Stack.Push16(FlagRegister16); // F000:014D hlt diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_branch.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_branch.spec.cs.txt index 22616d6dfd..0f0806bec3 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_branch.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_branch.spec.cs.txt @@ -31,9 +31,9 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov byte ptr DS:[0x0400],1 - UInt8[DS, (ushort)0x0400] = (byte)0x01; + UInt8[DS, 0x0400] = 1; // F000:0005 mov AL,byte ptr DS:[0x0500] - AL = UInt8[DS, (ushort)0x0500]; + AL = UInt8[DS, 0x0500]; // F000:0008 and AL,AL Alu8.And(AL, AL); // F000:000A jne short 0x0013 @@ -42,20 +42,20 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x000C); // F000:000C mov byte ptr DS:[0x0401],0xDD - UInt8[DS, (ushort)0x0401] = (byte)0xDD; + UInt8[DS, 0x0401] = 0xDD; // F000:0011 jmp short 0x001A goto label_F000_001A_F001A_13; label_F000_0013_F0013_7: CheckExternalEvents(cs1, 0x0013); VerifySpeculativeEntryOrFail(cs1, 0x0013, [(byte)0xC6, (byte)0x06, (byte)0x01, (byte)0x04, (byte)0xEE]); // F000:0013 mov byte ptr DS:[0x0401],0xEE - UInt8[DS, (ushort)0x0401] = (byte)0xEE; + UInt8[DS, 0x0401] = 0xEE; VerifySpeculativeEntryOrFail(cs1, 0x0018, [(byte)0xEB, (byte)0x00]); // F000:0018 jmp short 0x001A label_F000_001A_F001A_13: CheckExternalEvents(cs1, 0x001A); // F000:001A mov byte ptr DS:[0x0402],0xAA - UInt8[DS, (ushort)0x0402] = (byte)0xAA; + UInt8[DS, 0x0402] = 0xAA; // F000:001F hlt return Hlt(); label_F000_FFF0_FFFF0_0: diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_call_entry.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_call_entry.spec.cs.txt index 0299330351..84ff579d04 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_call_entry.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_call_entry.spec.cs.txt @@ -30,10 +30,10 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CheckExternalEvents(cs1, 0x001B); VerifySpeculativeEntryOrFail(cs1, 0x001B, [(byte)0xB0, (byte)0x42]); // F000:001B mov AL,0x42 - AL = (byte)0x42; + AL = 0x42; VerifySpeculativeEntryOrFail(cs1, 0x001D, [(byte)0xC3]); // F000:001D ret near - return NearRet((ushort)0x0000); + return NearRet(0); } public virtual Action unknown_F000_FFF0_FFFF0(int loadOffset) { @@ -42,9 +42,9 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov byte ptr DS:[0x0400],1 - UInt8[DS, (ushort)0x0400] = (byte)0x01; + UInt8[DS, 0x0400] = 1; // F000:0005 mov AL,byte ptr DS:[0x0500] - AL = UInt8[DS, (ushort)0x0500]; + AL = UInt8[DS, 0x0500]; // F000:0008 and AL,AL Alu8.And(AL, AL); // F000:000A jne short 0x0013 @@ -53,7 +53,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x000C); // F000:000C mov byte ptr DS:[0x0401],0xDD - UInt8[DS, (ushort)0x0401] = (byte)0xDD; + UInt8[DS, 0x0401] = 0xDD; // F000:0011 jmp short 0x001E goto label_F000_001E_F001E_15; label_F000_0013_F0013_7: @@ -65,7 +65,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_001E_F001E_15: CheckExternalEvents(cs1, 0x001E); // F000:001E mov byte ptr DS:[0x0402],0xAA - UInt8[DS, (ushort)0x0402] = (byte)0xAA; + UInt8[DS, 0x0402] = 0xAA; // F000:0023 hlt return Hlt(); label_F000_FFF0_FFFF0_0: diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_closure.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_closure.spec.cs.txt index a75ab4b8b9..fdcefc0c82 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_closure.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_closure.spec.cs.txt @@ -31,9 +31,9 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov byte ptr DS:[0x0400],1 - UInt8[DS, (ushort)0x0400] = (byte)0x01; + UInt8[DS, 0x0400] = 1; // F000:0005 mov AL,byte ptr DS:[0x0500] - AL = UInt8[DS, (ushort)0x0500]; + AL = UInt8[DS, 0x0500]; // F000:0008 and AL,AL Alu8.And(AL, AL); // F000:000A jne short 0x0013 @@ -42,22 +42,22 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x000C); // F000:000C mov byte ptr DS:[0x0401],0xDD - UInt8[DS, (ushort)0x0401] = (byte)0xDD; + UInt8[DS, 0x0401] = 0xDD; // F000:0011 jmp short 0x0024 goto label_F000_0024_F0024_14; label_F000_0013_F0013_7: CheckExternalEvents(cs1, 0x0013); VerifySpeculativeEntryOrFail(cs1, 0x0013, [(byte)0xB9, (byte)0x03, (byte)0x00]); // F000:0013 mov CX,3 - CX = (ushort)0x0003; + CX = 3; VerifySpeculativeEntryOrFail(cs1, 0x0016, [(byte)0xC6, (byte)0x06, (byte)0x01, (byte)0x04, (byte)0x00]); // F000:0016 mov byte ptr DS:[0x0401],0 - UInt8[DS, (ushort)0x0401] = (byte)0x00; + UInt8[DS, 0x0401] = 0; label_F000_001B_F001B_13: CheckExternalEvents(cs1, 0x001B); VerifySpeculativeEntryOrFail(cs1, 0x001B, [(byte)0xFE, (byte)0x06, (byte)0x01, (byte)0x04]); // F000:001B inc byte ptr DS:[0x0401] - UInt8[DS, (ushort)0x0401] = Alu8.Inc(UInt8[DS, (ushort)0x0401]); + UInt8[DS, 0x0401] = Alu8.Inc(UInt8[DS, 0x0401]); VerifySpeculativeEntryOrFail(cs1, 0x001F, [(byte)0x49]); // F000:001F dec CX CX = Alu16.Dec(CX); @@ -72,7 +72,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0024_F0024_14: CheckExternalEvents(cs1, 0x0024); // F000:0024 mov byte ptr DS:[0x0402],0xBB - UInt8[DS, (ushort)0x0402] = (byte)0xBB; + UInt8[DS, 0x0402] = 0xBB; // F000:0029 hlt return Hlt(); label_F000_FFF0_FFFF0_0: diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_convergence.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_convergence.spec.cs.txt index 50614e2687..34e24b24ba 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_convergence.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_convergence.spec.cs.txt @@ -31,9 +31,9 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov byte ptr DS:[0x0400],1 - UInt8[DS, (ushort)0x0400] = (byte)0x01; + UInt8[DS, 0x0400] = 1; // F000:0005 mov AL,byte ptr DS:[0x0500] - AL = UInt8[DS, (ushort)0x0500]; + AL = UInt8[DS, 0x0500]; // F000:0008 and AL,AL Alu8.And(AL, AL); // F000:000A jne short 0x0013 @@ -42,22 +42,22 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x000C); // F000:000C mov byte ptr DS:[0x0401],0xAA - UInt8[DS, (ushort)0x0401] = (byte)0xAA; + UInt8[DS, 0x0401] = 0xAA; // F000:0011 jmp short 0x001A goto label_F000_001A_F001A_13; label_F000_0013_F0013_7: CheckExternalEvents(cs1, 0x0013); VerifySpeculativeEntryOrFail(cs1, 0x0013, [(byte)0xC6, (byte)0x06, (byte)0x01, (byte)0x04, (byte)0xBB]); // F000:0013 mov byte ptr DS:[0x0401],0xBB - UInt8[DS, (ushort)0x0401] = (byte)0xBB; + UInt8[DS, 0x0401] = 0xBB; VerifySpeculativeEntryOrFail(cs1, 0x0018, [(byte)0xEB, (byte)0x00]); // F000:0018 jmp short 0x001A label_F000_001A_F001A_13: CheckExternalEvents(cs1, 0x001A); // F000:001A mov byte ptr DS:[0x0402],0xCC - UInt8[DS, (ushort)0x0402] = (byte)0xCC; + UInt8[DS, 0x0402] = 0xCC; // F000:001F mov byte ptr DS:[0x0403],0xFF - UInt8[DS, (ushort)0x0403] = (byte)0xFF; + UInt8[DS, 0x0403] = 0xFF; // F000:0024 hlt return Hlt(); label_F000_FFF0_FFFF0_0: diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_discard.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_discard.spec.cs.txt index 22616d6dfd..0f0806bec3 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_discard.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_discard.spec.cs.txt @@ -31,9 +31,9 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov byte ptr DS:[0x0400],1 - UInt8[DS, (ushort)0x0400] = (byte)0x01; + UInt8[DS, 0x0400] = 1; // F000:0005 mov AL,byte ptr DS:[0x0500] - AL = UInt8[DS, (ushort)0x0500]; + AL = UInt8[DS, 0x0500]; // F000:0008 and AL,AL Alu8.And(AL, AL); // F000:000A jne short 0x0013 @@ -42,20 +42,20 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x000C); // F000:000C mov byte ptr DS:[0x0401],0xDD - UInt8[DS, (ushort)0x0401] = (byte)0xDD; + UInt8[DS, 0x0401] = 0xDD; // F000:0011 jmp short 0x001A goto label_F000_001A_F001A_13; label_F000_0013_F0013_7: CheckExternalEvents(cs1, 0x0013); VerifySpeculativeEntryOrFail(cs1, 0x0013, [(byte)0xC6, (byte)0x06, (byte)0x01, (byte)0x04, (byte)0xEE]); // F000:0013 mov byte ptr DS:[0x0401],0xEE - UInt8[DS, (ushort)0x0401] = (byte)0xEE; + UInt8[DS, 0x0401] = 0xEE; VerifySpeculativeEntryOrFail(cs1, 0x0018, [(byte)0xEB, (byte)0x00]); // F000:0018 jmp short 0x001A label_F000_001A_F001A_13: CheckExternalEvents(cs1, 0x001A); // F000:001A mov byte ptr DS:[0x0402],0xAA - UInt8[DS, (ushort)0x0402] = (byte)0xAA; + UInt8[DS, 0x0402] = 0xAA; // F000:001F hlt return Hlt(); label_F000_FFF0_FFFF0_0: diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_invalid_opcode.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_invalid_opcode.spec.cs.txt index e500b4a716..ee0bdd8397 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_invalid_opcode.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_invalid_opcode.spec.cs.txt @@ -31,9 +31,9 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov byte ptr DS:[0x0400],1 - UInt8[DS, (ushort)0x0400] = (byte)0x01; + UInt8[DS, 0x0400] = 1; // F000:0005 mov AL,byte ptr DS:[0x0500] - AL = UInt8[DS, (ushort)0x0500]; + AL = UInt8[DS, 0x0500]; // F000:0008 and AL,AL Alu8.And(AL, AL); // F000:000A jne short 0x0013 @@ -42,11 +42,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x000C); // F000:000C mov byte ptr DS:[0x0401],0xDD - UInt8[DS, (ushort)0x0401] = (byte)0xDD; + UInt8[DS, 0x0401] = 0xDD; // F000:0011 jmp short 0x0017 CheckExternalEvents(cs1, 0x0017); // F000:0017 mov byte ptr DS:[0x0402],0xEE - UInt8[DS, (ushort)0x0402] = (byte)0xEE; + UInt8[DS, 0x0402] = 0xEE; // F000:001C hlt return Hlt(); label_F000_FFF0_FFFF0_0: diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_mixed_block.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_mixed_block.spec.cs.txt index 37afd1fbb7..7cf7fe0a0f 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_mixed_block.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_mixed_block.spec.cs.txt @@ -31,11 +31,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov byte ptr DS:[0x0400],1 - UInt8[DS, (ushort)0x0400] = (byte)0x01; + UInt8[DS, 0x0400] = 1; // F000:0005 mov AL,byte ptr DS:[0x0500] - AL = UInt8[DS, (ushort)0x0500]; + AL = UInt8[DS, 0x0500]; // F000:0008 cmp AL,0 - Alu8.Sub(AL, (byte)0x00); + Alu8.Sub(AL, 0); // F000:000A je short 0x0013 if (ZeroFlag) { goto label_F000_0013_F0013_7; @@ -43,18 +43,18 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CheckExternalEvents(cs1, 0x000C); VerifySpeculativeEntryOrFail(cs1, 0x000C, [(byte)0xC6, (byte)0x06, (byte)0x01, (byte)0x04, (byte)0xEE]); // F000:000C mov byte ptr DS:[0x0401],0xEE - UInt8[DS, (ushort)0x0401] = (byte)0xEE; + UInt8[DS, 0x0401] = 0xEE; VerifySpeculativeEntryOrFail(cs1, 0x0011, [(byte)0xEB, (byte)0x05]); // F000:0011 jmp short 0x0018 goto label_F000_0018_F0018_11; label_F000_0013_F0013_7: CheckExternalEvents(cs1, 0x0013); // F000:0013 mov byte ptr DS:[0x0401],0xDD - UInt8[DS, (ushort)0x0401] = (byte)0xDD; + UInt8[DS, 0x0401] = 0xDD; label_F000_0018_F0018_11: CheckExternalEvents(cs1, 0x0018); // F000:0018 mov byte ptr DS:[0x0402],0xAA - UInt8[DS, (ushort)0x0402] = (byte)0xAA; + UInt8[DS, 0x0402] = 0xAA; // F000:001D hlt return Hlt(); label_F000_FFF0_FFFF0_0: diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_smc_guard.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_smc_guard.spec.cs.txt index c234561ff3..8d13628714 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_smc_guard.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/speculative_smc_guard.spec.cs.txt @@ -31,9 +31,9 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov byte ptr DS:[0x0400],1 - UInt8[DS, (ushort)0x0400] = (byte)0x01; + UInt8[DS, 0x0400] = 1; // F000:0005 mov AL,byte ptr DS:[0x0500] - AL = UInt8[DS, (ushort)0x0500]; + AL = UInt8[DS, 0x0500]; // F000:0008 and AL,AL Alu8.And(AL, AL); // F000:000A jne short 0x0013 @@ -42,23 +42,23 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x000C); // F000:000C mov byte ptr DS:[0x0401],0xDD - UInt8[DS, (ushort)0x0401] = (byte)0xDD; + UInt8[DS, 0x0401] = 0xDD; // F000:0011 jmp short 0x0020 goto label_F000_0020_F0020_14; label_F000_0013_F0013_7: CheckExternalEvents(cs1, 0x0013); VerifySpeculativeEntryOrFail(cs1, 0x0013, [(byte)0x2E, (byte)0xC6, (byte)0x06, (byte)0x1A, (byte)0x00, (byte)0xEE]); // F000:0013 mov byte ptr CS:[0x001A],0xEE - UInt8[CS, (ushort)0x001A] = (byte)0xEE; + UInt8[CS, 0x001A] = 0xEE; VerifySpeculativeEntryOrFail(cs1, 0x0019, [(byte)0xC6, (byte)0x06, (byte)0x01, (byte)0x04, (byte)0x00]); // F000:0019 mov byte ptr DS:[0x0401],0 - UInt8[DS, (ushort)0x0401] = (byte)0x00; + UInt8[DS, 0x0401] = 0; VerifySpeculativeEntryOrFail(cs1, 0x001E, [(byte)0xEB, (byte)0x00]); // F000:001E jmp short 0x0020 label_F000_0020_F0020_14: CheckExternalEvents(cs1, 0x0020); // F000:0020 mov byte ptr DS:[0x0402],0xAA - UInt8[DS, (ushort)0x0402] = (byte)0xAA; + UInt8[DS, 0x0402] = 0xAA; // F000:0025 hlt return Hlt(); label_F000_FFF0_FFFF0_0: diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/sticli.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/sticli.spec.cs.txt index 5f22e02c1e..1d8537320d 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/sticli.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/sticli.spec.cs.txt @@ -31,7 +31,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0x1000 - AX = (ushort)0x1000; + AX = 0x1000; // F000:0003 mov DS,AX DS = AX; // F000:0005 sti @@ -43,7 +43,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { InterruptFlag = true; CheckExternalEvents(cs1, 0x0006); // F000:0006 mov AX,0x1234 - AX = (ushort)0x1234; + AX = 0x1234; CheckExternalEvents(cs1, 0x0009); // F000:0009 cli InterruptFlag = false; diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/stipending.pit.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/stipending.pit.spec.cs.txt index 562051075e..b6e13116cb 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/stipending.pit.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/stipending.pit.spec.cs.txt @@ -31,11 +31,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:004E push AX Stack.Push16(AX); // F000:004F mov DX,1 - DX = (ushort)0x0001; + DX = 1; // F000:0052 mov AL,0x20 - AL = (byte)0x20; + AL = 0x20; // F000:0054 out 0x20,AL - Machine.IoPortDispatcher.WriteByte(unchecked((ushort)(byte)0x20), AL); + Machine.IoPortDispatcher.WriteByte(0x0020, AL); // F000:0056 pop AX AX = Stack.Pop16(); // F000:0057 iret @@ -48,48 +48,48 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:0003 mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:0005 mov SP,0x0100 - SP = (ushort)0x0100; + SP = 0x0100; // F000:0008 mov DS,AX DS = AX; // F000:000A mov DX,0 - DX = (ushort)0x0000; + DX = 0; // F000:000D mov word ptr DS:[0x0020],0x004E - UInt16[DS, (ushort)0x0020] = (ushort)0x004E; + UInt16[DS, 0x0020] = 0x004E; // F000:0013 mov word ptr DS:[0x0022],CS - UInt16[DS, (ushort)0x0022] = CS; + UInt16[DS, 0x0022] = CS; // F000:0017 mov AL,0x36 - AL = (byte)0x36; + AL = 0x36; // F000:0019 out 0x43,AL - Machine.IoPortDispatcher.WriteByte(unchecked((ushort)(byte)0x43), AL); + Machine.IoPortDispatcher.WriteByte(0x0043, AL); // F000:001B mov AL,0x51 - AL = (byte)0x51; + AL = 0x51; // F000:001D out 0x40,AL - Machine.IoPortDispatcher.WriteByte(unchecked((ushort)(byte)0x40), AL); + Machine.IoPortDispatcher.WriteByte(0x0040, AL); // F000:001F mov AL,0x22 - AL = (byte)0x22; + AL = 0x22; // F000:0021 out 0x40,AL - Machine.IoPortDispatcher.WriteByte(unchecked((ushort)(byte)0x40), AL); + Machine.IoPortDispatcher.WriteByte(0x0040, AL); // F000:0023 mov AL,0 - AL = (byte)0x00; + AL = 0; // F000:0025 out 0x21,AL - Machine.IoPortDispatcher.WriteByte(unchecked((ushort)(byte)0x21), AL); + Machine.IoPortDispatcher.WriteByte(0x0021, AL); CheckExternalEvents(cs1, 0x0027); // F000:0027 cli InterruptFlag = false; // F000:0028 mov DX,0 - DX = (ushort)0x0000; + DX = 0; // F000:002B mov ECX,0x00FFFFFF - ECX = 0x00FFFFFFu; + ECX = 0x00FFFFFF; label_F000_0031_F0031_22: CheckExternalEvents(cs1, 0x0031); // F000:0031 loop 0x0031 - CX = unchecked((ushort)(CX - (ushort)0x0001)); - if (CX != (ushort)0x0000) { + CX = unchecked((ushort)(CX - 1)); + if (CX != 0) { goto label_F000_0031_F0031_22; } CheckExternalEvents(cs1, 0x0033); @@ -103,7 +103,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CheckExternalEvents(cs1, 0x0034); // F000:0034 nop // F000:0035 mov word ptr DS:[0],DX - UInt16[DS, (ushort)0x0000] = DX; + UInt16[DS, 0] = DX; // F000:0039 sti if (!InterruptFlag) { State.InterruptShadowing = true; @@ -118,14 +118,14 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:003B cli InterruptFlag = false; // F000:003C mov DX,0 - DX = (ushort)0x0000; + DX = 0; // F000:003F mov ECX,0x00FFFFFF - ECX = 0x00FFFFFFu; + ECX = 0x00FFFFFF; label_F000_0045_F0045_71: CheckExternalEvents(cs1, 0x0045); // F000:0045 loop 0x0045 - CX = unchecked((ushort)(CX - (ushort)0x0001)); - if (CX != (ushort)0x0000) { + CX = unchecked((ushort)(CX - 1)); + if (CX != 0) { goto label_F000_0045_F0045_71; } CheckExternalEvents(cs1, 0x0047); @@ -134,7 +134,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { CheckExternalEvents(cs1, 0x0048); // F000:0048 nop // F000:0049 mov word ptr DS:[1],DX - UInt16[DS, (ushort)0x0001] = DX; + UInt16[DS, 1] = DX; // F000:004D hlt return Hlt(); label_F000_FFF0_FFFF0_0: diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/strings.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/strings.spec.cs.txt index 2a62bbe6e7..bdfb4b8ec6 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/strings.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/strings.spec.cs.txt @@ -39,7 +39,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:0047 pushf Stack.Push16(FlagRegister16); // F000:0048 ret near - return NearRet((ushort)0x0000); + return NearRet(0); } public virtual Action unknown_F000_0082_F0082(int loadOffset) { @@ -51,7 +51,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:0083 pushf Stack.Push16(FlagRegister16); // F000:0084 ret near - return NearRet((ushort)0x0000); + return NearRet(0); } public virtual Action unknown_F000_0097_F0097(int loadOffset) { @@ -63,7 +63,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:0098 pushf Stack.Push16(FlagRegister16); // F000:0099 ret near - return NearRet((ushort)0x0000); + return NearRet(0); } public virtual Action unknown_F000_0812_F0812(int loadOffset) { @@ -75,13 +75,13 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:0813 pushf Stack.Push16(FlagRegister16); // F000:0814 ret near - return NearRet((ushort)0x0000); + return NearRet(0); } public virtual Action unknown_F000_0883_F0883(int loadOffset) { CheckExternalEvents(cs1, 0x0883); // F000:0883 mov AH,0x10 - AH = (byte)0x10; + AH = 0x10; // F000:0885 std DirectionFlag = true; // F000:0886 lods AL,byte ptr DS:[SI] @@ -125,7 +125,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_1350_F1350_94: CheckExternalEvents(cs1, 0x1350); // F000:1350 mov AL,0x80 - AL = (byte)0x80; + AL = 0x80; // F000:1352 std DirectionFlag = true; // F000:1353 stos byte ptr ES:[DI],AL @@ -140,16 +140,16 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x8013); // F000:8013 mov AX,0xD000 - AX = (ushort)0xD000; + AX = 0xD000; // F000:8016 stos word ptr ES:[DI],AX UInt16[ES, DI] = AX; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); // F000:8017 jmp near word ptr DS:[DI+2] - switch ((ushort)(UInt16[DS, (ushort)(DI + (sbyte)2)])) { + switch ((ushort)(UInt16[DS, (ushort)(DI + 2)])) { case 0xD000: goto label_F000_D000_FD000_114; default: - throw FailAsUntested($"Unknown near jump target 0x{((ushort)(UInt16[DS, (ushort)(DI + (sbyte)2)])):X4} at F000:8017"); + throw FailAsUntested($"Unknown near jump target 0x{((ushort)(UInt16[DS, (ushort)(DI + 2)])):X4} at F000:8017"); } label_F000_80C2_F80C2_69: CheckExternalEvents(cs1, 0x80C2); @@ -162,15 +162,15 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:80C5 mov DS,DX DS = DX; // F000:80C7 jmp near word ptr DS:[DI+2] - switch ((ushort)(UInt16[DS, (ushort)(DI + (sbyte)2)])) { + switch ((ushort)(UInt16[DS, (ushort)(DI + 2)])) { case 0x80FF: break; default: - throw FailAsUntested($"Unknown near jump target 0x{((ushort)(UInt16[DS, (ushort)(DI + (sbyte)2)])):X4} at F000:80C7"); + throw FailAsUntested($"Unknown near jump target 0x{((ushort)(UInt16[DS, (ushort)(DI + 2)])):X4} at F000:80C7"); } CheckExternalEvents(cs1, 0x80FF); // F000:80FF mov DI,0x2002 - DI = (ushort)0x2002; + DI = 0x2002; // F000:8102 mov ES,CX ES = CX; // F000:8104 cld @@ -190,11 +190,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_C200_FC200_55: CheckExternalEvents(cs1, 0xC200); // F000:C200 mov DX,0x1000 - DX = (ushort)0x1000; + DX = 0x1000; // F000:C203 mov ES,DX ES = DX; // F000:C205 mov DI,0xFFFF - DI = (ushort)0xFFFF; + DI = 0xFFFF; // F000:C208 movs byte ptr ES:[DI],byte ptr DS:[SI] UInt8[ES, DI] = UInt8[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); @@ -202,7 +202,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:C209 mov DS,DX DS = DX; // F000:C20B mov byte ptr DS:[DI],0xC2 - UInt8[DS, DI] = (byte)0xC2; + UInt8[DS, DI] = 0xC2; // F000:C20E jmp near word ptr DS:[DI] switch ((ushort)(UInt16[DS, DI])) { case 0x80C2: @@ -213,11 +213,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_D000_FD000_114: CheckExternalEvents(cs1, 0xD000); // F000:D000 mov DX,0 - DX = (ushort)0x0000; + DX = 0; // F000:D003 mov DS,DX DS = DX; // F000:D005 mov word ptr DS:[2],0x1234 - UInt16[DS, (ushort)0x0002] = (ushort)0x1234; + UInt16[DS, 2] = 0x1234; // F000:D00B hlt return Hlt(); } @@ -228,15 +228,15 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov CX,0xF000 - CX = (ushort)0xF000; + CX = 0xF000; // F000:0003 mov DS,CX DS = CX; // F000:0005 mov ES,CX ES = CX; // F000:0007 mov SI,0x1000 - SI = (ushort)0x1000; + SI = 0x1000; // F000:000A mov DI,0x2001 - DI = (ushort)0x2001; + DI = 0x2001; // F000:000D cmps byte ptr DS:[SI],byte ptr ES:[DI] Alu8.Sub(UInt8[DS, SI], UInt8[ES, DI]); SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); @@ -244,7 +244,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:000E pushf Stack.Push16(FlagRegister16); // F000:000F ret near - return NearRet((ushort)0x0000); + return NearRet(0); label_F000_FFF0_FFFF0_0: CheckExternalEvents(cs1, 0xFFF0); // F000:FFF0 jmp short 0 diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/sub.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/sub.spec.cs.txt index bdffb341d0..504ebe7657 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/sub.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/sub.spec.cs.txt @@ -31,287 +31,287 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0000_F0000_1: CheckExternalEvents(cs1, 0x0000); // F000:0000 mov SP,0x00A0 - SP = (ushort)0x00A0; + SP = 0x00A0; // F000:0003 mov AX,1 - AX = (ushort)0x0001; + AX = 1; // F000:0006 mov BX,2 - BX = (ushort)0x0002; + BX = 2; // F000:0009 sub AX,BX AX = Alu16.Sub(AX, BX); // F000:000B mov word ptr DS:[0],AX - UInt16[DS, (ushort)0x0000] = AX; + UInt16[DS, 0] = AX; // F000:000E mov word ptr DS:[2],BX - UInt16[DS, (ushort)0x0002] = BX; + UInt16[DS, 2] = BX; // F000:0012 pushf Stack.Push16(FlagRegister16); // F000:0013 mov DX,0xFFFF - DX = (ushort)0xFFFF; + DX = 0xFFFF; // F000:0016 mov word ptr DS:[4],0xFFFF - UInt16[DS, (ushort)0x0004] = (ushort)0xFFFF; + UInt16[DS, 4] = 0xFFFF; // F000:001C sub word ptr DS:[4],DX - UInt16[DS, (ushort)0x0004] = Alu16.Sub(UInt16[DS, (ushort)0x0004], DX); + UInt16[DS, 4] = Alu16.Sub(UInt16[DS, 4], DX); // F000:0020 mov word ptr DS:[6],DX - UInt16[DS, (ushort)0x0006] = DX; + UInt16[DS, 6] = DX; // F000:0024 pushf Stack.Push16(FlagRegister16); // F000:0025 mov CX,0xFFFF - CX = (ushort)0xFFFF; + CX = 0xFFFF; // F000:0028 mov word ptr DS:[8],1 - UInt16[DS, (ushort)0x0008] = (ushort)0x0001; + UInt16[DS, 8] = 1; // F000:002E sub CX,word ptr DS:[8] - CX = Alu16.Sub(CX, UInt16[DS, (ushort)0x0008]); + CX = Alu16.Sub(CX, UInt16[DS, 8]); // F000:0032 mov word ptr DS:[0x000A],CX - UInt16[DS, (ushort)0x000A] = CX; + UInt16[DS, 0x000A] = CX; // F000:0036 pushf Stack.Push16(FlagRegister16); // F000:0037 mov AX,0x8000 - AX = (ushort)0x8000; + AX = 0x8000; // F000:003A sub AX,1 - AX = Alu16.Sub(AX, unchecked((ushort)unchecked((short)(sbyte)1))); + AX = Alu16.Sub(AX, 1); // F000:003D mov word ptr DS:[0x000C],AX - UInt16[DS, (ushort)0x000C] = AX; + UInt16[DS, 0x000C] = AX; // F000:0040 pushf Stack.Push16(FlagRegister16); // F000:0041 mov BP,0x8000 - BP = (ushort)0x8000; + BP = 0x8000; // F000:0044 sub BP,-1 - BP = Alu16.Sub(BP, unchecked((ushort)unchecked((short)(sbyte)-1))); + BP = Alu16.Sub(BP, 0xFFFF); // F000:0047 mov word ptr DS:[0x000E],BP - UInt16[DS, (ushort)0x000E] = BP; + UInt16[DS, 0x000E] = BP; // F000:004B pushf Stack.Push16(FlagRegister16); // F000:004C mov SI,0x7F81 - SI = (ushort)0x7F81; + SI = 0x7F81; // F000:004F sub SI,0x903C - SI = Alu16.Sub(SI, (ushort)0x903C); + SI = Alu16.Sub(SI, 0x903C); // F000:0053 mov word ptr DS:[0x0010],SI - UInt16[DS, (ushort)0x0010] = SI; + UInt16[DS, 0x0010] = SI; // F000:0057 pushf Stack.Push16(FlagRegister16); // F000:0058 mov word ptr DS:[0x0012],0xEFC3 - UInt16[DS, (ushort)0x0012] = (ushort)0xEFC3; + UInt16[DS, 0x0012] = 0xEFC3; // F000:005E sub word ptr DS:[0x0012],0xC664 - UInt16[DS, (ushort)0x0012] = Alu16.Sub(UInt16[DS, (ushort)0x0012], (ushort)0xC664); + UInt16[DS, 0x0012] = Alu16.Sub(UInt16[DS, 0x0012], 0xC664); // F000:0064 pushf Stack.Push16(FlagRegister16); // F000:0065 mov word ptr DS:[0x0014],0xE933 - UInt16[DS, (ushort)0x0014] = (ushort)0xE933; + UInt16[DS, 0x0014] = 0xE933; // F000:006B sub word ptr DS:[0x0014],0x0064 - UInt16[DS, (ushort)0x0014] = Alu16.Sub(UInt16[DS, (ushort)0x0014], unchecked((ushort)unchecked((short)(sbyte)100))); + UInt16[DS, 0x0014] = Alu16.Sub(UInt16[DS, 0x0014], 0x0064); // F000:0070 pushf Stack.Push16(FlagRegister16); // F000:0071 mov byte ptr DS:[0x0016],1 - UInt8[DS, (ushort)0x0016] = (byte)0x01; + UInt8[DS, 0x0016] = 1; // F000:0076 sub byte ptr DS:[0x0016],2 - UInt8[DS, (ushort)0x0016] = Alu8.Sub(UInt8[DS, (ushort)0x0016], (byte)0x02); + UInt8[DS, 0x0016] = Alu8.Sub(UInt8[DS, 0x0016], 2); // F000:007B pushf Stack.Push16(FlagRegister16); // F000:007C mov DH,0xFF - DH = (byte)0xFF; + DH = 0xFF; // F000:007E sub DH,0xFF - DH = Alu8.Sub(DH, (byte)0xFF); + DH = Alu8.Sub(DH, 0xFF); // F000:0081 mov word ptr DS:[0x0017],DX - UInt16[DS, (ushort)0x0017] = DX; + UInt16[DS, 0x0017] = DX; // F000:0085 pushf Stack.Push16(FlagRegister16); // F000:0086 mov AL,0xFF - AL = (byte)0xFF; + AL = 0xFF; // F000:0088 sub AL,1 - AL = Alu8.Sub(AL, (byte)0x01); + AL = Alu8.Sub(AL, 1); // F000:008A mov word ptr DS:[0x0019],AX - UInt16[DS, (ushort)0x0019] = AX; + UInt16[DS, 0x0019] = AX; // F000:008D pushf Stack.Push16(FlagRegister16); // F000:008E mov byte ptr DS:[0x001B],0x80 - UInt8[DS, (ushort)0x001B] = (byte)0x80; + UInt8[DS, 0x001B] = 0x80; // F000:0093 mov CH,1 - CH = (byte)0x01; + CH = 1; // F000:0095 sub CH,byte ptr DS:[0x001B] - CH = Alu8.Sub(CH, UInt8[DS, (ushort)0x001B]); + CH = Alu8.Sub(CH, UInt8[DS, 0x001B]); // F000:0099 mov word ptr DS:[0x001C],CX - UInt16[DS, (ushort)0x001C] = CX; + UInt16[DS, 0x001C] = CX; // F000:009D pushf Stack.Push16(FlagRegister16); // F000:009E mov BL,0x80 - BL = (byte)0x80; + BL = 0x80; // F000:00A0 mov byte ptr DS:[0x001E],0x7F - UInt8[DS, (ushort)0x001E] = (byte)0x7F; + UInt8[DS, 0x001E] = 0x7F; // F000:00A5 sub byte ptr DS:[0x001E],BL - UInt8[DS, (ushort)0x001E] = Alu8.Sub(UInt8[DS, (ushort)0x001E], BL); + UInt8[DS, 0x001E] = Alu8.Sub(UInt8[DS, 0x001E], BL); // F000:00A9 mov word ptr DS:[0x001F],BX - UInt16[DS, (ushort)0x001F] = BX; + UInt16[DS, 0x001F] = BX; // F000:00AD pushf Stack.Push16(FlagRegister16); // F000:00AE mov AL,0xBC - AL = (byte)0xBC; + AL = 0xBC; // F000:00B0 mov AH,0x8E - AH = (byte)0x8E; + AH = 0x8E; // F000:00B2 sub AH,AL AH = Alu8.Sub(AH, AL); // F000:00B4 mov word ptr DS:[0x0021],AX - UInt16[DS, (ushort)0x0021] = AX; + UInt16[DS, 0x0021] = AX; // F000:00B7 pushf Stack.Push16(FlagRegister16); // F000:00B8 mov AX,1 - AX = (ushort)0x0001; + AX = 1; // F000:00BB mov BX,2 - BX = (ushort)0x0002; + BX = 2; // F000:00BE sbb BX,AX BX = Alu16.Sbb(BX, AX); // F000:00C0 mov word ptr DS:[0x0023],AX - UInt16[DS, (ushort)0x0023] = AX; + UInt16[DS, 0x0023] = AX; // F000:00C3 mov word ptr DS:[0x0025],BX - UInt16[DS, (ushort)0x0025] = BX; + UInt16[DS, 0x0025] = BX; // F000:00C7 pushf Stack.Push16(FlagRegister16); // F000:00C8 mov DX,0xFFFF - DX = (ushort)0xFFFF; + DX = 0xFFFF; // F000:00CB mov word ptr DS:[0x0027],0xFFFF - UInt16[DS, (ushort)0x0027] = (ushort)0xFFFF; + UInt16[DS, 0x0027] = 0xFFFF; // F000:00D1 sbb word ptr DS:[0x0027],DX - UInt16[DS, (ushort)0x0027] = Alu16.Sbb(UInt16[DS, (ushort)0x0027], DX); + UInt16[DS, 0x0027] = Alu16.Sbb(UInt16[DS, 0x0027], DX); // F000:00D5 mov word ptr DS:[0x0029],DX - UInt16[DS, (ushort)0x0029] = DX; + UInt16[DS, 0x0029] = DX; // F000:00D9 pushf Stack.Push16(FlagRegister16); // F000:00DA mov CX,0xFFFF - CX = (ushort)0xFFFF; + CX = 0xFFFF; // F000:00DD mov word ptr DS:[0x002B],1 - UInt16[DS, (ushort)0x002B] = (ushort)0x0001; + UInt16[DS, 0x002B] = 1; // F000:00E3 sbb CX,word ptr DS:[0x002B] - CX = Alu16.Sbb(CX, UInt16[DS, (ushort)0x002B]); + CX = Alu16.Sbb(CX, UInt16[DS, 0x002B]); // F000:00E7 mov word ptr DS:[0x002D],CX - UInt16[DS, (ushort)0x002D] = CX; + UInt16[DS, 0x002D] = CX; // F000:00EB pushf Stack.Push16(FlagRegister16); // F000:00EC mov AX,0x8000 - AX = (ushort)0x8000; + AX = 0x8000; // F000:00EF sbb AX,1 - AX = Alu16.Sbb(AX, unchecked((ushort)unchecked((short)(sbyte)1))); + AX = Alu16.Sbb(AX, 1); // F000:00F2 mov word ptr DS:[0x002F],AX - UInt16[DS, (ushort)0x002F] = AX; + UInt16[DS, 0x002F] = AX; // F000:00F5 pushf Stack.Push16(FlagRegister16); // F000:00F6 mov BP,0x8000 - BP = (ushort)0x8000; + BP = 0x8000; // F000:00F9 sbb BP,-1 - BP = Alu16.Sbb(BP, unchecked((ushort)unchecked((short)(sbyte)-1))); + BP = Alu16.Sbb(BP, 0xFFFF); // F000:00FC mov word ptr DS:[0x0031],BP - UInt16[DS, (ushort)0x0031] = BP; + UInt16[DS, 0x0031] = BP; // F000:0100 pushf Stack.Push16(FlagRegister16); // F000:0101 mov SI,0x52C3 - SI = (ushort)0x52C3; + SI = 0x52C3; // F000:0104 sbb SI,0xE248 - SI = Alu16.Sbb(SI, (ushort)0xE248); + SI = Alu16.Sbb(SI, 0xE248); // F000:0108 mov word ptr DS:[0x0033],SI - UInt16[DS, (ushort)0x0033] = SI; + UInt16[DS, 0x0033] = SI; // F000:010C pushf Stack.Push16(FlagRegister16); // F000:010D mov word ptr DS:[0x0035],0xE74C - UInt16[DS, (ushort)0x0035] = (ushort)0xE74C; + UInt16[DS, 0x0035] = 0xE74C; // F000:0113 sbb word ptr DS:[0x0035],0x22C0 - UInt16[DS, (ushort)0x0035] = Alu16.Sbb(UInt16[DS, (ushort)0x0035], (ushort)0x22C0); + UInt16[DS, 0x0035] = Alu16.Sbb(UInt16[DS, 0x0035], 0x22C0); // F000:0119 pushf Stack.Push16(FlagRegister16); // F000:011A mov word ptr DS:[0x0037],0xFD85 - UInt16[DS, (ushort)0x0037] = (ushort)0xFD85; + UInt16[DS, 0x0037] = 0xFD85; // F000:0120 sbb word ptr DS:[0x0037],-11 - UInt16[DS, (ushort)0x0037] = Alu16.Sbb(UInt16[DS, (ushort)0x0037], unchecked((ushort)unchecked((short)(sbyte)-11))); + UInt16[DS, 0x0037] = Alu16.Sbb(UInt16[DS, 0x0037], 0xFFF5); // F000:0125 pushf Stack.Push16(FlagRegister16); // F000:0126 mov byte ptr DS:[0x0039],1 - UInt8[DS, (ushort)0x0039] = (byte)0x01; + UInt8[DS, 0x0039] = 1; // F000:012B sbb byte ptr DS:[0x0039],2 - UInt8[DS, (ushort)0x0039] = Alu8.Sbb(UInt8[DS, (ushort)0x0039], (byte)0x02); + UInt8[DS, 0x0039] = Alu8.Sbb(UInt8[DS, 0x0039], 2); // F000:0130 pushf Stack.Push16(FlagRegister16); // F000:0131 mov DH,0xFF - DH = (byte)0xFF; + DH = 0xFF; // F000:0133 sbb DH,0xFF - DH = Alu8.Sbb(DH, (byte)0xFF); + DH = Alu8.Sbb(DH, 0xFF); // F000:0136 mov word ptr DS:[0x003A],DX - UInt16[DS, (ushort)0x003A] = DX; + UInt16[DS, 0x003A] = DX; // F000:013A pushf Stack.Push16(FlagRegister16); // F000:013B mov AL,0xFF - AL = (byte)0xFF; + AL = 0xFF; // F000:013D sbb AL,1 - AL = Alu8.Sbb(AL, (byte)0x01); + AL = Alu8.Sbb(AL, 1); // F000:013F mov word ptr DS:[0x003C],AX - UInt16[DS, (ushort)0x003C] = AX; + UInt16[DS, 0x003C] = AX; // F000:0142 pushf Stack.Push16(FlagRegister16); // F000:0143 mov byte ptr DS:[0x003E],0x80 - UInt8[DS, (ushort)0x003E] = (byte)0x80; + UInt8[DS, 0x003E] = 0x80; // F000:0148 mov CH,1 - CH = (byte)0x01; + CH = 1; // F000:014A sbb CH,byte ptr DS:[0x003E] - CH = Alu8.Sbb(CH, UInt8[DS, (ushort)0x003E]); + CH = Alu8.Sbb(CH, UInt8[DS, 0x003E]); // F000:014E mov word ptr DS:[0x003F],CX - UInt16[DS, (ushort)0x003F] = CX; + UInt16[DS, 0x003F] = CX; // F000:0152 pushf Stack.Push16(FlagRegister16); // F000:0153 mov BL,0x80 - BL = (byte)0x80; + BL = 0x80; // F000:0155 mov byte ptr DS:[0x0041],0xFF - UInt8[DS, (ushort)0x0041] = (byte)0xFF; + UInt8[DS, 0x0041] = 0xFF; // F000:015A sbb byte ptr DS:[0x0041],BL - UInt8[DS, (ushort)0x0041] = Alu8.Sbb(UInt8[DS, (ushort)0x0041], BL); + UInt8[DS, 0x0041] = Alu8.Sbb(UInt8[DS, 0x0041], BL); // F000:015E mov word ptr DS:[0x0042],BX - UInt16[DS, (ushort)0x0042] = BX; + UInt16[DS, 0x0042] = BX; // F000:0162 pushf Stack.Push16(FlagRegister16); // F000:0163 mov AL,0xB9 - AL = (byte)0xB9; + AL = 0xB9; // F000:0165 mov AH,0xD3 - AH = (byte)0xD3; + AH = 0xD3; // F000:0167 sbb AH,AL AH = Alu8.Sbb(AH, AL); // F000:0169 mov word ptr DS:[0x0044],AX - UInt16[DS, (ushort)0x0044] = AX; + UInt16[DS, 0x0044] = AX; // F000:016C pushf Stack.Push16(FlagRegister16); // F000:016D mov DI,0 - DI = (ushort)0x0000; + DI = 0; // F000:0170 dec DI DI = Alu16.Dec(DI); // F000:0171 mov word ptr DS:[0x0046],DI - UInt16[DS, (ushort)0x0046] = DI; + UInt16[DS, 0x0046] = DI; // F000:0175 pushf Stack.Push16(FlagRegister16); // F000:0176 mov BP,0x8000 - BP = (ushort)0x8000; + BP = 0x8000; // F000:0179 dec BP BP = Alu16.Dec(BP); // F000:017B mov word ptr DS:[0x0048],BP - UInt16[DS, (ushort)0x0048] = BP; + UInt16[DS, 0x0048] = BP; // F000:017F pushf Stack.Push16(FlagRegister16); // F000:0180 mov word ptr DS:[0x004A],0x7412 - UInt16[DS, (ushort)0x004A] = (ushort)0x7412; + UInt16[DS, 0x004A] = 0x7412; // F000:0186 dec word ptr DS:[0x004A] - UInt16[DS, (ushort)0x004A] = Alu16.Dec(UInt16[DS, (ushort)0x004A]); + UInt16[DS, 0x004A] = Alu16.Dec(UInt16[DS, 0x004A]); // F000:018A pushf Stack.Push16(FlagRegister16); // F000:018B mov DL,0 - DL = (byte)0x00; + DL = 0; // F000:018D dec DL DL = Alu8.Dec(DL); // F000:018F mov word ptr DS:[0x004C],DX - UInt16[DS, (ushort)0x004C] = DX; + UInt16[DS, 0x004C] = DX; // F000:0193 pushf Stack.Push16(FlagRegister16); // F000:0194 mov byte ptr DS:[0x004D],0x80 - UInt8[DS, (ushort)0x004D] = (byte)0x80; + UInt8[DS, 0x004D] = 0x80; // F000:0199 dec byte ptr DS:[0x004D] - UInt8[DS, (ushort)0x004D] = Alu8.Dec(UInt8[DS, (ushort)0x004D]); + UInt8[DS, 0x004D] = Alu8.Dec(UInt8[DS, 0x004D]); // F000:019D pushf Stack.Push16(FlagRegister16); // F000:019E mov byte ptr DS:[0x004E],0xB5 - UInt8[DS, (ushort)0x004E] = (byte)0xB5; + UInt8[DS, 0x004E] = 0xB5; // F000:01A3 dec byte ptr DS:[0x004E] - UInt8[DS, (ushort)0x004E] = Alu8.Dec(UInt8[DS, (ushort)0x004E]); + UInt8[DS, 0x004E] = Alu8.Dec(UInt8[DS, 0x004E]); // F000:01A7 pushf Stack.Push16(FlagRegister16); // F000:01A8 hlt diff --git a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/test386.failport.spec.cs.txt b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/test386.failport.spec.cs.txt index 73b307d906..3a1b4a3025 100644 --- a/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/test386.failport.spec.cs.txt +++ b/tests/Spice86.Tests/Resources/cpuTests/res/GeneratedCode/test386.failport.spec.cs.txt @@ -35,29 +35,29 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_0633_F0633(int loadOffset) { CheckExternalEvents(cs1, 0x0633); // F000:0633 cmp SP,-7 - Alu16.Sub(SP, unchecked((ushort)unchecked((short)(sbyte)-7))); + Alu16.Sub(SP, 0xFFF9); // F000:0636 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x063A); // F000:063A cmp word ptr SS:[0xFFFB],0xF000 - Alu16.Sub(UInt16[SS, (ushort)0xFFFB], (ushort)0xF000); + Alu16.Sub(UInt16[SS, 0xFFFB], 0xF000); // F000:0641 cmp word ptr SS:[0xFFF9],0x062E - Alu16.Sub(UInt16[SS, (ushort)0xFFF9], (ushort)0x062E); + Alu16.Sub(UInt16[SS, 0xFFF9], 0x062E); // F000:0648 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x064C); // F000:064C mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:064F mov DS,AX DS = AX; // F000:0651 mov word ptr DS:[0x0018],0x15C7 - UInt16[DS, (ushort)0x0018] = (ushort)0x15C7; + UInt16[DS, 0x0018] = 0x15C7; // F000:0657 mov word ptr DS:[0x001A],0xF000 - UInt16[DS, (ushort)0x001A] = (ushort)0xF000; + UInt16[DS, 0x001A] = 0xF000; // F000:065D xor AX,AX AX = Alu16.Xor(AX, AX); // F000:065F mov AX,CS @@ -81,31 +81,31 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0676); // F000:0676 mov word ptr DS:[0],0xBEEF - UInt16[DS, (ushort)0x0000] = (ushort)0xBEEF; + UInt16[DS, 0] = 0xBEEF; // F000:067C mov word ptr DS:[0],CS - UInt16[DS, (ushort)0x0000] = CS; + UInt16[DS, 0] = CS; // F000:0680 cmp word ptr DS:[0],DX - Alu16.Sub(UInt16[DS, (ushort)0x0000], DX); + Alu16.Sub(UInt16[DS, 0], DX); // F000:0684 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0688); // F000:0688 mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:068B mov DS,AX DS = AX; // F000:068D mov word ptr DS:[0x0018],0x06A8 - UInt16[DS, (ushort)0x0018] = (ushort)0x06A8; + UInt16[DS, 0x0018] = 0x06A8; // F000:0693 mov word ptr DS:[0x001A],0xF000 - UInt16[DS, (ushort)0x001A] = (ushort)0xF000; + UInt16[DS, 0x001A] = 0xF000; // F000:0699 mov AX,0x1000 - AX = (ushort)0x1000; + AX = 0x1000; // F000:069C mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:069E mov SP,0xFFFF - SP = (ushort)0xFFFF; + SP = 0xFFFF; // F000:06A1 invalid try { throw new Spice86.Core.Emulator.CPU.Exceptions.CpuInvalidOpcodeException("Attempted to write to CS register with MOV instruction"); @@ -124,55 +124,55 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_06A8_F06A8(int loadOffset) { CheckExternalEvents(cs1, 0x06A8); // F000:06A8 cmp SP,-7 - Alu16.Sub(SP, unchecked((ushort)unchecked((short)(sbyte)-7))); + Alu16.Sub(SP, 0xFFF9); // F000:06AB jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x06AF); // F000:06AF cmp word ptr SS:[0xFFFB],0xF000 - Alu16.Sub(UInt16[SS, (ushort)0xFFFB], (ushort)0xF000); + Alu16.Sub(UInt16[SS, 0xFFFB], 0xF000); // F000:06B6 cmp word ptr SS:[0xFFF9],0x06A1 - Alu16.Sub(UInt16[SS, (ushort)0xFFF9], (ushort)0x06A1); + Alu16.Sub(UInt16[SS, 0xFFF9], 0x06A1); // F000:06BD jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x06C1); // F000:06C1 mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:06C4 mov DS,AX DS = AX; // F000:06C6 mov word ptr DS:[0x0018],0x15C7 - UInt16[DS, (ushort)0x0018] = (ushort)0x15C7; + UInt16[DS, 0x0018] = 0x15C7; // F000:06CC mov word ptr DS:[0x001A],0xF000 - UInt16[DS, (ushort)0x001A] = (ushort)0xF000; + UInt16[DS, 0x001A] = 0xF000; // F000:06D2 mov DX,0x2100 - DX = (ushort)0x2100; + DX = 0x2100; // F000:06D5 mov DS,DX DS = DX; // F000:06D7 mov DX,0x6100 - DX = (ushort)0x6100; + DX = 0x6100; // F000:06DA mov ES,DX ES = DX; // F000:06DC mov AL,4 - AL = (byte)0x04; + AL = 4; // F000:06DE mov DX,0x0999 - DX = (ushort)0x0999; + DX = 0x0999; // F000:06E1 out DX,AL Machine.IoPortDispatcher.WriteByte(DX, AL); // F000:06E2 cld DirectionFlag = false; // F000:06E3 mov EDI,0x0001FFFF - EDI = 0x0001FFFFu; + EDI = 0x0001FFFF; // F000:06E9 mov EBX,0x0000FFFF - EBX = 0x0000FFFFu; + EBX = 0x0000FFFF; // F000:06EF mov AL,0 - AL = (byte)0x00; + AL = 0; // F000:06F1 mov byte ptr ES:[EBX],AL UInt8[ES, EBX] = AL; // F000:06F5 mov AL,0x78 - AL = (byte)0x78; + AL = 0x78; // F000:06F7 stos byte ptr ES:[DI],AL UInt8[ES, DI] = AL; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); @@ -184,24 +184,24 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0700); // F000:0700 cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:0707 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x070B); // F000:070B mov ESI,0x0001FFFF - ESI = 0x0001FFFFu; + ESI = 0x0001FFFF; // F000:0711 mov EDI,0x0001FFFF - EDI = 0x0001FFFFu; + EDI = 0x0001FFFF; // F000:0717 mov EBX,0x0000FFFF - EBX = 0x0000FFFFu; + EBX = 0x0000FFFF; // F000:071D mov byte ptr DS:[EBX],AL UInt8[DS, EBX] = AL; // F000:0721 mov byte ptr ES:[EBX],AL UInt8[ES, EBX] = AL; // F000:0725 cmp AL,0 - Alu8.Sub(AL, (byte)0x00); + Alu8.Sub(AL, 0); // F000:0727 je near 0x15C7 if (ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -217,27 +217,27 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0730); // F000:0730 cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:0737 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x073B); // F000:073B cmp ESI,0x00010000 - Alu32.Sub(ESI, 0x00010000u); + Alu32.Sub(ESI, 0x00010000); // F000:0742 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0746); // F000:0746 mov EDI,0x0001FFFF - EDI = 0x0001FFFFu; + EDI = 0x0001FFFF; // F000:074C mov AL,0x78 - AL = (byte)0x78; + AL = 0x78; // F000:074E mov byte ptr ES:[EBX],AL UInt8[ES, EBX] = AL; // F000:0752 cmp AL,0 - Alu8.Sub(AL, (byte)0x00); + Alu8.Sub(AL, 0); // F000:0754 scas AL,byte ptr ES:[DI] Alu8.Sub(AL, UInt8[ES, DI]); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); @@ -247,22 +247,22 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0759); // F000:0759 cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:0760 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0764); // F000:0764 mov ESI,0x0001FFFF - ESI = 0x0001FFFFu; + ESI = 0x0001FFFF; // F000:076A mov EDI,0x0001FFFF - EDI = 0x0001FFFFu; + EDI = 0x0001FFFF; // F000:0770 mov AL,0x78 - AL = (byte)0x78; + AL = 0x78; // F000:0772 mov byte ptr DS:[EBX],AL UInt8[DS, EBX] = AL; // F000:0776 mov AL,0 - AL = (byte)0x00; + AL = 0; // F000:0778 mov byte ptr ES:[EBX],AL UInt8[ES, EBX] = AL; // F000:077C movs byte ptr ES:[DI],byte ptr DS:[SI] @@ -270,7 +270,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); // F000:077D mov AL,0x78 - AL = (byte)0x78; + AL = 0x78; // F000:077F cmp byte ptr ES:[EBX],AL Alu8.Sub(UInt8[ES, EBX], AL); // F000:0783 jne near 0x15C7 @@ -279,23 +279,23 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0787); // F000:0787 cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:078E jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0792); // F000:0792 cmp ESI,0x00010000 - Alu32.Sub(ESI, 0x00010000u); + Alu32.Sub(ESI, 0x00010000); // F000:0799 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x079D); // F000:079D mov ESI,0x0001FFFF - ESI = 0x0001FFFFu; + ESI = 0x0001FFFF; // F000:07A3 mov AL,0x78 - AL = (byte)0x78; + AL = 0x78; // F000:07A5 mov byte ptr ES:[EBX],AL UInt8[ES, EBX] = AL; // F000:07A9 xor EAX,EAX @@ -304,14 +304,14 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { AL = UInt8[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); // F000:07AD cmp AL,0x78 - Alu8.Sub(AL, (byte)0x78); + Alu8.Sub(AL, 0x78); // F000:07AF jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x07B3); // F000:07B3 cmp ESI,0x00010000 - Alu32.Sub(ESI, 0x00010000u); + Alu32.Sub(ESI, 0x00010000); // F000:07BA jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -320,15 +320,15 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:07BE cld DirectionFlag = false; // F000:07BF mov EDI,0x0001FFFE - EDI = 0x0001FFFEu; + EDI = 0x0001FFFE; // F000:07C5 mov EBX,0x0000FFFE - EBX = 0x0000FFFEu; + EBX = 0x0000FFFE; // F000:07CB mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:07CE mov word ptr ES:[EBX],AX UInt16[ES, EBX] = AX; // F000:07D2 mov AX,0x5678 - AX = (ushort)0x5678; + AX = 0x5678; // F000:07D5 stos word ptr ES:[DI],AX UInt16[ES, DI] = AX; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); @@ -340,24 +340,24 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x07DE); // F000:07DE cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:07E5 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x07E9); // F000:07E9 mov ESI,0x0001FFFE - ESI = 0x0001FFFEu; + ESI = 0x0001FFFE; // F000:07EF mov EDI,0x0001FFFE - EDI = 0x0001FFFEu; + EDI = 0x0001FFFE; // F000:07F5 mov EBX,0x0000FFFE - EBX = 0x0000FFFEu; + EBX = 0x0000FFFE; // F000:07FB mov word ptr DS:[EBX],AX UInt16[DS, EBX] = AX; // F000:07FF mov word ptr ES:[EBX],AX UInt16[ES, EBX] = AX; // F000:0803 cmp AX,0 - Alu16.Sub(AX, unchecked((ushort)unchecked((short)(sbyte)0))); + Alu16.Sub(AX, 0); // F000:0806 je near 0x15C7 if (ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -373,27 +373,27 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x080F); // F000:080F cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:0816 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x081A); // F000:081A cmp ESI,0x00010000 - Alu32.Sub(ESI, 0x00010000u); + Alu32.Sub(ESI, 0x00010000); // F000:0821 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0825); // F000:0825 mov EDI,0x0001FFFE - EDI = 0x0001FFFEu; + EDI = 0x0001FFFE; // F000:082B mov AX,0x5678 - AX = (ushort)0x5678; + AX = 0x5678; // F000:082E mov word ptr ES:[EBX],AX UInt16[ES, EBX] = AX; // F000:0832 cmp AX,0 - Alu16.Sub(AX, unchecked((ushort)unchecked((short)(sbyte)0))); + Alu16.Sub(AX, 0); // F000:0835 scas AX,word ptr ES:[DI] Alu16.Sub(AX, UInt16[ES, DI]); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); @@ -403,22 +403,22 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x083A); // F000:083A cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:0841 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0845); // F000:0845 mov ESI,0x0001FFFE - ESI = 0x0001FFFEu; + ESI = 0x0001FFFE; // F000:084B mov EDI,0x0001FFFE - EDI = 0x0001FFFEu; + EDI = 0x0001FFFE; // F000:0851 mov AX,0x5678 - AX = (ushort)0x5678; + AX = 0x5678; // F000:0854 mov word ptr DS:[EBX],AX UInt16[DS, EBX] = AX; // F000:0858 mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:085B mov word ptr ES:[EBX],AX UInt16[ES, EBX] = AX; // F000:085F movs word ptr ES:[DI],word ptr DS:[SI] @@ -426,7 +426,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction16))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); // F000:0860 mov AX,0x5678 - AX = (ushort)0x5678; + AX = 0x5678; // F000:0863 cmp word ptr ES:[EBX],AX Alu16.Sub(UInt16[ES, EBX], AX); // F000:0867 jne near 0x15C7 @@ -435,23 +435,23 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x086B); // F000:086B cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:0872 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0876); // F000:0876 cmp ESI,0x00010000 - Alu32.Sub(ESI, 0x00010000u); + Alu32.Sub(ESI, 0x00010000); // F000:087D jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0881); // F000:0881 mov ESI,0x0001FFFE - ESI = 0x0001FFFEu; + ESI = 0x0001FFFE; // F000:0887 mov AX,0x5678 - AX = (ushort)0x5678; + AX = 0x5678; // F000:088A mov word ptr ES:[EBX],AX UInt16[ES, EBX] = AX; // F000:088E xor EAX,EAX @@ -460,14 +460,14 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { AX = UInt16[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction16))); // F000:0892 cmp AX,0x5678 - Alu16.Sub(AX, (ushort)0x5678); + Alu16.Sub(AX, 0x5678); // F000:0895 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0899); // F000:0899 cmp ESI,0x00010000 - Alu32.Sub(ESI, 0x00010000u); + Alu32.Sub(ESI, 0x00010000); // F000:08A0 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -476,15 +476,15 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:08A4 cld DirectionFlag = false; // F000:08A5 mov EDI,0x0001FFFC - EDI = 0x0001FFFCu; + EDI = 0x0001FFFC; // F000:08AB mov EBX,0x0000FFFC - EBX = 0x0000FFFCu; + EBX = 0x0000FFFC; // F000:08B1 mov EAX,0 - EAX = 0x00000000u; + EAX = 0; // F000:08B7 mov dword ptr ES:[EBX],EAX UInt32[ES, EBX] = EAX; // F000:08BC mov EAX,0x12345678 - EAX = 0x12345678u; + EAX = 0x12345678; // F000:08C2 stos dword ptr ES:[DI],EAX UInt32[ES, DI] = EAX; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction32))); @@ -496,24 +496,24 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x08CD); // F000:08CD cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:08D4 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x08D8); // F000:08D8 mov ESI,0x0001FFFC - ESI = 0x0001FFFCu; + ESI = 0x0001FFFC; // F000:08DE mov EDI,0x0001FFFC - EDI = 0x0001FFFCu; + EDI = 0x0001FFFC; // F000:08E4 mov EBX,0x0000FFFC - EBX = 0x0000FFFCu; + EBX = 0x0000FFFC; // F000:08EA mov dword ptr DS:[EBX],EAX UInt32[DS, EBX] = EAX; // F000:08EF mov dword ptr ES:[EBX],EAX UInt32[ES, EBX] = EAX; // F000:08F4 cmp EAX,0 - Alu32.Sub(EAX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(EAX, 0); // F000:08F8 je near 0x15C7 if (ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -529,27 +529,27 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0902); // F000:0902 cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:0909 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x090D); // F000:090D cmp ESI,0x00010000 - Alu32.Sub(ESI, 0x00010000u); + Alu32.Sub(ESI, 0x00010000); // F000:0914 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0918); // F000:0918 mov EDI,0x0001FFFC - EDI = 0x0001FFFCu; + EDI = 0x0001FFFC; // F000:091E mov EAX,0x12345678 - EAX = 0x12345678u; + EAX = 0x12345678; // F000:0924 mov dword ptr ES:[EBX],EAX UInt32[ES, EBX] = EAX; // F000:0929 cmp EAX,0 - Alu32.Sub(EAX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(EAX, 0); // F000:092D scas EAX,dword ptr ES:[DI] Alu32.Sub(EAX, UInt32[ES, DI]); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction32))); @@ -559,22 +559,22 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0933); // F000:0933 cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:093A jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x093E); // F000:093E mov ESI,0x0001FFFC - ESI = 0x0001FFFCu; + ESI = 0x0001FFFC; // F000:0944 mov EDI,0x0001FFFC - EDI = 0x0001FFFCu; + EDI = 0x0001FFFC; // F000:094A mov EAX,0x12345678 - EAX = 0x12345678u; + EAX = 0x12345678; // F000:0950 mov dword ptr DS:[EBX],EAX UInt32[DS, EBX] = EAX; // F000:0955 mov EAX,0 - EAX = 0x00000000u; + EAX = 0; // F000:095B mov dword ptr ES:[EBX],EAX UInt32[ES, EBX] = EAX; // F000:0960 movs dword ptr ES:[DI],dword ptr DS:[SI] @@ -582,7 +582,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction32))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction32))); // F000:0962 mov EAX,0x12345678 - EAX = 0x12345678u; + EAX = 0x12345678; // F000:0968 cmp dword ptr ES:[EBX],EAX Alu32.Sub(UInt32[ES, EBX], EAX); // F000:096D jne near 0x15C7 @@ -591,23 +591,23 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0971); // F000:0971 cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:0978 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x097C); // F000:097C cmp ESI,0x00010000 - Alu32.Sub(ESI, 0x00010000u); + Alu32.Sub(ESI, 0x00010000); // F000:0983 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0987); // F000:0987 mov ESI,0x0001FFFC - ESI = 0x0001FFFCu; + ESI = 0x0001FFFC; // F000:098D mov EAX,0x12345678 - EAX = 0x12345678u; + EAX = 0x12345678; // F000:0993 mov dword ptr ES:[EBX],EAX UInt32[ES, EBX] = EAX; // F000:0998 xor EAX,EAX @@ -616,14 +616,14 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { EAX = UInt32[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction32))); // F000:099D cmp EAX,0x12345678 - Alu32.Sub(EAX, 0x12345678u); + Alu32.Sub(EAX, 0x12345678); // F000:09A3 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x09A7); // F000:09A7 cmp ESI,0x00010000 - Alu32.Sub(ESI, 0x00010000u); + Alu32.Sub(ESI, 0x00010000); // F000:09AE jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -632,15 +632,15 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:09B2 std DirectionFlag = true; // F000:09B3 mov EDI,0x00010000 - EDI = 0x00010000u; + EDI = 0x00010000; // F000:09B9 mov EBX,0 - EBX = 0x00000000u; + EBX = 0; // F000:09BF mov AL,0 - AL = (byte)0x00; + AL = 0; // F000:09C1 mov byte ptr ES:[EBX],AL UInt8[ES, EBX] = AL; // F000:09C5 mov AL,0x78 - AL = (byte)0x78; + AL = 0x78; // F000:09C7 stos byte ptr ES:[DI],AL UInt8[ES, DI] = AL; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); @@ -652,24 +652,24 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x09D0); // F000:09D0 cmp EDI,0x0001FFFF - Alu32.Sub(EDI, 0x0001FFFFu); + Alu32.Sub(EDI, 0x0001FFFF); // F000:09D7 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x09DB); // F000:09DB mov ESI,0x00010000 - ESI = 0x00010000u; + ESI = 0x00010000; // F000:09E1 mov EDI,0x00010000 - EDI = 0x00010000u; + EDI = 0x00010000; // F000:09E7 mov EBX,0 - EBX = 0x00000000u; + EBX = 0; // F000:09ED mov byte ptr DS:[EBX],AL UInt8[DS, EBX] = AL; // F000:09F1 mov byte ptr ES:[EBX],AL UInt8[ES, EBX] = AL; // F000:09F5 cmp AL,0 - Alu8.Sub(AL, (byte)0x00); + Alu8.Sub(AL, 0); // F000:09F7 je near 0x15C7 if (ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -685,27 +685,27 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0A00); // F000:0A00 cmp EDI,0x0001FFFF - Alu32.Sub(EDI, 0x0001FFFFu); + Alu32.Sub(EDI, 0x0001FFFF); // F000:0A07 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0A0B); // F000:0A0B cmp ESI,0x0001FFFF - Alu32.Sub(ESI, 0x0001FFFFu); + Alu32.Sub(ESI, 0x0001FFFF); // F000:0A12 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0A16); // F000:0A16 mov EDI,0x00010000 - EDI = 0x00010000u; + EDI = 0x00010000; // F000:0A1C mov AL,0x78 - AL = (byte)0x78; + AL = 0x78; // F000:0A1E mov byte ptr ES:[EBX],AL UInt8[ES, EBX] = AL; // F000:0A22 cmp AL,0 - Alu8.Sub(AL, (byte)0x00); + Alu8.Sub(AL, 0); // F000:0A24 scas AL,byte ptr ES:[DI] Alu8.Sub(AL, UInt8[ES, DI]); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); @@ -715,22 +715,22 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0A29); // F000:0A29 cmp EDI,0x0001FFFF - Alu32.Sub(EDI, 0x0001FFFFu); + Alu32.Sub(EDI, 0x0001FFFF); // F000:0A30 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0A34); // F000:0A34 mov ESI,0x00010000 - ESI = 0x00010000u; + ESI = 0x00010000; // F000:0A3A mov EDI,0x00010000 - EDI = 0x00010000u; + EDI = 0x00010000; // F000:0A40 mov AL,0x78 - AL = (byte)0x78; + AL = 0x78; // F000:0A42 mov byte ptr DS:[EBX],AL UInt8[DS, EBX] = AL; // F000:0A46 mov AL,0 - AL = (byte)0x00; + AL = 0; // F000:0A48 mov byte ptr ES:[EBX],AL UInt8[ES, EBX] = AL; // F000:0A4C movs byte ptr ES:[DI],byte ptr DS:[SI] @@ -738,7 +738,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); // F000:0A4D mov AL,0x78 - AL = (byte)0x78; + AL = 0x78; // F000:0A4F cmp byte ptr ES:[EBX],AL Alu8.Sub(UInt8[ES, EBX], AL); // F000:0A53 jne near 0x15C7 @@ -747,23 +747,23 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0A57); // F000:0A57 cmp EDI,0x0001FFFF - Alu32.Sub(EDI, 0x0001FFFFu); + Alu32.Sub(EDI, 0x0001FFFF); // F000:0A5E jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0A62); // F000:0A62 cmp ESI,0x0001FFFF - Alu32.Sub(ESI, 0x0001FFFFu); + Alu32.Sub(ESI, 0x0001FFFF); // F000:0A69 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0A6D); // F000:0A6D mov ESI,0x00010000 - ESI = 0x00010000u; + ESI = 0x00010000; // F000:0A73 mov AL,0x78 - AL = (byte)0x78; + AL = 0x78; // F000:0A75 mov byte ptr ES:[EBX],AL UInt8[ES, EBX] = AL; // F000:0A79 xor EAX,EAX @@ -772,14 +772,14 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { AL = UInt8[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); // F000:0A7D cmp AL,0x78 - Alu8.Sub(AL, (byte)0x78); + Alu8.Sub(AL, 0x78); // F000:0A7F jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0A83); // F000:0A83 cmp ESI,0x0001FFFF - Alu32.Sub(ESI, 0x0001FFFFu); + Alu32.Sub(ESI, 0x0001FFFF); // F000:0A8A jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -788,15 +788,15 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:0A8E std DirectionFlag = true; // F000:0A8F mov EDI,0x00010000 - EDI = 0x00010000u; + EDI = 0x00010000; // F000:0A95 mov EBX,0 - EBX = 0x00000000u; + EBX = 0; // F000:0A9B mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:0A9E mov word ptr ES:[EBX],AX UInt16[ES, EBX] = AX; // F000:0AA2 mov AX,0x5678 - AX = (ushort)0x5678; + AX = 0x5678; // F000:0AA5 stos word ptr ES:[DI],AX UInt16[ES, DI] = AX; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); @@ -808,24 +808,24 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0AAE); // F000:0AAE cmp EDI,0x0001FFFE - Alu32.Sub(EDI, 0x0001FFFEu); + Alu32.Sub(EDI, 0x0001FFFE); // F000:0AB5 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0AB9); // F000:0AB9 mov ESI,0x00010000 - ESI = 0x00010000u; + ESI = 0x00010000; // F000:0ABF mov EDI,0x00010000 - EDI = 0x00010000u; + EDI = 0x00010000; // F000:0AC5 mov EBX,0 - EBX = 0x00000000u; + EBX = 0; // F000:0ACB mov word ptr DS:[EBX],AX UInt16[DS, EBX] = AX; // F000:0ACF mov word ptr ES:[EBX],AX UInt16[ES, EBX] = AX; // F000:0AD3 cmp AX,0 - Alu16.Sub(AX, unchecked((ushort)unchecked((short)(sbyte)0))); + Alu16.Sub(AX, 0); // F000:0AD6 je near 0x15C7 if (ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -841,27 +841,27 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0ADF); // F000:0ADF cmp EDI,0x0001FFFE - Alu32.Sub(EDI, 0x0001FFFEu); + Alu32.Sub(EDI, 0x0001FFFE); // F000:0AE6 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0AEA); // F000:0AEA cmp ESI,0x0001FFFE - Alu32.Sub(ESI, 0x0001FFFEu); + Alu32.Sub(ESI, 0x0001FFFE); // F000:0AF1 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0AF5); // F000:0AF5 mov EDI,0x00010000 - EDI = 0x00010000u; + EDI = 0x00010000; // F000:0AFB mov AX,0x5678 - AX = (ushort)0x5678; + AX = 0x5678; // F000:0AFE mov word ptr ES:[EBX],AX UInt16[ES, EBX] = AX; // F000:0B02 cmp AX,0 - Alu16.Sub(AX, unchecked((ushort)unchecked((short)(sbyte)0))); + Alu16.Sub(AX, 0); // F000:0B05 scas AX,word ptr ES:[DI] Alu16.Sub(AX, UInt16[ES, DI]); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); @@ -871,22 +871,22 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0B0A); // F000:0B0A cmp EDI,0x0001FFFE - Alu32.Sub(EDI, 0x0001FFFEu); + Alu32.Sub(EDI, 0x0001FFFE); // F000:0B11 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0B15); // F000:0B15 mov ESI,0x00010000 - ESI = 0x00010000u; + ESI = 0x00010000; // F000:0B1B mov EDI,0x00010000 - EDI = 0x00010000u; + EDI = 0x00010000; // F000:0B21 mov AX,0x5678 - AX = (ushort)0x5678; + AX = 0x5678; // F000:0B24 mov word ptr DS:[EBX],AX UInt16[DS, EBX] = AX; // F000:0B28 mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:0B2B mov word ptr ES:[EBX],AX UInt16[ES, EBX] = AX; // F000:0B2F movs word ptr ES:[DI],word ptr DS:[SI] @@ -894,7 +894,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction16))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); // F000:0B30 mov AX,0x5678 - AX = (ushort)0x5678; + AX = 0x5678; // F000:0B33 cmp word ptr ES:[EBX],AX Alu16.Sub(UInt16[ES, EBX], AX); // F000:0B37 jne near 0x15C7 @@ -903,23 +903,23 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0B3B); // F000:0B3B cmp EDI,0x0001FFFE - Alu32.Sub(EDI, 0x0001FFFEu); + Alu32.Sub(EDI, 0x0001FFFE); // F000:0B42 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0B46); // F000:0B46 cmp ESI,0x0001FFFE - Alu32.Sub(ESI, 0x0001FFFEu); + Alu32.Sub(ESI, 0x0001FFFE); // F000:0B4D jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0B51); // F000:0B51 mov ESI,0x00010000 - ESI = 0x00010000u; + ESI = 0x00010000; // F000:0B57 mov AX,0x5678 - AX = (ushort)0x5678; + AX = 0x5678; // F000:0B5A mov word ptr ES:[EBX],AX UInt16[ES, EBX] = AX; // F000:0B5E xor EAX,EAX @@ -928,14 +928,14 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { AX = UInt16[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction16))); // F000:0B62 cmp AX,0x5678 - Alu16.Sub(AX, (ushort)0x5678); + Alu16.Sub(AX, 0x5678); // F000:0B65 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0B69); // F000:0B69 cmp ESI,0x0001FFFE - Alu32.Sub(ESI, 0x0001FFFEu); + Alu32.Sub(ESI, 0x0001FFFE); // F000:0B70 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -944,15 +944,15 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:0B74 std DirectionFlag = true; // F000:0B75 mov EDI,0x00010000 - EDI = 0x00010000u; + EDI = 0x00010000; // F000:0B7B mov EBX,0 - EBX = 0x00000000u; + EBX = 0; // F000:0B81 mov EAX,0 - EAX = 0x00000000u; + EAX = 0; // F000:0B87 mov dword ptr ES:[EBX],EAX UInt32[ES, EBX] = EAX; // F000:0B8C mov EAX,0x12345678 - EAX = 0x12345678u; + EAX = 0x12345678; // F000:0B92 stos dword ptr ES:[DI],EAX UInt32[ES, DI] = EAX; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction32))); @@ -964,24 +964,24 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0B9D); // F000:0B9D cmp EDI,0x0001FFFC - Alu32.Sub(EDI, 0x0001FFFCu); + Alu32.Sub(EDI, 0x0001FFFC); // F000:0BA4 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0BA8); // F000:0BA8 mov ESI,0x00010000 - ESI = 0x00010000u; + ESI = 0x00010000; // F000:0BAE mov EDI,0x00010000 - EDI = 0x00010000u; + EDI = 0x00010000; // F000:0BB4 mov EBX,0 - EBX = 0x00000000u; + EBX = 0; // F000:0BBA mov dword ptr DS:[EBX],EAX UInt32[DS, EBX] = EAX; // F000:0BBF mov dword ptr ES:[EBX],EAX UInt32[ES, EBX] = EAX; // F000:0BC4 cmp EAX,0 - Alu32.Sub(EAX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(EAX, 0); // F000:0BC8 je near 0x15C7 if (ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -997,27 +997,27 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0BD2); // F000:0BD2 cmp EDI,0x0001FFFC - Alu32.Sub(EDI, 0x0001FFFCu); + Alu32.Sub(EDI, 0x0001FFFC); // F000:0BD9 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0BDD); // F000:0BDD cmp ESI,0x0001FFFC - Alu32.Sub(ESI, 0x0001FFFCu); + Alu32.Sub(ESI, 0x0001FFFC); // F000:0BE4 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0BE8); // F000:0BE8 mov EDI,0x00010000 - EDI = 0x00010000u; + EDI = 0x00010000; // F000:0BEE mov EAX,0x12345678 - EAX = 0x12345678u; + EAX = 0x12345678; // F000:0BF4 mov dword ptr ES:[EBX],EAX UInt32[ES, EBX] = EAX; // F000:0BF9 cmp EAX,0 - Alu32.Sub(EAX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(EAX, 0); // F000:0BFD scas EAX,dword ptr ES:[DI] Alu32.Sub(EAX, UInt32[ES, DI]); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction32))); @@ -1027,22 +1027,22 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0C03); // F000:0C03 cmp EDI,0x0001FFFC - Alu32.Sub(EDI, 0x0001FFFCu); + Alu32.Sub(EDI, 0x0001FFFC); // F000:0C0A jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0C0E); // F000:0C0E mov ESI,0x00010000 - ESI = 0x00010000u; + ESI = 0x00010000; // F000:0C14 mov EDI,0x00010000 - EDI = 0x00010000u; + EDI = 0x00010000; // F000:0C1A mov EAX,0x12345678 - EAX = 0x12345678u; + EAX = 0x12345678; // F000:0C20 mov dword ptr DS:[EBX],EAX UInt32[DS, EBX] = EAX; // F000:0C25 mov EAX,0 - EAX = 0x00000000u; + EAX = 0; // F000:0C2B mov dword ptr ES:[EBX],EAX UInt32[ES, EBX] = EAX; // F000:0C30 movs dword ptr ES:[DI],dword ptr DS:[SI] @@ -1050,7 +1050,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction32))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction32))); // F000:0C32 mov EAX,0x12345678 - EAX = 0x12345678u; + EAX = 0x12345678; // F000:0C38 cmp dword ptr ES:[EBX],EAX Alu32.Sub(UInt32[ES, EBX], EAX); // F000:0C3D jne near 0x15C7 @@ -1059,23 +1059,23 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0C41); // F000:0C41 cmp EDI,0x0001FFFC - Alu32.Sub(EDI, 0x0001FFFCu); + Alu32.Sub(EDI, 0x0001FFFC); // F000:0C48 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0C4C); // F000:0C4C cmp ESI,0x0001FFFC - Alu32.Sub(ESI, 0x0001FFFCu); + Alu32.Sub(ESI, 0x0001FFFC); // F000:0C53 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0C57); // F000:0C57 mov ESI,0x00010000 - ESI = 0x00010000u; + ESI = 0x00010000; // F000:0C5D mov EAX,0x12345678 - EAX = 0x12345678u; + EAX = 0x12345678; // F000:0C63 mov dword ptr ES:[EBX],EAX UInt32[ES, EBX] = EAX; // F000:0C68 xor EAX,EAX @@ -1084,14 +1084,14 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { EAX = UInt32[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction32))); // F000:0C6D cmp EAX,0x12345678 - Alu32.Sub(EAX, 0x12345678u); + Alu32.Sub(EAX, 0x12345678); // F000:0C73 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0C77); // F000:0C77 cmp ESI,0x0001FFFC - Alu32.Sub(ESI, 0x0001FFFCu); + Alu32.Sub(ESI, 0x0001FFFC); // F000:0C7E jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -1100,41 +1100,41 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:0C82 cld DirectionFlag = false; // F000:0C83 mov EAX,0x12345678 - EAX = 0x12345678u; + EAX = 0x12345678; // F000:0C89 mov ESI,0x0001FF00 - ESI = 0x0001FF00u; + ESI = 0x0001FF00; // F000:0C8F mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0C95 mov EAX,0x12345678 - EAX = 0x12345678u; + EAX = 0x12345678; // F000:0C9B mov ESI,0x0001FF00 - ESI = 0x0001FF00u; + ESI = 0x0001FF00; // F000:0CA1 mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0CA7 mov ECX,0x00000100 - ECX = 0x00000100u; + ECX = 0x00000100; // F000:0CAD rep stos byte ptr ES:[DI],AL - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt8[ES, DI] = AL; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0CAF cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:0CB3 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0CB7); // F000:0CB7 cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:0CBE jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0CC2); // F000:0CC2 mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0CC8 mov DX,ES DX = ES; // F000:0CCA mov CX,DS @@ -1152,150 +1152,150 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { EDI = ESI; ESI = unchecked((uint)temp_F000_0CD2_F0CD2); // F000:0CD5 mov ECX,0x00000100 - ECX = 0x00000100u; + ECX = 0x00000100; // F000:0CDB rep stos byte ptr ES:[DI],AL - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt8[ES, DI] = AL; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0CDD mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0CE3 mov ECX,0x00000100 - ECX = 0x00000100u; + ECX = 0x00000100; // F000:0CE9 repe cmps byte ptr DS:[SI],byte ptr ES:[DI] bool shouldContinue_F000_0CE9_F0CE9 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_0CE9_F0CE9) { + while (CX != 0 && shouldContinue_F000_0CE9_F0CE9) { Alu8.Sub(UInt8[DS, SI], UInt8[ES, DI]); SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_0CE9_F0CE9 = ZeroFlag == true; } // F000:0CEB cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:0CEF jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0CF3); // F000:0CF3 cmp ESI,0x00010000 - Alu32.Sub(ESI, 0x00010000u); + Alu32.Sub(ESI, 0x00010000); // F000:0CFA jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0CFE); // F000:0CFE cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:0D05 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0D09); // F000:0D09 mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0D0F mov ESI,0x0001FF00 - ESI = 0x0001FF00u; + ESI = 0x0001FF00; // F000:0D15 mov ECX,0x00000100 - ECX = 0x00000100u; + ECX = 0x00000100; // F000:0D1B repe scas AL,byte ptr ES:[DI] bool shouldContinue_F000_0D1B_F0D1B = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_0D1B_F0D1B) { + while (CX != 0 && shouldContinue_F000_0D1B_F0D1B) { Alu8.Sub(AL, UInt8[ES, DI]); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_0D1B_F0D1B = ZeroFlag == true; } // F000:0D1D cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:0D21 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0D25); // F000:0D25 cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:0D2C jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0D30); // F000:0D30 mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0D36 mov EAX,0 - EAX = 0x00000000u; + EAX = 0; // F000:0D3C mov ECX,0x00000100 - ECX = 0x00000100u; + ECX = 0x00000100; // F000:0D42 rep stos byte ptr ES:[DI],AL - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt8[ES, DI] = AL; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0D44 mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0D4A mov ECX,0x00000100 - ECX = 0x00000100u; + ECX = 0x00000100; // F000:0D50 rep movs byte ptr ES:[DI],byte ptr DS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt8[ES, DI] = UInt8[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0D52 cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:0D56 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0D5A); // F000:0D5A cmp ESI,0x00010000 - Alu32.Sub(ESI, 0x00010000u); + Alu32.Sub(ESI, 0x00010000); // F000:0D61 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0D65); // F000:0D65 cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:0D6C jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0D70); // F000:0D70 mov ECX,0x00000100 - ECX = 0x00000100u; + ECX = 0x00000100; // F000:0D76 mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0D7C mov ESI,0x0001FF00 - ESI = 0x0001FF00u; + ESI = 0x0001FF00; // F000:0D82 repe cmps byte ptr DS:[SI],byte ptr ES:[DI] bool shouldContinue_F000_0D82_F0D82 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_0D82_F0D82) { + while (CX != 0 && shouldContinue_F000_0D82_F0D82) { Alu8.Sub(UInt8[DS, SI], UInt8[ES, DI]); SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_0D82_F0D82 = ZeroFlag == true; } // F000:0D84 cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:0D88 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0D8C); // F000:0D8C cmp ESI,0x00010000 - Alu32.Sub(ESI, 0x00010000u); + Alu32.Sub(ESI, 0x00010000); // F000:0D93 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0D97); // F000:0D97 cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:0D9E jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -1304,41 +1304,41 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:0DA2 cld DirectionFlag = false; // F000:0DA3 mov EAX,0x12345678 - EAX = 0x12345678u; + EAX = 0x12345678; // F000:0DA9 mov ESI,0x0001FF00 - ESI = 0x0001FF00u; + ESI = 0x0001FF00; // F000:0DAF mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0DB5 mov EAX,0x12345678 - EAX = 0x12345678u; + EAX = 0x12345678; // F000:0DBB mov ESI,0x0001FF00 - ESI = 0x0001FF00u; + ESI = 0x0001FF00; // F000:0DC1 mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0DC7 mov ECX,0x00000080 - ECX = 0x00000080u; + ECX = 0x00000080; // F000:0DCD rep stos word ptr ES:[DI],AX - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt16[ES, DI] = AX; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0DCF cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:0DD3 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0DD7); // F000:0DD7 cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:0DDE jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0DE2); // F000:0DE2 mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0DE8 mov DX,ES DX = ES; // F000:0DEA mov CX,DS @@ -1356,150 +1356,150 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { EDI = ESI; ESI = unchecked((uint)temp_F000_0DF2_F0DF2); // F000:0DF5 mov ECX,0x00000080 - ECX = 0x00000080u; + ECX = 0x00000080; // F000:0DFB rep stos word ptr ES:[DI],AX - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt16[ES, DI] = AX; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0DFD mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0E03 mov ECX,0x00000080 - ECX = 0x00000080u; + ECX = 0x00000080; // F000:0E09 repe cmps word ptr DS:[SI],word ptr ES:[DI] bool shouldContinue_F000_0E09_F0E09 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_0E09_F0E09) { + while (CX != 0 && shouldContinue_F000_0E09_F0E09) { Alu16.Sub(UInt16[DS, SI], UInt16[ES, DI]); SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction16))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_0E09_F0E09 = ZeroFlag == true; } // F000:0E0B cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:0E0F jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0E13); // F000:0E13 cmp ESI,0x00010000 - Alu32.Sub(ESI, 0x00010000u); + Alu32.Sub(ESI, 0x00010000); // F000:0E1A jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0E1E); // F000:0E1E cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:0E25 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0E29); // F000:0E29 mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0E2F mov ESI,0x0001FF00 - ESI = 0x0001FF00u; + ESI = 0x0001FF00; // F000:0E35 mov ECX,0x00000080 - ECX = 0x00000080u; + ECX = 0x00000080; // F000:0E3B repe scas AX,word ptr ES:[DI] bool shouldContinue_F000_0E3B_F0E3B = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_0E3B_F0E3B) { + while (CX != 0 && shouldContinue_F000_0E3B_F0E3B) { Alu16.Sub(AX, UInt16[ES, DI]); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_0E3B_F0E3B = ZeroFlag == true; } // F000:0E3D cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:0E41 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0E45); // F000:0E45 cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:0E4C jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0E50); // F000:0E50 mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0E56 mov EAX,0 - EAX = 0x00000000u; + EAX = 0; // F000:0E5C mov ECX,0x00000080 - ECX = 0x00000080u; + ECX = 0x00000080; // F000:0E62 rep stos word ptr ES:[DI],AX - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt16[ES, DI] = AX; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0E64 mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0E6A mov ECX,0x00000080 - ECX = 0x00000080u; + ECX = 0x00000080; // F000:0E70 rep movs word ptr ES:[DI],word ptr DS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt16[ES, DI] = UInt16[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction16))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0E72 cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:0E76 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0E7A); // F000:0E7A cmp ESI,0x00010000 - Alu32.Sub(ESI, 0x00010000u); + Alu32.Sub(ESI, 0x00010000); // F000:0E81 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0E85); // F000:0E85 cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:0E8C jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0E90); // F000:0E90 mov ECX,0x00000080 - ECX = 0x00000080u; + ECX = 0x00000080; // F000:0E96 mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0E9C mov ESI,0x0001FF00 - ESI = 0x0001FF00u; + ESI = 0x0001FF00; // F000:0EA2 repe cmps word ptr DS:[SI],word ptr ES:[DI] bool shouldContinue_F000_0EA2_F0EA2 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_0EA2_F0EA2) { + while (CX != 0 && shouldContinue_F000_0EA2_F0EA2) { Alu16.Sub(UInt16[DS, SI], UInt16[ES, DI]); SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction16))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_0EA2_F0EA2 = ZeroFlag == true; } // F000:0EA4 cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:0EA8 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0EAC); // F000:0EAC cmp ESI,0x00010000 - Alu32.Sub(ESI, 0x00010000u); + Alu32.Sub(ESI, 0x00010000); // F000:0EB3 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0EB7); // F000:0EB7 cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:0EBE jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -1508,41 +1508,41 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:0EC2 cld DirectionFlag = false; // F000:0EC3 mov EAX,0x12345678 - EAX = 0x12345678u; + EAX = 0x12345678; // F000:0EC9 mov ESI,0x0001FF00 - ESI = 0x0001FF00u; + ESI = 0x0001FF00; // F000:0ECF mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0ED5 mov EAX,0x12345678 - EAX = 0x12345678u; + EAX = 0x12345678; // F000:0EDB mov ESI,0x0001FF00 - ESI = 0x0001FF00u; + ESI = 0x0001FF00; // F000:0EE1 mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0EE7 mov ECX,0x00000040 - ECX = 0x00000040u; + ECX = 0x00000040; // F000:0EED rep stos dword ptr ES:[DI],EAX - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt32[ES, DI] = EAX; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction32))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0EF0 cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:0EF4 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0EF8); // F000:0EF8 cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:0EFF jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0F03); // F000:0F03 mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0F09 mov DX,ES DX = ES; // F000:0F0B mov CX,DS @@ -1560,150 +1560,150 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { EDI = ESI; ESI = unchecked((uint)temp_F000_0F13_F0F13); // F000:0F16 mov ECX,0x00000040 - ECX = 0x00000040u; + ECX = 0x00000040; // F000:0F1C rep stos dword ptr ES:[DI],EAX - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt32[ES, DI] = EAX; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction32))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0F1F mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0F25 mov ECX,0x00000040 - ECX = 0x00000040u; + ECX = 0x00000040; // F000:0F2B repe cmps dword ptr DS:[SI],dword ptr ES:[DI] bool shouldContinue_F000_0F2B_F0F2B = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_0F2B_F0F2B) { + while (CX != 0 && shouldContinue_F000_0F2B_F0F2B) { Alu32.Sub(UInt32[DS, SI], UInt32[ES, DI]); SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction32))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction32))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_0F2B_F0F2B = ZeroFlag == true; } // F000:0F2E cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:0F32 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0F36); // F000:0F36 cmp ESI,0x00010000 - Alu32.Sub(ESI, 0x00010000u); + Alu32.Sub(ESI, 0x00010000); // F000:0F3D jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0F41); // F000:0F41 cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:0F48 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0F4C); // F000:0F4C mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0F52 mov ESI,0x0001FF00 - ESI = 0x0001FF00u; + ESI = 0x0001FF00; // F000:0F58 mov ECX,0x00000040 - ECX = 0x00000040u; + ECX = 0x00000040; // F000:0F5E repe scas EAX,dword ptr ES:[DI] bool shouldContinue_F000_0F5E_F0F5E = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_0F5E_F0F5E) { + while (CX != 0 && shouldContinue_F000_0F5E_F0F5E) { Alu32.Sub(EAX, UInt32[ES, DI]); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction32))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_0F5E_F0F5E = ZeroFlag == true; } // F000:0F61 cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:0F65 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0F69); // F000:0F69 cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:0F70 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0F74); // F000:0F74 mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0F7A mov EAX,0 - EAX = 0x00000000u; + EAX = 0; // F000:0F80 mov ECX,0x00000040 - ECX = 0x00000040u; + ECX = 0x00000040; // F000:0F86 rep stos dword ptr ES:[DI],EAX - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt32[ES, DI] = EAX; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction32))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0F89 mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0F8F mov ECX,0x00000040 - ECX = 0x00000040u; + ECX = 0x00000040; // F000:0F95 rep movs dword ptr ES:[DI],dword ptr DS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt32[ES, DI] = UInt32[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction32))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction32))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:0F98 cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:0F9C jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0FA0); // F000:0FA0 cmp ESI,0x00010000 - Alu32.Sub(ESI, 0x00010000u); + Alu32.Sub(ESI, 0x00010000); // F000:0FA7 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0FAB); // F000:0FAB cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:0FB2 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0FB6); // F000:0FB6 mov ECX,0x00000040 - ECX = 0x00000040u; + ECX = 0x00000040; // F000:0FBC mov EDI,0x0001FF00 - EDI = 0x0001FF00u; + EDI = 0x0001FF00; // F000:0FC2 mov ESI,0x0001FF00 - ESI = 0x0001FF00u; + ESI = 0x0001FF00; // F000:0FC8 repe cmps dword ptr DS:[SI],dword ptr ES:[DI] bool shouldContinue_F000_0FC8_F0FC8 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_0FC8_F0FC8) { + while (CX != 0 && shouldContinue_F000_0FC8_F0FC8) { Alu32.Sub(UInt32[DS, SI], UInt32[ES, DI]); SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction32))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction32))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_0FC8_F0FC8 = ZeroFlag == true; } // F000:0FCB cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:0FCF jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0FD3); // F000:0FD3 cmp ESI,0x00010000 - Alu32.Sub(ESI, 0x00010000u); + Alu32.Sub(ESI, 0x00010000); // F000:0FDA jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0FDE); // F000:0FDE cmp EDI,0x00010000 - Alu32.Sub(EDI, 0x00010000u); + Alu32.Sub(EDI, 0x00010000); // F000:0FE5 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -1712,41 +1712,41 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:0FE9 std DirectionFlag = true; // F000:0FEA mov EAX,0x12345678 - EAX = 0x12345678u; + EAX = 0x12345678; // F000:0FF0 mov ESI,0x000100FF - ESI = 0x000100FFu; + ESI = 0x000100FF; // F000:0FF6 mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:0FFC mov EAX,0x12345678 - EAX = 0x12345678u; + EAX = 0x12345678; // F000:1002 mov ESI,0x000100FF - ESI = 0x000100FFu; + ESI = 0x000100FF; // F000:1008 mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:100E mov ECX,0x00000100 - ECX = 0x00000100u; + ECX = 0x00000100; // F000:1014 rep stos byte ptr ES:[DI],AL - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt8[ES, DI] = AL; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:1016 cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:101A jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x101E); // F000:101E cmp EDI,0x0001FFFF - Alu32.Sub(EDI, 0x0001FFFFu); + Alu32.Sub(EDI, 0x0001FFFF); // F000:1025 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x1029); // F000:1029 mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:102F mov DX,ES DX = ES; // F000:1031 mov CX,DS @@ -1764,150 +1764,150 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { EDI = ESI; ESI = unchecked((uint)temp_F000_1039_F1039); // F000:103C mov ECX,0x00000100 - ECX = 0x00000100u; + ECX = 0x00000100; // F000:1042 rep stos byte ptr ES:[DI],AL - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt8[ES, DI] = AL; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:1044 mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:104A mov ECX,0x00000100 - ECX = 0x00000100u; + ECX = 0x00000100; // F000:1050 repe cmps byte ptr DS:[SI],byte ptr ES:[DI] bool shouldContinue_F000_1050_F1050 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_1050_F1050) { + while (CX != 0 && shouldContinue_F000_1050_F1050) { Alu8.Sub(UInt8[DS, SI], UInt8[ES, DI]); SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_1050_F1050 = ZeroFlag == true; } // F000:1052 cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:1056 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x105A); // F000:105A cmp ESI,0x0001FFFF - Alu32.Sub(ESI, 0x0001FFFFu); + Alu32.Sub(ESI, 0x0001FFFF); // F000:1061 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x1065); // F000:1065 cmp EDI,0x0001FFFF - Alu32.Sub(EDI, 0x0001FFFFu); + Alu32.Sub(EDI, 0x0001FFFF); // F000:106C jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x1070); // F000:1070 mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:1076 mov ESI,0x000100FF - ESI = 0x000100FFu; + ESI = 0x000100FF; // F000:107C mov ECX,0x00000100 - ECX = 0x00000100u; + ECX = 0x00000100; // F000:1082 repe scas AL,byte ptr ES:[DI] bool shouldContinue_F000_1082_F1082 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_1082_F1082) { + while (CX != 0 && shouldContinue_F000_1082_F1082) { Alu8.Sub(AL, UInt8[ES, DI]); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_1082_F1082 = ZeroFlag == true; } // F000:1084 cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:1088 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x108C); // F000:108C cmp EDI,0x0001FFFF - Alu32.Sub(EDI, 0x0001FFFFu); + Alu32.Sub(EDI, 0x0001FFFF); // F000:1093 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x1097); // F000:1097 mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:109D mov EAX,0 - EAX = 0x00000000u; + EAX = 0; // F000:10A3 mov ECX,0x00000100 - ECX = 0x00000100u; + ECX = 0x00000100; // F000:10A9 rep stos byte ptr ES:[DI],AL - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt8[ES, DI] = AL; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:10AB mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:10B1 mov ECX,0x00000100 - ECX = 0x00000100u; + ECX = 0x00000100; // F000:10B7 rep movs byte ptr ES:[DI],byte ptr DS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt8[ES, DI] = UInt8[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:10B9 cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:10BD jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x10C1); // F000:10C1 cmp ESI,0x0001FFFF - Alu32.Sub(ESI, 0x0001FFFFu); + Alu32.Sub(ESI, 0x0001FFFF); // F000:10C8 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x10CC); // F000:10CC cmp EDI,0x0001FFFF - Alu32.Sub(EDI, 0x0001FFFFu); + Alu32.Sub(EDI, 0x0001FFFF); // F000:10D3 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x10D7); // F000:10D7 mov ECX,0x00000100 - ECX = 0x00000100u; + ECX = 0x00000100; // F000:10DD mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:10E3 mov ESI,0x000100FF - ESI = 0x000100FFu; + ESI = 0x000100FF; // F000:10E9 repe cmps byte ptr DS:[SI],byte ptr ES:[DI] bool shouldContinue_F000_10E9_F10E9 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_10E9_F10E9) { + while (CX != 0 && shouldContinue_F000_10E9_F10E9) { Alu8.Sub(UInt8[DS, SI], UInt8[ES, DI]); SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction8))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction8))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_10E9_F10E9 = ZeroFlag == true; } // F000:10EB cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:10EF jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x10F3); // F000:10F3 cmp ESI,0x0001FFFF - Alu32.Sub(ESI, 0x0001FFFFu); + Alu32.Sub(ESI, 0x0001FFFF); // F000:10FA jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x10FE); // F000:10FE cmp EDI,0x0001FFFF - Alu32.Sub(EDI, 0x0001FFFFu); + Alu32.Sub(EDI, 0x0001FFFF); // F000:1105 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -1916,41 +1916,41 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:1109 std DirectionFlag = true; // F000:110A mov EAX,0x12345678 - EAX = 0x12345678u; + EAX = 0x12345678; // F000:1110 mov ESI,0x000100FF - ESI = 0x000100FFu; + ESI = 0x000100FF; // F000:1116 mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:111C mov EAX,0x12345678 - EAX = 0x12345678u; + EAX = 0x12345678; // F000:1122 mov ESI,0x000100FF - ESI = 0x000100FFu; + ESI = 0x000100FF; // F000:1128 mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:112E mov ECX,0x00000080 - ECX = 0x00000080u; + ECX = 0x00000080; // F000:1134 rep stos word ptr ES:[DI],AX - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt16[ES, DI] = AX; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:1136 cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:113A jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x113E); // F000:113E cmp EDI,0x0001FFFF - Alu32.Sub(EDI, 0x0001FFFFu); + Alu32.Sub(EDI, 0x0001FFFF); // F000:1145 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x1149); // F000:1149 mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:114F mov DX,ES DX = ES; // F000:1151 mov CX,DS @@ -1968,150 +1968,150 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { EDI = ESI; ESI = unchecked((uint)temp_F000_1159_F1159); // F000:115C mov ECX,0x00000080 - ECX = 0x00000080u; + ECX = 0x00000080; // F000:1162 rep stos word ptr ES:[DI],AX - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt16[ES, DI] = AX; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:1164 mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:116A mov ECX,0x00000080 - ECX = 0x00000080u; + ECX = 0x00000080; // F000:1170 repe cmps word ptr DS:[SI],word ptr ES:[DI] bool shouldContinue_F000_1170_F1170 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_1170_F1170) { + while (CX != 0 && shouldContinue_F000_1170_F1170) { Alu16.Sub(UInt16[DS, SI], UInt16[ES, DI]); SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction16))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_1170_F1170 = ZeroFlag == true; } // F000:1172 cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:1176 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x117A); // F000:117A cmp ESI,0x0001FFFF - Alu32.Sub(ESI, 0x0001FFFFu); + Alu32.Sub(ESI, 0x0001FFFF); // F000:1181 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x1185); // F000:1185 cmp EDI,0x0001FFFF - Alu32.Sub(EDI, 0x0001FFFFu); + Alu32.Sub(EDI, 0x0001FFFF); // F000:118C jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x1190); // F000:1190 mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:1196 mov ESI,0x000100FF - ESI = 0x000100FFu; + ESI = 0x000100FF; // F000:119C mov ECX,0x00000080 - ECX = 0x00000080u; + ECX = 0x00000080; // F000:11A2 repe scas AX,word ptr ES:[DI] bool shouldContinue_F000_11A2_F11A2 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_11A2_F11A2) { + while (CX != 0 && shouldContinue_F000_11A2_F11A2) { Alu16.Sub(AX, UInt16[ES, DI]); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_11A2_F11A2 = ZeroFlag == true; } // F000:11A4 cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:11A8 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x11AC); // F000:11AC cmp EDI,0x0001FFFF - Alu32.Sub(EDI, 0x0001FFFFu); + Alu32.Sub(EDI, 0x0001FFFF); // F000:11B3 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x11B7); // F000:11B7 mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:11BD mov EAX,0 - EAX = 0x00000000u; + EAX = 0; // F000:11C3 mov ECX,0x00000080 - ECX = 0x00000080u; + ECX = 0x00000080; // F000:11C9 rep stos word ptr ES:[DI],AX - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt16[ES, DI] = AX; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:11CB mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:11D1 mov ECX,0x00000080 - ECX = 0x00000080u; + ECX = 0x00000080; // F000:11D7 rep movs word ptr ES:[DI],word ptr DS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt16[ES, DI] = UInt16[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction16))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:11D9 cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:11DD jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x11E1); // F000:11E1 cmp ESI,0x0001FFFF - Alu32.Sub(ESI, 0x0001FFFFu); + Alu32.Sub(ESI, 0x0001FFFF); // F000:11E8 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x11EC); // F000:11EC cmp EDI,0x0001FFFF - Alu32.Sub(EDI, 0x0001FFFFu); + Alu32.Sub(EDI, 0x0001FFFF); // F000:11F3 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x11F7); // F000:11F7 mov ECX,0x00000080 - ECX = 0x00000080u; + ECX = 0x00000080; // F000:11FD mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:1203 mov ESI,0x000100FF - ESI = 0x000100FFu; + ESI = 0x000100FF; // F000:1209 repe cmps word ptr DS:[SI],word ptr ES:[DI] bool shouldContinue_F000_1209_F1209 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_1209_F1209) { + while (CX != 0 && shouldContinue_F000_1209_F1209) { Alu16.Sub(UInt16[DS, SI], UInt16[ES, DI]); SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction16))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction16))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_1209_F1209 = ZeroFlag == true; } // F000:120B cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:120F jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x1213); // F000:1213 cmp ESI,0x0001FFFF - Alu32.Sub(ESI, 0x0001FFFFu); + Alu32.Sub(ESI, 0x0001FFFF); // F000:121A jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x121E); // F000:121E cmp EDI,0x0001FFFF - Alu32.Sub(EDI, 0x0001FFFFu); + Alu32.Sub(EDI, 0x0001FFFF); // F000:1225 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -2120,41 +2120,41 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:1229 std DirectionFlag = true; // F000:122A mov EAX,0x12345678 - EAX = 0x12345678u; + EAX = 0x12345678; // F000:1230 mov ESI,0x000100FF - ESI = 0x000100FFu; + ESI = 0x000100FF; // F000:1236 mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:123C mov EAX,0x12345678 - EAX = 0x12345678u; + EAX = 0x12345678; // F000:1242 mov ESI,0x000100FF - ESI = 0x000100FFu; + ESI = 0x000100FF; // F000:1248 mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:124E mov ECX,0x00000040 - ECX = 0x00000040u; + ECX = 0x00000040; // F000:1254 rep stos dword ptr ES:[DI],EAX - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt32[ES, DI] = EAX; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction32))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:1257 cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:125B jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x125F); // F000:125F cmp EDI,0x0001FFFF - Alu32.Sub(EDI, 0x0001FFFFu); + Alu32.Sub(EDI, 0x0001FFFF); // F000:1266 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x126A); // F000:126A mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:1270 mov DX,ES DX = ES; // F000:1272 mov CX,DS @@ -2172,171 +2172,171 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { EDI = ESI; ESI = unchecked((uint)temp_F000_127A_F127A); // F000:127D mov ECX,0x00000040 - ECX = 0x00000040u; + ECX = 0x00000040; // F000:1283 rep stos dword ptr ES:[DI],EAX - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt32[ES, DI] = EAX; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction32))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:1286 mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:128C mov ECX,0x00000040 - ECX = 0x00000040u; + ECX = 0x00000040; // F000:1292 repe cmps dword ptr DS:[SI],dword ptr ES:[DI] bool shouldContinue_F000_1292_F1292 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_1292_F1292) { + while (CX != 0 && shouldContinue_F000_1292_F1292) { Alu32.Sub(UInt32[DS, SI], UInt32[ES, DI]); SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction32))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction32))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_1292_F1292 = ZeroFlag == true; } // F000:1295 cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:1299 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x129D); // F000:129D cmp ESI,0x0001FFFF - Alu32.Sub(ESI, 0x0001FFFFu); + Alu32.Sub(ESI, 0x0001FFFF); // F000:12A4 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x12A8); // F000:12A8 cmp EDI,0x0001FFFF - Alu32.Sub(EDI, 0x0001FFFFu); + Alu32.Sub(EDI, 0x0001FFFF); // F000:12AF jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x12B3); // F000:12B3 mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:12B9 mov ESI,0x000100FF - ESI = 0x000100FFu; + ESI = 0x000100FF; // F000:12BF mov ECX,0x00000040 - ECX = 0x00000040u; + ECX = 0x00000040; // F000:12C5 repe scas EAX,dword ptr ES:[DI] bool shouldContinue_F000_12C5_F12C5 = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_12C5_F12C5) { + while (CX != 0 && shouldContinue_F000_12C5_F12C5) { Alu32.Sub(EAX, UInt32[ES, DI]); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction32))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_12C5_F12C5 = ZeroFlag == true; } // F000:12C8 cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:12CC jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x12D0); // F000:12D0 cmp EDI,0x0001FFFF - Alu32.Sub(EDI, 0x0001FFFFu); + Alu32.Sub(EDI, 0x0001FFFF); // F000:12D7 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x12DB); // F000:12DB mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:12E1 mov EAX,0 - EAX = 0x00000000u; + EAX = 0; // F000:12E7 mov ECX,0x00000040 - ECX = 0x00000040u; + ECX = 0x00000040; // F000:12ED rep stos dword ptr ES:[DI],EAX - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt32[ES, DI] = EAX; DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction32))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:12F0 mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:12F6 mov ECX,0x00000040 - ECX = 0x00000040u; + ECX = 0x00000040; // F000:12FC rep movs dword ptr ES:[DI],dword ptr DS:[SI] - while (CX != (ushort)0x0000) { + while (CX != 0) { UInt32[ES, DI] = UInt32[DS, SI]; SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction32))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction32))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); } // F000:12FF cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:1303 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x1307); // F000:1307 cmp ESI,0x0001FFFF - Alu32.Sub(ESI, 0x0001FFFFu); + Alu32.Sub(ESI, 0x0001FFFF); // F000:130E jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x1312); // F000:1312 cmp EDI,0x0001FFFF - Alu32.Sub(EDI, 0x0001FFFFu); + Alu32.Sub(EDI, 0x0001FFFF); // F000:1319 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x131D); // F000:131D mov ECX,0x00000040 - ECX = 0x00000040u; + ECX = 0x00000040; // F000:1323 mov EDI,0x000100FF - EDI = 0x000100FFu; + EDI = 0x000100FF; // F000:1329 mov ESI,0x000100FF - ESI = 0x000100FFu; + ESI = 0x000100FF; // F000:132F repe cmps dword ptr DS:[SI],dword ptr ES:[DI] bool shouldContinue_F000_132F_F132F = true; - while (CX != (ushort)0x0000 && shouldContinue_F000_132F_F132F) { + while (CX != 0 && shouldContinue_F000_132F_F132F) { Alu32.Sub(UInt32[DS, SI], UInt32[ES, DI]); SI = unchecked((ushort)(SI + unchecked((ushort)State.Direction32))); DI = unchecked((ushort)(DI + unchecked((ushort)State.Direction32))); - CX = unchecked((ushort)(CX - (ushort)0x0001)); + CX = unchecked((ushort)(CX - 1)); shouldContinue_F000_132F_F132F = ZeroFlag == true; } // F000:1332 cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:1336 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x133A); // F000:133A cmp ESI,0x0001FFFF - Alu32.Sub(ESI, 0x0001FFFFu); + Alu32.Sub(ESI, 0x0001FFFF); // F000:1341 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x1345); // F000:1345 cmp EDI,0x0001FFFF - Alu32.Sub(EDI, 0x0001FFFFu); + Alu32.Sub(EDI, 0x0001FFFF); // F000:134C jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x1350); // F000:1350 mov DX,0x2200 - DX = (ushort)0x2200; + DX = 0x2200; // F000:1353 mov DS,DX DS = DX; // F000:1355 mov DX,0x6200 - DX = (ushort)0x6200; + DX = 0x6200; // F000:1358 mov ES,DX ES = DX; // F000:135A mov AL,5 - AL = (byte)0x05; + AL = 5; // F000:135C mov DX,0x0999 - DX = (ushort)0x0999; + DX = 0x0999; // F000:135F out DX,AL Machine.IoPortDispatcher.WriteByte(DX, AL); // F000:1360 mov SI,0 - SI = (ushort)0x0000; + SI = 0; // F000:1363 mov AX,SP AX = SP; // F000:1365 clc @@ -2366,7 +2366,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:139F clc CarryFlag = false; // F000:13A0 mov BX,0x136F - BX = (ushort)0x136F; + BX = 0x136F; // F000:13A3 call near BX switch ((ushort)(BX)) { case 0x136F: @@ -2384,7 +2384,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:13A9 clc CarryFlag = false; // F000:13AA mov EBX,0x0000138D - EBX = 0x0000138Du; + EBX = 0x0000138D; // F000:13B0 call near EBX switch ((ushort)(unchecked((ushort)EBX))) { case 0x138D: @@ -2428,11 +2428,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:13F7 clc CarryFlag = false; // F000:13F8 mov word ptr DS:[SI],0x13C5 - UInt16[DS, SI] = (ushort)0x13C5; + UInt16[DS, SI] = 0x13C5; // F000:13FC mov word ptr DS:[SI+2],0xF000 - UInt16[DS, (ushort)(SI + (sbyte)2)] = (ushort)0xF000; + UInt16[DS, (ushort)(SI + 2)] = 0xF000; // F000:1401 call far dword ptr DS:[SI] - ushort targetSegment_3021 = unchecked((ushort)(UInt16[DS, (ushort)(SI + (ushort)0x0002)])); + ushort targetSegment_3021 = unchecked((ushort)(UInt16[DS, (ushort)(SI + 2)])); ushort targetOffset_3021 = unchecked((ushort)(UInt16[DS, SI])); if (targetSegment_3021 == cs1 && targetOffset_3021 == 0x13C5) { FarCall(cs1, 0x1403, cs1, unknown_F000_13C5_F13C5); @@ -2449,11 +2449,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:1407 clc CarryFlag = false; // F000:1408 mov dword ptr DS:[SI],0x000013E5 - UInt32[DS, SI] = 0x000013E5u; + UInt32[DS, SI] = 0x000013E5; // F000:140F mov word ptr DS:[SI+4],0xF000 - UInt16[DS, (ushort)(SI + (sbyte)4)] = (ushort)0xF000; + UInt16[DS, (ushort)(SI + 4)] = 0xF000; // F000:1414 call far dword ptr DS:[SI] - ushort targetSegment_3034 = unchecked((ushort)(UInt16[DS, (ushort)(SI + (ushort)0x0004)])); + ushort targetSegment_3034 = unchecked((ushort)(UInt16[DS, (ushort)(SI + 4)])); ushort targetOffset_3034 = unchecked((ushort)(UInt32[DS, SI])); if (targetSegment_3034 == cs1 && targetOffset_3034 == 0x13E5) { FarCall32(cs1, 0x1417, cs1, unknown_F000_13E5_F13E5); @@ -2468,47 +2468,47 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x141B); // F000:141B mov DX,0x2300 - DX = (ushort)0x2300; + DX = 0x2300; // F000:141E mov DS,DX DS = DX; // F000:1420 mov DX,0x6300 - DX = (ushort)0x6300; + DX = 0x6300; // F000:1423 mov ES,DX ES = DX; // F000:1425 mov AL,6 - AL = (byte)0x06; + AL = 6; // F000:1427 mov DX,0x0999 - DX = (ushort)0x0999; + DX = 0x0999; // F000:142A out DX,AL Machine.IoPortDispatcher.WriteByte(DX, AL); // F000:142B mov DI,0 - DI = (ushort)0x0000; + DI = 0; // F000:142E mov CX,SS CX = SS; // F000:1430 mov DX,ES DX = ES; // F000:1432 mov word ptr ES:[DI],0x1234 - UInt16[ES, DI] = (ushort)0x1234; + UInt16[ES, DI] = 0x1234; // F000:1437 mov word ptr ES:[DI+2],0xABCD - UInt16[ES, (ushort)(DI + (sbyte)2)] = (ushort)0xABCD; + UInt16[ES, (ushort)(DI + 2)] = 0xABCD; // F000:143D lss BX,word ptr ES:[DI] ushort lxsOffset_F000_143D_F143D = DI; ushort lxsValue_F000_143D_F143D = UInt16[ES, lxsOffset_F000_143D_F143D]; - ushort lxsSegment_F000_143D_F143D = UInt16[ES, (ushort)(lxsOffset_F000_143D_F143D + (ushort)0x0002)]; + ushort lxsSegment_F000_143D_F143D = UInt16[ES, (ushort)(lxsOffset_F000_143D_F143D + 2)]; BX = unchecked((ushort)lxsValue_F000_143D_F143D); SS = unchecked((ushort)lxsSegment_F000_143D_F143D); State.InterruptShadowing = true; // F000:1441 mov AX,SS AX = SS; // F000:1443 cmp AX,0xABCD - Alu16.Sub(AX, (ushort)0xABCD); + Alu16.Sub(AX, 0xABCD); // F000:1446 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x144A); // F000:144A cmp BX,0x1234 - Alu16.Sub(BX, (ushort)0x1234); + Alu16.Sub(BX, 0x1234); // F000:144E jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -2517,27 +2517,27 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:1452 mov ES,DX ES = DX; // F000:1454 mov dword ptr ES:[DI],0x12345678 - UInt32[ES, DI] = 0x12345678u; + UInt32[ES, DI] = 0x12345678; // F000:145C mov word ptr ES:[DI+4],0xBCDE - UInt16[ES, (ushort)(DI + (sbyte)4)] = (ushort)0xBCDE; + UInt16[ES, (ushort)(DI + 4)] = 0xBCDE; // F000:1462 lss EBX,dword ptr ES:[DI] ushort lxsOffset_F000_1462_F1462 = DI; uint lxsValue_F000_1462_F1462 = UInt32[ES, lxsOffset_F000_1462_F1462]; - ushort lxsSegment_F000_1462_F1462 = UInt16[ES, (ushort)(lxsOffset_F000_1462_F1462 + (ushort)0x0004)]; + ushort lxsSegment_F000_1462_F1462 = UInt16[ES, (ushort)(lxsOffset_F000_1462_F1462 + 4)]; EBX = unchecked((uint)lxsValue_F000_1462_F1462); SS = unchecked((ushort)lxsSegment_F000_1462_F1462); State.InterruptShadowing = true; // F000:1467 mov AX,SS AX = SS; // F000:1469 cmp AX,0xBCDE - Alu16.Sub(AX, (ushort)0xBCDE); + Alu16.Sub(AX, 0xBCDE); // F000:146C jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x1470); // F000:1470 cmp EBX,0x12345678 - Alu32.Sub(EBX, 0x12345678u); + Alu32.Sub(EBX, 0x12345678); // F000:1477 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -2553,26 +2553,26 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:1481 mov DX,ES DX = ES; // F000:1483 mov word ptr ES:[DI],0x1234 - UInt16[ES, DI] = (ushort)0x1234; + UInt16[ES, DI] = 0x1234; // F000:1488 mov word ptr ES:[DI+2],0xABCD - UInt16[ES, (ushort)(DI + (sbyte)2)] = (ushort)0xABCD; + UInt16[ES, (ushort)(DI + 2)] = 0xABCD; // F000:148E lds BX,word ptr ES:[DI] ushort lxsOffset_F000_148E_F148E = DI; ushort lxsValue_F000_148E_F148E = UInt16[ES, lxsOffset_F000_148E_F148E]; - ushort lxsSegment_F000_148E_F148E = UInt16[ES, (ushort)(lxsOffset_F000_148E_F148E + (ushort)0x0002)]; + ushort lxsSegment_F000_148E_F148E = UInt16[ES, (ushort)(lxsOffset_F000_148E_F148E + 2)]; BX = unchecked((ushort)lxsValue_F000_148E_F148E); DS = unchecked((ushort)lxsSegment_F000_148E_F148E); // F000:1491 mov AX,DS AX = DS; // F000:1493 cmp AX,0xABCD - Alu16.Sub(AX, (ushort)0xABCD); + Alu16.Sub(AX, 0xABCD); // F000:1496 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x149A); // F000:149A cmp BX,0x1234 - Alu16.Sub(BX, (ushort)0x1234); + Alu16.Sub(BX, 0x1234); // F000:149E jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -2581,26 +2581,26 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:14A2 mov ES,DX ES = DX; // F000:14A4 mov dword ptr ES:[DI],0x12345678 - UInt32[ES, DI] = 0x12345678u; + UInt32[ES, DI] = 0x12345678; // F000:14AC mov word ptr ES:[DI+4],0xBCDE - UInt16[ES, (ushort)(DI + (sbyte)4)] = (ushort)0xBCDE; + UInt16[ES, (ushort)(DI + 4)] = 0xBCDE; // F000:14B2 lds EBX,dword ptr ES:[DI] ushort lxsOffset_F000_14B2_F14B2 = DI; uint lxsValue_F000_14B2_F14B2 = UInt32[ES, lxsOffset_F000_14B2_F14B2]; - ushort lxsSegment_F000_14B2_F14B2 = UInt16[ES, (ushort)(lxsOffset_F000_14B2_F14B2 + (ushort)0x0004)]; + ushort lxsSegment_F000_14B2_F14B2 = UInt16[ES, (ushort)(lxsOffset_F000_14B2_F14B2 + 4)]; EBX = unchecked((uint)lxsValue_F000_14B2_F14B2); DS = unchecked((ushort)lxsSegment_F000_14B2_F14B2); // F000:14B6 mov AX,DS AX = DS; // F000:14B8 cmp AX,0xBCDE - Alu16.Sub(AX, (ushort)0xBCDE); + Alu16.Sub(AX, 0xBCDE); // F000:14BB jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x14BF); // F000:14BF cmp EBX,0x12345678 - Alu32.Sub(EBX, 0x12345678u); + Alu32.Sub(EBX, 0x12345678); // F000:14C6 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -2615,26 +2615,26 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:14D0 mov DX,ES DX = ES; // F000:14D2 mov word ptr ES:[DI],0x1234 - UInt16[ES, DI] = (ushort)0x1234; + UInt16[ES, DI] = 0x1234; // F000:14D7 mov word ptr ES:[DI+2],0xABCD - UInt16[ES, (ushort)(DI + (sbyte)2)] = (ushort)0xABCD; + UInt16[ES, (ushort)(DI + 2)] = 0xABCD; // F000:14DD les BX,word ptr ES:[DI] ushort lxsOffset_F000_14DD_F14DD = DI; ushort lxsValue_F000_14DD_F14DD = UInt16[ES, lxsOffset_F000_14DD_F14DD]; - ushort lxsSegment_F000_14DD_F14DD = UInt16[ES, (ushort)(lxsOffset_F000_14DD_F14DD + (ushort)0x0002)]; + ushort lxsSegment_F000_14DD_F14DD = UInt16[ES, (ushort)(lxsOffset_F000_14DD_F14DD + 2)]; BX = unchecked((ushort)lxsValue_F000_14DD_F14DD); ES = unchecked((ushort)lxsSegment_F000_14DD_F14DD); // F000:14E0 mov AX,ES AX = ES; // F000:14E2 cmp AX,0xABCD - Alu16.Sub(AX, (ushort)0xABCD); + Alu16.Sub(AX, 0xABCD); // F000:14E5 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x14E9); // F000:14E9 cmp BX,0x1234 - Alu16.Sub(BX, (ushort)0x1234); + Alu16.Sub(BX, 0x1234); // F000:14ED jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -2643,26 +2643,26 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:14F1 mov ES,DX ES = DX; // F000:14F3 mov dword ptr ES:[DI],0x12345678 - UInt32[ES, DI] = 0x12345678u; + UInt32[ES, DI] = 0x12345678; // F000:14FB mov word ptr ES:[DI+4],0xBCDE - UInt16[ES, (ushort)(DI + (sbyte)4)] = (ushort)0xBCDE; + UInt16[ES, (ushort)(DI + 4)] = 0xBCDE; // F000:1501 les EBX,dword ptr ES:[DI] ushort lxsOffset_F000_1501_F1501 = DI; uint lxsValue_F000_1501_F1501 = UInt32[ES, lxsOffset_F000_1501_F1501]; - ushort lxsSegment_F000_1501_F1501 = UInt16[ES, (ushort)(lxsOffset_F000_1501_F1501 + (ushort)0x0004)]; + ushort lxsSegment_F000_1501_F1501 = UInt16[ES, (ushort)(lxsOffset_F000_1501_F1501 + 4)]; EBX = unchecked((uint)lxsValue_F000_1501_F1501); ES = unchecked((ushort)lxsSegment_F000_1501_F1501); // F000:1505 mov AX,ES AX = ES; // F000:1507 cmp AX,0xBCDE - Alu16.Sub(AX, (ushort)0xBCDE); + Alu16.Sub(AX, 0xBCDE); // F000:150A jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x150E); // F000:150E cmp EBX,0x12345678 - Alu32.Sub(EBX, 0x12345678u); + Alu32.Sub(EBX, 0x12345678); // F000:1515 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -2677,26 +2677,26 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:151F mov DX,ES DX = ES; // F000:1521 mov word ptr ES:[DI],0x1234 - UInt16[ES, DI] = (ushort)0x1234; + UInt16[ES, DI] = 0x1234; // F000:1526 mov word ptr ES:[DI+2],0xABCD - UInt16[ES, (ushort)(DI + (sbyte)2)] = (ushort)0xABCD; + UInt16[ES, (ushort)(DI + 2)] = 0xABCD; // F000:152C lfs BX,word ptr ES:[DI] ushort lxsOffset_F000_152C_F152C = DI; ushort lxsValue_F000_152C_F152C = UInt16[ES, lxsOffset_F000_152C_F152C]; - ushort lxsSegment_F000_152C_F152C = UInt16[ES, (ushort)(lxsOffset_F000_152C_F152C + (ushort)0x0002)]; + ushort lxsSegment_F000_152C_F152C = UInt16[ES, (ushort)(lxsOffset_F000_152C_F152C + 2)]; BX = unchecked((ushort)lxsValue_F000_152C_F152C); FS = unchecked((ushort)lxsSegment_F000_152C_F152C); // F000:1530 mov AX,FS AX = FS; // F000:1532 cmp AX,0xABCD - Alu16.Sub(AX, (ushort)0xABCD); + Alu16.Sub(AX, 0xABCD); // F000:1535 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x1539); // F000:1539 cmp BX,0x1234 - Alu16.Sub(BX, (ushort)0x1234); + Alu16.Sub(BX, 0x1234); // F000:153D jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -2705,26 +2705,26 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:1541 mov ES,DX ES = DX; // F000:1543 mov dword ptr ES:[DI],0x12345678 - UInt32[ES, DI] = 0x12345678u; + UInt32[ES, DI] = 0x12345678; // F000:154B mov word ptr ES:[DI+4],0xBCDE - UInt16[ES, (ushort)(DI + (sbyte)4)] = (ushort)0xBCDE; + UInt16[ES, (ushort)(DI + 4)] = 0xBCDE; // F000:1551 lfs EBX,dword ptr ES:[DI] ushort lxsOffset_F000_1551_F1551 = DI; uint lxsValue_F000_1551_F1551 = UInt32[ES, lxsOffset_F000_1551_F1551]; - ushort lxsSegment_F000_1551_F1551 = UInt16[ES, (ushort)(lxsOffset_F000_1551_F1551 + (ushort)0x0004)]; + ushort lxsSegment_F000_1551_F1551 = UInt16[ES, (ushort)(lxsOffset_F000_1551_F1551 + 4)]; EBX = unchecked((uint)lxsValue_F000_1551_F1551); FS = unchecked((ushort)lxsSegment_F000_1551_F1551); // F000:1556 mov AX,FS AX = FS; // F000:1558 cmp AX,0xBCDE - Alu16.Sub(AX, (ushort)0xBCDE); + Alu16.Sub(AX, 0xBCDE); // F000:155B jne short 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x155D); // F000:155D cmp EBX,0x12345678 - Alu32.Sub(EBX, 0x12345678u); + Alu32.Sub(EBX, 0x12345678); // F000:1564 jne short 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -2739,26 +2739,26 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:156C mov DX,ES DX = ES; // F000:156E mov word ptr ES:[DI],0x1234 - UInt16[ES, DI] = (ushort)0x1234; + UInt16[ES, DI] = 0x1234; // F000:1573 mov word ptr ES:[DI+2],0xABCD - UInt16[ES, (ushort)(DI + (sbyte)2)] = (ushort)0xABCD; + UInt16[ES, (ushort)(DI + 2)] = 0xABCD; // F000:1579 lgs BX,word ptr ES:[DI] ushort lxsOffset_F000_1579_F1579 = DI; ushort lxsValue_F000_1579_F1579 = UInt16[ES, lxsOffset_F000_1579_F1579]; - ushort lxsSegment_F000_1579_F1579 = UInt16[ES, (ushort)(lxsOffset_F000_1579_F1579 + (ushort)0x0002)]; + ushort lxsSegment_F000_1579_F1579 = UInt16[ES, (ushort)(lxsOffset_F000_1579_F1579 + 2)]; BX = unchecked((ushort)lxsValue_F000_1579_F1579); GS = unchecked((ushort)lxsSegment_F000_1579_F1579); // F000:157D mov AX,GS AX = GS; // F000:157F cmp AX,0xABCD - Alu16.Sub(AX, (ushort)0xABCD); + Alu16.Sub(AX, 0xABCD); // F000:1582 jne short 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x1584); // F000:1584 cmp BX,0x1234 - Alu16.Sub(BX, (ushort)0x1234); + Alu16.Sub(BX, 0x1234); // F000:1588 jne short 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -2767,26 +2767,26 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:158A mov ES,DX ES = DX; // F000:158C mov dword ptr ES:[DI],0x12345678 - UInt32[ES, DI] = 0x12345678u; + UInt32[ES, DI] = 0x12345678; // F000:1594 mov word ptr ES:[DI+4],0xBCDE - UInt16[ES, (ushort)(DI + (sbyte)4)] = (ushort)0xBCDE; + UInt16[ES, (ushort)(DI + 4)] = 0xBCDE; // F000:159A lgs EBX,dword ptr ES:[DI] ushort lxsOffset_F000_159A_F159A = DI; uint lxsValue_F000_159A_F159A = UInt32[ES, lxsOffset_F000_159A_F159A]; - ushort lxsSegment_F000_159A_F159A = UInt16[ES, (ushort)(lxsOffset_F000_159A_F159A + (ushort)0x0004)]; + ushort lxsSegment_F000_159A_F159A = UInt16[ES, (ushort)(lxsOffset_F000_159A_F159A + 4)]; EBX = unchecked((uint)lxsValue_F000_159A_F159A); GS = unchecked((ushort)lxsSegment_F000_159A_F159A); // F000:159F mov AX,GS AX = GS; // F000:15A1 cmp AX,0xBCDE - Alu16.Sub(AX, (ushort)0xBCDE); + Alu16.Sub(AX, 0xBCDE); // F000:15A4 jne short 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x15A6); // F000:15A6 cmp EBX,0x12345678 - Alu32.Sub(EBX, 0x12345678u); + Alu32.Sub(EBX, 0x12345678); // F000:15AD jne short 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -2797,17 +2797,17 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:15B1 mov GS,CX GS = CX; // F000:15B3 mov DX,0x2400 - DX = (ushort)0x2400; + DX = 0x2400; // F000:15B6 mov DS,DX DS = DX; // F000:15B8 mov DX,0x6400 - DX = (ushort)0x6400; + DX = 0x6400; // F000:15BB mov ES,DX ES = DX; // F000:15BD mov AL,0xFF - AL = (byte)0xFF; + AL = 0xFF; // F000:15BF mov DX,0x0999 - DX = (ushort)0x0999; + DX = 0x0999; // F000:15C2 out DX,AL Machine.IoPortDispatcher.WriteByte(DX, AL); CheckExternalEvents(cs1, 0x15C3); @@ -2820,7 +2820,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { public virtual Action unknown_F000_136F_F136F(int loadOffset) { CheckExternalEvents(cs1, 0x136F); // F000:136F sub AX,2 - AX = Alu16.Sub(AX, unchecked((ushort)unchecked((short)(sbyte)2))); + AX = Alu16.Sub(AX, 2); // F000:1372 cmp SP,AX Alu16.Sub(SP, AX); // F000:1374 jne near 0x15C7 @@ -2829,17 +2829,17 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x1378); // F000:1378 add AX,2 - AX = Alu16.Add(AX, unchecked((ushort)unchecked((short)(sbyte)2))); + AX = Alu16.Add(AX, 2); // F000:137B stc CarryFlag = true; // F000:137C ret near - return NearRet((ushort)0x0000); + return NearRet(0); } public virtual Action unknown_F000_138D_F138D(int loadOffset) { CheckExternalEvents(cs1, 0x138D); // F000:138D sub AX,4 - AX = Alu16.Sub(AX, unchecked((ushort)unchecked((short)(sbyte)4))); + AX = Alu16.Sub(AX, 4); // F000:1390 cmp SP,AX Alu16.Sub(SP, AX); // F000:1392 jne near 0x15C7 @@ -2848,17 +2848,17 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x1396); // F000:1396 add AX,4 - AX = Alu16.Add(AX, unchecked((ushort)unchecked((short)(sbyte)4))); + AX = Alu16.Add(AX, 4); // F000:1399 stc CarryFlag = true; // F000:139A ret near - return NearRet32((ushort)0x0000); + return NearRet32(0); } public virtual Action unknown_F000_13C5_F13C5(int loadOffset) { CheckExternalEvents(cs1, 0x13C5); // F000:13C5 sub AX,4 - AX = Alu16.Sub(AX, unchecked((ushort)unchecked((short)(sbyte)4))); + AX = Alu16.Sub(AX, 4); // F000:13C8 cmp SP,AX Alu16.Sub(SP, AX); // F000:13CA jne near 0x15C7 @@ -2867,17 +2867,17 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x13CE); // F000:13CE add AX,4 - AX = Alu16.Add(AX, unchecked((ushort)unchecked((short)(sbyte)4))); + AX = Alu16.Add(AX, 4); // F000:13D1 stc CarryFlag = true; // F000:13D2 ret far - return FarRet((ushort)0x0000); + return FarRet(0); } public virtual Action unknown_F000_13E5_F13E5(int loadOffset) { CheckExternalEvents(cs1, 0x13E5); // F000:13E5 sub AX,8 - AX = Alu16.Sub(AX, unchecked((ushort)unchecked((short)(sbyte)8))); + AX = Alu16.Sub(AX, 8); // F000:13E8 cmp SP,AX Alu16.Sub(SP, AX); // F000:13EA jne near 0x15C7 @@ -2886,11 +2886,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x13EE); // F000:13EE add AX,8 - AX = Alu16.Add(AX, unchecked((ushort)unchecked((short)(sbyte)8))); + AX = Alu16.Add(AX, 8); // F000:13F1 stc CarryFlag = true; // F000:13F2 ret far - return FarRet32((ushort)0x0000); + return FarRet32(0); } public virtual Action unknown_F000_FFF0_FFFF0(int loadOffset) { @@ -2901,9 +2901,9 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:0045 cli InterruptFlag = false; // F000:0046 mov AL,0 - AL = (byte)0x00; + AL = 0; // F000:0048 mov DX,0x0999 - DX = (ushort)0x0999; + DX = 0x0999; // F000:004B out DX,AL Machine.IoPortDispatcher.WriteByte(DX, AL); // F000:004C xor EAX,EAX @@ -2911,44 +2911,44 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:004F mov DS,AX DS = AX; // F000:0051 mov CX,0x0011 - CX = (ushort)0x0011; + CX = 0x0011; label_F000_0054_F0054_10: CheckExternalEvents(cs1, 0x0054); // F000:0054 mov word ptr DS:[4*EAX],0x15C7 - UInt16[DS, (ushort)(0x00000000u + 0x00000004u * EAX)] = (ushort)0x15C7; + UInt16[DS, (ushort)(0 + 4 * EAX)] = 0x15C7; // F000:005E mov word ptr DS:[2+4*EAX],0xF000 - UInt16[DS, (ushort)(0x00000002u + 0x00000004u * EAX)] = (ushort)0xF000; + UInt16[DS, (ushort)(2 + 4 * EAX)] = 0xF000; // F000:0068 inc AX AX = Alu16.Inc(AX); // F000:0069 loop 0x0054 - CX = unchecked((ushort)(CX - (ushort)0x0001)); - if (CX != (ushort)0x0000) { + CX = unchecked((ushort)(CX - 1)); + if (CX != 0) { goto label_F000_0054_F0054_10; } CheckExternalEvents(cs1, 0x006B); // F000:006B mov AX,0x1000 - AX = (ushort)0x1000; + AX = 0x1000; // F000:006E mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:0070 mov SP,0xFFFF - SP = (ushort)0xFFFF; + SP = 0xFFFF; // F000:0073 mov DX,0x2000 - DX = (ushort)0x2000; + DX = 0x2000; // F000:0076 mov DS,DX DS = DX; // F000:0078 mov DX,0x6000 - DX = (ushort)0x6000; + DX = 0x6000; // F000:007B mov ES,DX ES = DX; // F000:007D mov AL,1 - AL = (byte)0x01; + AL = 1; // F000:007F mov DX,0x0999 - DX = (ushort)0x0999; + DX = 0x0999; // F000:0082 out DX,AL Machine.IoPortDispatcher.WriteByte(DX, AL); // F000:0083 mov AH,1 - AH = (byte)0x01; + AH = 1; // F000:0085 sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:0086 jae short 0x00AC @@ -2967,7 +2967,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_008B_F008B_38: CheckExternalEvents(cs1, 0x008B); // F000:008B mov AH,0x40 - AH = (byte)0x40; + AH = 0x40; // F000:008D sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:008E jne short 0x00AC @@ -2986,7 +2986,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0093_F0093_43: CheckExternalEvents(cs1, 0x0093); // F000:0093 mov AH,4 - AH = (byte)0x04; + AH = 4; // F000:0095 sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:0096 jnp short 0x00AC @@ -3005,7 +3005,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_009B_F009B_49: CheckExternalEvents(cs1, 0x009B); // F000:009B mov AH,0x80 - AH = (byte)0x80; + AH = 0x80; // F000:009D sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:009E jns short 0x00AC @@ -3024,7 +3024,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_00A3_F00A3_58: CheckExternalEvents(cs1, 0x00A3); // F000:00A3 mov AH,0x41 - AH = (byte)0x41; + AH = 0x41; // F000:00A5 sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:00A6 ja short 0x00AC @@ -3078,11 +3078,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_00B7_F00B7_72: CheckExternalEvents(cs1, 0x00B7); // F000:00B7 mov AH,0xD4 - AH = (byte)0xD4; + AH = 0xD4; // F000:00B9 sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:00BA mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:00BD sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:00BE jae short 0x00DB @@ -3096,7 +3096,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_00C1_F00C1_98: CheckExternalEvents(cs1, 0x00C1); // F000:00C1 mov AH,0x95 - AH = (byte)0x95; + AH = 0x95; // F000:00C3 sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:00C4 jne short 0x00DD @@ -3110,7 +3110,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_00C7_F00C7_103: CheckExternalEvents(cs1, 0x00C7); // F000:00C7 mov AH,0xD1 - AH = (byte)0xD1; + AH = 0xD1; // F000:00C9 sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:00CA jnp short 0x00DF @@ -3124,7 +3124,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_00CD_F00CD_109: CheckExternalEvents(cs1, 0x00CD); // F000:00CD mov AH,0x55 - AH = (byte)0x55; + AH = 0x55; // F000:00CF sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:00D0 jns short 0x00E1 @@ -3138,7 +3138,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_00D3_F00D3_118: CheckExternalEvents(cs1, 0x00D3); // F000:00D3 mov AH,0x94 - AH = (byte)0x94; + AH = 0x94; // F000:00D5 sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:00D6 ja short 0x00E3 @@ -3186,11 +3186,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_00E5_F00E5_129: CheckExternalEvents(cs1, 0x00E5); // F000:00E5 mov AH,0 - AH = (byte)0x00; + AH = 0; // F000:00E7 sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:00E8 mov AL,0x40 - AL = (byte)0x40; + AL = 0x40; // F000:00EA shl AL,1 AL = Alu8.Shl(AL, 1); // F000:00EC jno short 0x0122 @@ -3239,7 +3239,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_00FB_F00FB_168: CheckExternalEvents(cs1, 0x00FB); // F000:00FB mov AH,0x40 - AH = (byte)0x40; + AH = 0x40; // F000:00FD sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:00FE jl short 0x0129 @@ -3263,29 +3263,29 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0104_F0104_184: CheckExternalEvents(cs1, 0x0104); // F000:0104 mov ECX,1 - ECX = 0x00000001u; + ECX = 1; // F000:010A jcxz short 0x0122 - if (CX == (ushort)0x0000) { + if (CX == 0) { goto label_F000_0122_F0122_143; } CheckExternalEvents(cs1, 0x010C); // F000:010C mov ECX,0x00010000 - ECX = 0x00010000u; + ECX = 0x00010000; // F000:0112 jcxz short 0x012D - if (CX == (ushort)0x0000) { + if (CX == 0) { goto label_F000_012D_F012D_186; } label_F000_0114_F0114_192: CheckExternalEvents(cs1, 0x0114); // F000:0114 jecxz short 0x0122 - if (ECX == 0x00000000u) { + if (ECX == 0) { goto label_F000_0122_F0122_143; } CheckExternalEvents(cs1, 0x0117); // F000:0117 mov ECX,0 - ECX = 0x00000000u; + ECX = 0; // F000:011D jecxz short 0x012F - if (ECX == 0x00000000u) { + if (ECX == 0) { goto label_F000_012F_F012F_194; } label_F000_0120_F0120_202: @@ -3330,19 +3330,19 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_012D_F012D_186: CheckExternalEvents(cs1, 0x012D); // F000:012D jcxz short 0x0114 - if (CX == (ushort)0x0000) { + if (CX == 0) { goto label_F000_0114_F0114_192; } label_F000_012F_F012F_194: CheckExternalEvents(cs1, 0x012F); // F000:012F jecxz short 0x0120 - if (ECX == 0x00000000u) { + if (ECX == 0) { goto label_F000_0120_F0120_202; } label_F000_0132_F0132_204: CheckExternalEvents(cs1, 0x0132); // F000:0132 mov AH,1 - AH = (byte)0x01; + AH = 1; // F000:0134 sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:0135 jae near 0x01F0 @@ -3361,7 +3361,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_013E_F013E_223: CheckExternalEvents(cs1, 0x013E); // F000:013E mov AH,0x40 - AH = (byte)0x40; + AH = 0x40; // F000:0140 sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:0141 jne near 0x01F0 @@ -3380,7 +3380,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_014A_F014A_228: CheckExternalEvents(cs1, 0x014A); // F000:014A mov AH,4 - AH = (byte)0x04; + AH = 4; // F000:014C sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:014D jnp near 0x01F0 @@ -3399,7 +3399,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0156_F0156_234: CheckExternalEvents(cs1, 0x0156); // F000:0156 mov AH,0x80 - AH = (byte)0x80; + AH = 0x80; // F000:0158 sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:0159 jns near 0x01F0 @@ -3418,7 +3418,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0162_F0162_243: CheckExternalEvents(cs1, 0x0162); // F000:0162 mov AH,0x41 - AH = (byte)0x41; + AH = 0x41; // F000:0164 sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:0165 ja near 0x01F0 @@ -3472,11 +3472,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0205_F0205_257: CheckExternalEvents(cs1, 0x0205); // F000:0205 mov AH,0xD4 - AH = (byte)0xD4; + AH = 0xD4; // F000:0207 sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:0208 mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:020B sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:020C jae near 0x02B4 @@ -3490,7 +3490,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0211_F0211_283: CheckExternalEvents(cs1, 0x0211); // F000:0211 mov AH,0x95 - AH = (byte)0x95; + AH = 0x95; // F000:0213 sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:0214 jne near 0x02B8 @@ -3504,7 +3504,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0219_F0219_288: CheckExternalEvents(cs1, 0x0219); // F000:0219 mov AH,0xD1 - AH = (byte)0xD1; + AH = 0xD1; // F000:021B sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:021C jnp near 0x02BC @@ -3518,7 +3518,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0221_F0221_294: CheckExternalEvents(cs1, 0x0221); // F000:0221 mov AH,0x55 - AH = (byte)0x55; + AH = 0x55; // F000:0223 sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:0224 jns near 0x02C0 @@ -3532,7 +3532,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_0229_F0229_303: CheckExternalEvents(cs1, 0x0229); // F000:0229 mov AH,0x94 - AH = (byte)0x94; + AH = 0x94; // F000:022B sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:022C ja near 0x02C4 @@ -3580,11 +3580,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_02C8_F02C8_314: CheckExternalEvents(cs1, 0x02C8); // F000:02C8 mov AH,0 - AH = (byte)0x00; + AH = 0; // F000:02CA sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:02CB mov AL,0x40 - AL = (byte)0x40; + AL = 0x40; // F000:02CD shl AL,1 AL = Alu8.Shl(AL, 1); // F000:02CF jno near 0x037A @@ -3633,7 +3633,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_02EA_F02EA_353: CheckExternalEvents(cs1, 0x02EA); // F000:02EA mov AH,0x40 - AH = (byte)0x40; + AH = 0x40; // F000:02EC sahf FlagRegister = unchecked((uint)(FlagRegister & 0xFFFFFF00u | unchecked((uint)AH))); // F000:02ED jl near 0x0387 @@ -3696,266 +3696,266 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { label_F000_038F_F038F_371: CheckExternalEvents(cs1, 0x038F); // F000:038F mov ECX,0x00020000 - ECX = 0x00020000u; + ECX = 0x00020000; // F000:0395 mov EAX,0 - EAX = 0x00000000u; + EAX = 0; label_F000_039B_F039B_378: CheckExternalEvents(cs1, 0x039B); // F000:039B inc EAX EAX = Alu32.Inc(EAX); // F000:039D loop 0x039B - CX = unchecked((ushort)(CX - (ushort)0x0001)); - if (CX != (ushort)0x0000) { + CX = unchecked((ushort)(CX - 1)); + if (CX != 0) { goto label_F000_039B_F039B_378; } CheckExternalEvents(cs1, 0x039F); // F000:039F cmp EAX,0x00010000 - Alu32.Sub(EAX, 0x00010000u); + Alu32.Sub(EAX, 0x00010000); // F000:03A5 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x03A9); // F000:03A9 cmp ECX,0x00020000 - Alu32.Sub(ECX, 0x00020000u); + Alu32.Sub(ECX, 0x00020000); // F000:03B0 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x03B4); // F000:03B4 mov ECX,0x00020000 - ECX = 0x00020000u; + ECX = 0x00020000; // F000:03BA mov EAX,0 - EAX = 0x00000000u; + EAX = 0; label_F000_03C0_F03C0_401: CheckExternalEvents(cs1, 0x03C0); // F000:03C0 inc EAX EAX = Alu32.Inc(EAX); // F000:03C2 loop 0x03C0 - ECX = unchecked((uint)(ECX - 0x00000001u)); - if (ECX != 0x00000000u) { + ECX = unchecked((uint)(ECX - 1)); + if (ECX != 0) { goto label_F000_03C0_F03C0_401; } CheckExternalEvents(cs1, 0x03C5); // F000:03C5 cmp EAX,0x00020000 - Alu32.Sub(EAX, 0x00020000u); + Alu32.Sub(EAX, 0x00020000); // F000:03CB jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x03CF); // F000:03CF cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:03D3 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x03D7); // F000:03D7 mov CX,0xFFFF - CX = (ushort)0xFFFF; + CX = 0xFFFF; // F000:03DA mov AX,0 - AX = (ushort)0x0000; + AX = 0; label_F000_03DD_F03DD_417: CheckExternalEvents(cs1, 0x03DD); // F000:03DD inc AX AX = Alu16.Inc(AX); // F000:03DE cmp AH,0 - Alu8.Sub(AH, (byte)0x00); + Alu8.Sub(AH, 0); // F000:03E1 loope 0x03DD - CX = unchecked((ushort)(CX - (ushort)0x0001)); - if (CX != (ushort)0x0000 && ZeroFlag) { + CX = unchecked((ushort)(CX - 1)); + if (CX != 0 && ZeroFlag) { goto label_F000_03DD_F03DD_417; } CheckExternalEvents(cs1, 0x03E3); // F000:03E3 cmp AX,0x0100 - Alu16.Sub(AX, (ushort)0x0100); + Alu16.Sub(AX, 0x0100); // F000:03E6 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x03EA); // F000:03EA cmp CX,0xFEFF - Alu16.Sub(CX, (ushort)0xFEFF); + Alu16.Sub(CX, 0xFEFF); // F000:03EE jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x03F2); // F000:03F2 mov CX,0x00FF - CX = (ushort)0x00FF; + CX = 0x00FF; // F000:03F5 mov AX,0 - AX = (ushort)0x0000; + AX = 0; label_F000_03F8_F03F8_433: CheckExternalEvents(cs1, 0x03F8); // F000:03F8 inc AX AX = Alu16.Inc(AX); // F000:03F9 cmp AH,0 - Alu8.Sub(AH, (byte)0x00); + Alu8.Sub(AH, 0); // F000:03FC loope 0x03F8 - CX = unchecked((ushort)(CX - (ushort)0x0001)); - if (CX != (ushort)0x0000 && ZeroFlag) { + CX = unchecked((ushort)(CX - 1)); + if (CX != 0 && ZeroFlag) { goto label_F000_03F8_F03F8_433; } CheckExternalEvents(cs1, 0x03FE); // F000:03FE cmp AX,0x00FF - Alu16.Sub(AX, (ushort)0x00FF); + Alu16.Sub(AX, 0x00FF); // F000:0401 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0405); // F000:0405 cmp CX,0 - Alu16.Sub(CX, unchecked((ushort)unchecked((short)(sbyte)0))); + Alu16.Sub(CX, 0); // F000:0408 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x040C); // F000:040C mov ECX,0x00020000 - ECX = 0x00020000u; + ECX = 0x00020000; // F000:0412 mov EAX,0 - EAX = 0x00000000u; + EAX = 0; label_F000_0418_F0418_449: CheckExternalEvents(cs1, 0x0418); // F000:0418 inc EAX EAX = Alu32.Inc(EAX); // F000:041A test EAX,0x00010000 - Alu32.And(EAX, 0x00010000u); + Alu32.And(EAX, 0x00010000); // F000:0420 loope 0x0418 - ECX = unchecked((uint)(ECX - 0x00000001u)); - if (ECX != 0x00000000u && ZeroFlag) { + ECX = unchecked((uint)(ECX - 1)); + if (ECX != 0 && ZeroFlag) { goto label_F000_0418_F0418_449; } CheckExternalEvents(cs1, 0x0423); // F000:0423 cmp EAX,0x00010000 - Alu32.Sub(EAX, 0x00010000u); + Alu32.Sub(EAX, 0x00010000); // F000:0429 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x042D); // F000:042D cmp ECX,0x00010000 - Alu32.Sub(ECX, 0x00010000u); + Alu32.Sub(ECX, 0x00010000); // F000:0434 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0438); // F000:0438 mov CX,0xFFFF - CX = (ushort)0xFFFF; + CX = 0xFFFF; // F000:043B mov AX,0 - AX = (ushort)0x0000; + AX = 0; label_F000_043E_F043E_465: CheckExternalEvents(cs1, 0x043E); // F000:043E inc AX AX = Alu16.Inc(AX); // F000:043F test AL,0xFF - Alu8.And(AL, (byte)0xFF); + Alu8.And(AL, 0xFF); // F000:0441 loopne 0x043E - CX = unchecked((ushort)(CX - (ushort)0x0001)); - if (CX != (ushort)0x0000 && !ZeroFlag) { + CX = unchecked((ushort)(CX - 1)); + if (CX != 0 && !ZeroFlag) { goto label_F000_043E_F043E_465; } CheckExternalEvents(cs1, 0x0443); // F000:0443 cmp AX,0x0100 - Alu16.Sub(AX, (ushort)0x0100); + Alu16.Sub(AX, 0x0100); // F000:0446 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x044A); // F000:044A cmp CX,0xFEFF - Alu16.Sub(CX, (ushort)0xFEFF); + Alu16.Sub(CX, 0xFEFF); // F000:044E jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0452); // F000:0452 mov CX,0x00FF - CX = (ushort)0x00FF; + CX = 0x00FF; // F000:0455 mov AX,0 - AX = (ushort)0x0000; + AX = 0; label_F000_0458_F0458_481: CheckExternalEvents(cs1, 0x0458); // F000:0458 inc AX AX = Alu16.Inc(AX); // F000:0459 test AL,0xFF - Alu8.And(AL, (byte)0xFF); + Alu8.And(AL, 0xFF); // F000:045B loopne 0x0458 - CX = unchecked((ushort)(CX - (ushort)0x0001)); - if (CX != (ushort)0x0000 && !ZeroFlag) { + CX = unchecked((ushort)(CX - 1)); + if (CX != 0 && !ZeroFlag) { goto label_F000_0458_F0458_481; } CheckExternalEvents(cs1, 0x045D); // F000:045D cmp AX,0x00FF - Alu16.Sub(AX, (ushort)0x00FF); + Alu16.Sub(AX, 0x00FF); // F000:0460 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0464); // F000:0464 cmp CX,0 - Alu16.Sub(CX, unchecked((ushort)unchecked((short)(sbyte)0))); + Alu16.Sub(CX, 0); // F000:0467 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x046B); // F000:046B mov ECX,0x00010000 - ECX = 0x00010000u; + ECX = 0x00010000; // F000:0471 mov EAX,0 - EAX = 0x00000000u; + EAX = 0; label_F000_0477_F0477_497: CheckExternalEvents(cs1, 0x0477); // F000:0477 inc EAX EAX = Alu32.Inc(EAX); // F000:0479 test EAX,0x0000FFFF - Alu32.And(EAX, 0x0000FFFFu); + Alu32.And(EAX, 0x0000FFFF); // F000:047F loopne 0x0477 - ECX = unchecked((uint)(ECX - 0x00000001u)); - if (ECX != 0x00000000u && !ZeroFlag) { + ECX = unchecked((uint)(ECX - 1)); + if (ECX != 0 && !ZeroFlag) { goto label_F000_0477_F0477_497; } CheckExternalEvents(cs1, 0x0482); // F000:0482 cmp EAX,0x00010000 - Alu32.Sub(EAX, 0x00010000u); + Alu32.Sub(EAX, 0x00010000); // F000:0488 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x048C); // F000:048C cmp ECX,0 - Alu32.Sub(ECX, unchecked((uint)unchecked((int)(sbyte)0))); + Alu32.Sub(ECX, 0); // F000:0490 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); } CheckExternalEvents(cs1, 0x0494); // F000:0494 mov AL,2 - AL = (byte)0x02; + AL = 2; // F000:0496 mov DX,0x0999 - DX = (ushort)0x0999; + DX = 0x0999; // F000:0499 out DX,AL Machine.IoPortDispatcher.WriteByte(DX, AL); // F000:049A mov EAX,0x80000001 EAX = 0x80000001u; // F000:04A0 imul EAX long result_F000_04A0_F04A0 = Alu32.Imul(unchecked((int)EAX), unchecked((int)EAX)); - EDX = unchecked((uint)(result_F000_04A0_F04A0 >> 32)); + EDX = unchecked((uint)(result_F000_04A0_F04A0 >> 0x00000020)); EAX = unchecked((uint)result_F000_04A0_F04A0); // F000:04A3 mov EAX,0x44332211 - EAX = 0x44332211u; + EAX = 0x44332211; // F000:04A9 mov EBX,EAX EBX = EAX; // F000:04AC mov ECX,0x88776655 ECX = 0x88776655u; // F000:04B2 mul ECX ulong result_F000_04B2_F04B2 = Alu32.Mul(EAX, unchecked((uint)unchecked((int)ECX))); - EDX = unchecked((uint)(result_F000_04B2_F04B2 >> 32)); + EDX = unchecked((uint)(result_F000_04B2_F04B2 >> 0x00000020)); EAX = unchecked((uint)result_F000_04B2_F04B2); // F000:04B5 div ECX uint divisor_F000_04B5_F04B5 = ECX; - ulong dividend_F000_04B5_F04B5 = unchecked((ulong)(unchecked((ulong)EDX) << 32 | unchecked((ulong)EAX))); + ulong dividend_F000_04B5_F04B5 = unchecked((ulong)(unchecked((ulong)EDX) << 0x00000020 | unchecked((ulong)EAX))); uint quotient_F000_04B5_F04B5 = Alu32.Div(unchecked((ulong)dividend_F000_04B5_F04B5), unchecked((uint)divisor_F000_04B5_F04B5)); EAX = unchecked((uint)quotient_F000_04B5_F04B5); EDX = unchecked((uint)(dividend_F000_04B5_F04B5 % unchecked((ulong)divisor_F000_04B5_F04B5))); @@ -3967,13 +3967,13 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x04BF); // F000:04BF mov AL,3 - AL = (byte)0x03; + AL = 3; // F000:04C1 mov DX,0x0999 - DX = (ushort)0x0999; + DX = 0x0999; // F000:04C4 out DX,AL Machine.IoPortDispatcher.WriteByte(DX, AL); // F000:04C5 mov DX,0x2000 - DX = (ushort)0x2000; + DX = 0x2000; // F000:04C8 mov SS,DX SS = DX; State.InterruptShadowing = true; @@ -4000,11 +4000,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x04E3); // F000:04E3 mov word ptr DS:[0],0xBEEF - UInt16[DS, (ushort)0x0000] = (ushort)0xBEEF; + UInt16[DS, 0] = 0xBEEF; // F000:04E9 mov word ptr DS:[0],SS - UInt16[DS, (ushort)0x0000] = SS; + UInt16[DS, 0] = SS; // F000:04ED cmp word ptr DS:[0],DX - Alu16.Sub(UInt16[DS, (ushort)0x0000], DX); + Alu16.Sub(UInt16[DS, 0], DX); // F000:04F1 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -4018,7 +4018,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { SS = AX; State.InterruptShadowing = true; // F000:04FB mov SS,word ptr DS:[0] - SS = UInt16[DS, (ushort)0x0000]; + SS = UInt16[DS, 0]; State.InterruptShadowing = true; // F000:04FF mov AX,SS AX = SS; @@ -4030,7 +4030,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0507); // F000:0507 mov DX,0x2000 - DX = (ushort)0x2000; + DX = 0x2000; // F000:050A mov DS,DX DS = DX; // F000:050C xor AX,AX @@ -4056,11 +4056,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0525); // F000:0525 mov word ptr DS:[0],0xBEEF - UInt16[DS, (ushort)0x0000] = (ushort)0xBEEF; + UInt16[DS, 0] = 0xBEEF; // F000:052B mov word ptr DS:[0],DS - UInt16[DS, (ushort)0x0000] = DS; + UInt16[DS, 0] = DS; // F000:052F cmp word ptr DS:[0],DX - Alu16.Sub(UInt16[DS, (ushort)0x0000], DX); + Alu16.Sub(UInt16[DS, 0], DX); // F000:0533 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -4075,7 +4075,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:053D mov ES,CX ES = CX; // F000:053F mov DS,word ptr ES:[0] - DS = UInt16[ES, (ushort)0x0000]; + DS = UInt16[ES, 0]; // F000:0544 mov AX,DS AX = DS; // F000:0546 cmp AX,DX @@ -4086,7 +4086,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x054C); // F000:054C mov DX,0x2000 - DX = (ushort)0x2000; + DX = 0x2000; // F000:054F mov ES,DX ES = DX; // F000:0551 xor AX,AX @@ -4112,11 +4112,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x056A); // F000:056A mov word ptr DS:[0],0xBEEF - UInt16[DS, (ushort)0x0000] = (ushort)0xBEEF; + UInt16[DS, 0] = 0xBEEF; // F000:0570 mov word ptr DS:[0],ES - UInt16[DS, (ushort)0x0000] = ES; + UInt16[DS, 0] = ES; // F000:0574 cmp word ptr DS:[0],DX - Alu16.Sub(UInt16[DS, (ushort)0x0000], DX); + Alu16.Sub(UInt16[DS, 0], DX); // F000:0578 jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -4129,7 +4129,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:0580 mov ES,AX ES = AX; // F000:0582 mov ES,word ptr DS:[0] - ES = UInt16[DS, (ushort)0x0000]; + ES = UInt16[DS, 0]; // F000:0586 mov AX,ES AX = ES; // F000:0588 cmp AX,DX @@ -4140,7 +4140,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x058E); // F000:058E mov DX,0x2000 - DX = (ushort)0x2000; + DX = 0x2000; // F000:0591 mov FS,DX FS = DX; // F000:0593 xor AX,AX @@ -4166,11 +4166,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x05AC); // F000:05AC mov word ptr DS:[0],0xBEEF - UInt16[DS, (ushort)0x0000] = (ushort)0xBEEF; + UInt16[DS, 0] = 0xBEEF; // F000:05B2 mov word ptr DS:[0],FS - UInt16[DS, (ushort)0x0000] = FS; + UInt16[DS, 0] = FS; // F000:05B6 cmp word ptr DS:[0],DX - Alu16.Sub(UInt16[DS, (ushort)0x0000], DX); + Alu16.Sub(UInt16[DS, 0], DX); // F000:05BA jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -4183,7 +4183,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:05C2 mov FS,AX FS = AX; // F000:05C4 mov FS,word ptr DS:[0] - FS = UInt16[DS, (ushort)0x0000]; + FS = UInt16[DS, 0]; // F000:05C8 mov AX,FS AX = FS; // F000:05CA cmp AX,DX @@ -4194,7 +4194,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x05D0); // F000:05D0 mov DX,0x2000 - DX = (ushort)0x2000; + DX = 0x2000; // F000:05D3 mov GS,DX GS = DX; // F000:05D5 xor AX,AX @@ -4220,11 +4220,11 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x05EE); // F000:05EE mov word ptr DS:[0],0xBEEF - UInt16[DS, (ushort)0x0000] = (ushort)0xBEEF; + UInt16[DS, 0] = 0xBEEF; // F000:05F4 mov word ptr DS:[0],GS - UInt16[DS, (ushort)0x0000] = GS; + UInt16[DS, 0] = GS; // F000:05F8 cmp word ptr DS:[0],DX - Alu16.Sub(UInt16[DS, (ushort)0x0000], DX); + Alu16.Sub(UInt16[DS, 0], DX); // F000:05FC jne near 0x15C7 if (!ZeroFlag) { return unknown_F000_15C7_F15C7(0x0000); @@ -4237,7 +4237,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { // F000:0604 mov GS,AX GS = AX; // F000:0606 mov GS,word ptr DS:[0] - GS = UInt16[DS, (ushort)0x0000]; + GS = UInt16[DS, 0]; // F000:060A mov AX,GS AX = GS; // F000:060C cmp AX,DX @@ -4248,22 +4248,22 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { } CheckExternalEvents(cs1, 0x0612); // F000:0612 mov DX,0xF000 - DX = (ushort)0xF000; + DX = 0xF000; // F000:0615 mov AX,0 - AX = (ushort)0x0000; + AX = 0; // F000:0618 mov DS,AX DS = AX; // F000:061A mov word ptr DS:[0x0018],0x0633 - UInt16[DS, (ushort)0x0018] = (ushort)0x0633; + UInt16[DS, 0x0018] = 0x0633; // F000:0620 mov word ptr DS:[0x001A],0xF000 - UInt16[DS, (ushort)0x001A] = (ushort)0xF000; + UInt16[DS, 0x001A] = 0xF000; // F000:0626 mov AX,0x1000 - AX = (ushort)0x1000; + AX = 0x1000; // F000:0629 mov SS,AX SS = AX; State.InterruptShadowing = true; // F000:062B mov SP,0xFFFF - SP = (ushort)0xFFFF; + SP = 0xFFFF; // F000:062E invalid try { throw new Spice86.Core.Emulator.CPU.Exceptions.CpuInvalidOpcodeException("Attempted to write to CS register with MOV instruction"); @@ -4290,7 +4290,7 @@ public class CfgGeneratedOverrides : CSharpOverrideHelper { AX = CS; VerifySpeculativeEntryOrFail(cs1, 0x15C9, [(byte)0xA9, (byte)0x07, (byte)0x00]); // F000:15C9 test AX,7 - Alu16.And(AX, (ushort)0x0007); + Alu16.And(AX, 7); label_F000_15CC_F15CC_391: CheckExternalEvents(cs1, 0x15CC); VerifySpeculativeEntryOrFail(cs1, 0x15CC, [(byte)0x75, (byte)0xFE]);