diff options
| author | Melodi <62381002+Melodi17@users.noreply.github.com> | 2025-08-05 21:24:16 +1000 |
|---|---|---|
| committer | Melodi <62381002+Melodi17@users.noreply.github.com> | 2025-08-05 21:24:16 +1000 |
| commit | 16f3cb74564cf7c19da6e13666c98aca36094716 (patch) | |
| tree | 7346a7c12a82bc372ed82dad8e9a5d9ad6b098b7 /Chip/BusDevice.cs | |
| parent | 72f297a479b6749674ec80e91be53b8c482123d2 (diff) | |
updates
Diffstat (limited to 'Chip/BusDevice.cs')
| -rw-r--r-- | Chip/BusDevice.cs | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/Chip/BusDevice.cs b/Chip/BusDevice.cs index e1f559c..8b677c5 100644 --- a/Chip/BusDevice.cs +++ b/Chip/BusDevice.cs @@ -14,20 +14,26 @@ public abstract class BusDevice public abstract u8 Read(u16 address); public abstract void Write(u16 address, u8 value); - public abstract ref8 ReadSeq(u16 address, u16 length); - public abstract void WriteSeq(u16 address, u16 length, ref8 value); - public u16 ReadWord(u16 address) { - ref8 data = this.ReadSeq(address, 2); - u16 value = Make.u16(data); + u8 high = this.Read(address); + u8 low = this.Read((u16) (address + 1)); + u16 value = Make.u16(high, low); return value; } public void WriteWord(u16 address, u16 value) { ref8 data = Make.ref8(value); - this.WriteSeq(address, 2, data); + this.Write(address, data[0]); + this.Write((u16) (address + 1), data[1]); + } + + public i16 ReadSignedWord(u16 address) + { + u8 high = this.Read(address); + u8 low = this.Read((u16) (address + 1)); + return Make.i16(high, low); } public virtual void Clock() { } |
