From 18868128e18d38b706e7df14e8e683e1a9739c17 Mon Sep 17 00:00:00 2001 From: Melodi <62381002+Melodi17@users.noreply.github.com> Date: Tue, 17 Mar 2026 20:49:22 +1000 Subject: chore: Initial commit --- Q1.core/IAddressable.cs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 Q1.core/IAddressable.cs (limited to 'Q1.core/IAddressable.cs') diff --git a/Q1.core/IAddressable.cs b/Q1.core/IAddressable.cs new file mode 100644 index 0000000..49a697e --- /dev/null +++ b/Q1.core/IAddressable.cs @@ -0,0 +1,26 @@ +namespace Q1.core; + +public interface IAddressable +{ + public u8 Read(u16 address); + public void Write(u16 address, u8 value); + public void Clock(); +} + +public static class AddressableExtensions +{ + public static u16 ReadWord(this IAddressable bus, u16 address) + { + u8 high = bus.Read(address); + u8 low = bus.Read((u16)(address + 1)); + return (u16)((high << 8) | low); + } + + public static void WriteWord(this IAddressable bus, u16 address, u16 value) + { + u8 high = (u8) (value & 0xFF); + u8 low = (u8)((value >> 8) & 0xFF); + bus.Write(address, low); + bus.Write((u16)(address + 1), high); + } +} \ No newline at end of file -- cgit v1.3.1