From 7a8d2bcd75d88a5429937bf551878c55e1dcf0fd Mon Sep 17 00:00:00 2001 From: Melodi <62381002+Melodi17@users.noreply.github.com> Date: Wed, 6 Aug 2025 22:36:34 +1000 Subject: moved everything to seperate projects, and started compiler work + push and pop instructions added --- Emulator/Chip/Bus.cs | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Emulator/Chip/Bus.cs (limited to 'Emulator/Chip/Bus.cs') diff --git a/Emulator/Chip/Bus.cs b/Emulator/Chip/Bus.cs new file mode 100644 index 0000000..0907f61 --- /dev/null +++ b/Emulator/Chip/Bus.cs @@ -0,0 +1,37 @@ +namespace Q1.Emulator.Chip; + +using System.Collections.Generic; +using System.Linq; + +public class Bus : BusDevice +{ + public List Devices; + + public Bus(u16 addressableStart, u16 addressableEnd) : base(addressableStart, addressableEnd) + { + this.Devices = []; + } + private BusDevice? GetDevice(u16 address) + { + BusDevice? device = this.Devices.FirstOrDefault(x => address >= x.AddressableStart && address < x.AddressableEnd); + return device; + } + + public override u8 Read(u16 address) + { + BusDevice? device = this.GetDevice(address); + if (device == null) + return 0; + + return device.Read(address); + } + + public override void Write(u16 address, u8 value) + { + BusDevice? device = this.GetDevice(address); + if (device == null) + return; + + device.Write(address, value); + } +} \ No newline at end of file -- cgit v1.3.1