From cb3cc7e94327c57a0f7539d8f8f2406ca4b04037 Mon Sep 17 00:00:00 2001 From: Melodi <62381002+Melodi17@users.noreply.github.com> Date: Sat, 11 Jul 2026 09:03:50 +1000 Subject: checkpoint --- Q1.core/Arch/Lookups/InstructionSet.cs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'Q1.core/Arch/Lookups') diff --git a/Q1.core/Arch/Lookups/InstructionSet.cs b/Q1.core/Arch/Lookups/InstructionSet.cs index 2ea20fc..ad81f2e 100644 --- a/Q1.core/Arch/Lookups/InstructionSet.cs +++ b/Q1.core/Arch/Lookups/InstructionSet.cs @@ -20,6 +20,31 @@ public static class InstructionSet throw new ArgumentException($"Instruction '{instructionName}' not found in the instruction set."); } + public static u8 GetOpcodeWithIndex(string instructionName, out u8 index) + { + for (u8 opcode = 0; opcode < InstructionSet.Lookup.Length; opcode++) + { + var group = InstructionSet.Lookup[opcode]; + if (group.Implicit.Name == instructionName || + group.SimpleAddressing.Name == instructionName || + group.ExtendedImplicit.Name == instructionName || + group.ExtendedAddressing.Name == instructionName) + { + if (group.Implicit.Name == instructionName) + index = 0; + else if (group.SimpleAddressing.Name == instructionName) + index = 1; + else if (group.ExtendedImplicit.Name == instructionName) + index = 2; + else + index = 3; + + return opcode; + } + } + throw new ArgumentException($"Instruction '{instructionName}' not found in the instruction set."); + } + static InstructionSet() { var nop = new ImplicitInstruction { Name = "NOP", Execute = InstructionSet.Nop }; -- cgit v1.3.1