diff options
Diffstat (limited to 'Q1.core/Arch/IInstruction.cs')
| -rw-r--r-- | Q1.core/Arch/IInstruction.cs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/Q1.core/Arch/IInstruction.cs b/Q1.core/Arch/IInstruction.cs new file mode 100644 index 0000000..2889937 --- /dev/null +++ b/Q1.core/Arch/IInstruction.cs @@ -0,0 +1,35 @@ +namespace Q1.core.Arch; + +public interface IInstruction +{ + public string Name { get; } +} + +public record struct ImplicitInstruction : IInstruction +{ + public string Name { get; set; } + + public Action<Chip, bool> Execute; +} + +public record struct SimpleInstruction : IInstruction +{ + public string Name { get; set; } + + public Action<Chip, u8, bool> Execute; +} + +public record struct ExtendedInstruction : IInstruction +{ + public string Name { get; set; } + + public Action<Chip, u8, u8, bool> Execute; +} + +public record struct InstructionGroup +{ + public ImplicitInstruction Implicit; + public SimpleInstruction SimpleAddressing; + public ImplicitInstruction ExtendedImplicit; + public ExtendedInstruction ExtendedAddressing; +}
\ No newline at end of file |
