summaryrefslogtreecommitdiff
path: root/Q1.core/Arch/Constants
diff options
context:
space:
mode:
authorMelodi <62381002+Melodi17@users.noreply.github.com>2026-07-11 09:03:50 +1000
committerMelodi <62381002+Melodi17@users.noreply.github.com>2026-07-11 09:03:50 +1000
commitcb3cc7e94327c57a0f7539d8f8f2406ca4b04037 (patch)
tree8e4d241a466e58b438579622a8a1a6e2339489e9 /Q1.core/Arch/Constants
parent512a5f0efeea46994d01124b409ef51f9b9177a0 (diff)
Diffstat (limited to 'Q1.core/Arch/Constants')
-rw-r--r--Q1.core/Arch/Constants/ChipRegisters.cs36
1 files changed, 36 insertions, 0 deletions
diff --git a/Q1.core/Arch/Constants/ChipRegisters.cs b/Q1.core/Arch/Constants/ChipRegisters.cs
index 042ce32..40caf6a 100644
--- a/Q1.core/Arch/Constants/ChipRegisters.cs
+++ b/Q1.core/Arch/Constants/ChipRegisters.cs
@@ -16,4 +16,40 @@ public static class ChipRegisters
public const u8 PC = 0x4C;
public const u8 SP = 0x4D;
+
+ public static u8? GetRegisterIndex(string name)
+ {
+ return name switch
+ {
+ "AX" => AX,
+ "AH" => AH,
+ "AL" => AL,
+ "DX" => DX,
+ "DH" => DH,
+ "DL" => DL,
+ "LX" => LX,
+ "PC" => PC,
+ "SP" => SP,
+ _ when name.StartsWith("V") && byte.TryParse(name[1..], out u8 index) && index < GENERIC_REGISTER_COUNT => index,
+ _ => null
+ };
+ }
+
+ public static string? GetRegisterName(u8 index)
+ {
+ return index switch
+ {
+ AX => "AX",
+ AH => "AH",
+ AL => "AL",
+ DX => "DX",
+ DH => "DH",
+ DL => "DL",
+ LX => "LX",
+ PC => "PC",
+ SP => "SP",
+ _ when index < GENERIC_REGISTER_COUNT => $"V{index}",
+ _ => null
+ };
+ }
} \ No newline at end of file