summaryrefslogtreecommitdiff
path: root/Chip/BusDevice.cs
diff options
context:
space:
mode:
authorMelodi <62381002+Melodi17@users.noreply.github.com>2025-08-05 21:24:16 +1000
committerMelodi <62381002+Melodi17@users.noreply.github.com>2025-08-05 21:24:16 +1000
commit16f3cb74564cf7c19da6e13666c98aca36094716 (patch)
tree7346a7c12a82bc372ed82dad8e9a5d9ad6b098b7 /Chip/BusDevice.cs
parent72f297a479b6749674ec80e91be53b8c482123d2 (diff)
updates
Diffstat (limited to 'Chip/BusDevice.cs')
-rw-r--r--Chip/BusDevice.cs18
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() { }