Devices use start/end address

This commit is contained in:
Max840 committed 2013-12-23 23:31:51 -05:00
1 parent a5af522c5c
commit d1a05aeb2b
5 files changed
+20 -20

No files matched your search

@@ -75,7 +75,7 @@ public class Acia extends Device {
private boolean txEmpty = true;
public Acia(int address) throws MemoryRangeException {
super(address, ACIA_SIZE, "ACIA");
super(address, address + ACIA_SIZE - 1, "ACIA");
this.baseAddress = address;
}
@@ -41,14 +41,14 @@ public abstract class Device implements Comparable<Device> {
/** Reference to the bus where this Device is attached. */
private Bus bus;
public Device(int address, int size, String name)
public Device(int startAddress, int endAddress, String name)
throws MemoryRangeException {
this.memoryRange = new MemoryRange(address, address + size - 1);
this.memoryRange = new MemoryRange(startAddress, endAddress);
this.name = name;
}
public Device(int address, int size) throws MemoryRangeException {
this(address, size, null);
public Device(int startAddress, int endAddress) throws MemoryRangeException {
this(startAddress, endAddress, null);
}
/* Methods required to be implemented by inheriting classes. */
@@ -38,26 +38,26 @@ public class Memory extends Device {
/* Initialize all locations to 0x00 (BRK) */
private static final int DEFAULT_FILL = 0x00;
public Memory(int address, int size, boolean readOnly)
public Memory(int startAddress, int endAddress, boolean readOnly)
throws MemoryRangeException {
super(address, size, (readOnly ? "RO Memory" : "RW Memory"));
super(startAddress, endAddress, (readOnly ? "RO Memory" : "RW Memory"));
this.readOnly = readOnly;
this.mem = new int[size];
this.mem = new int[endAddress - startAddress + 1];
this.fill(DEFAULT_FILL);
}
public Memory(int address, int size) throws MemoryRangeException {
this(address, size, false);
public Memory(int startAddress, int endAddress) throws MemoryRangeException {
this(startAddress, endAddress, false);
}
public static Memory makeROM(int address, int size, File f) throws MemoryRangeException, IOException {
Memory memory = new Memory(address, size, true);
public static Memory makeROM(int startAddress, int endAddress, File f) throws MemoryRangeException, IOException {
Memory memory = new Memory(startAddress, endAddress, true);
memory.loadFromFile(f);
return memory;
}
public static Memory makeRAM(int address, int size) throws MemoryRangeException {
Memory memory = new Memory(address, size, false);
public static Memory makeRAM(int startAddress, int endAddress) throws MemoryRangeException {
Memory memory = new Memory(startAddress, endAddress, false);
return memory;
}
@@ -109,4 +109,4 @@ public class Memory extends Device {
return "Memory: " + getMemoryRange().toString();
}
}
}
@@ -47,7 +47,7 @@ public class Via extends Device {
private static final int ORA_H = 15;
public Via(int address) throws MemoryRangeException {
super(address, VIA_SIZE, "VIA");
super(address, address + VIA_SIZE - 1, "VIA");
}
@Override