Files
symon/src/main/java/com/loomcom/lm6502/Device.java
T

40 lines
690 B
Java

package com.loomcom.lm6502;
/**
* A memory-mapped IO Device.
*/
public abstract class Device {
/** The memory range for this device. */
private MemoryRange m_memoryRange;
/** Reference to the CPU, for interrupts. */
private Cpu m_cpu;
public Device(MemoryRange range, Cpu cpu) {
m_memoryRange = range;
m_cpu = cpu;
}
public MemoryRange getMemoryRange() {
return m_memoryRange;
}
public int getEndAddress() {
return m_memoryRange.getEndAddress();
}
public int getStartAddress() {
return m_memoryRange.getStartAddress();
}
public void generateInterrupt() {
m_cpu.interrupt();
}
public void generateNonMaskableInterrupt() {
m_cpu.nmiInterrupt();
}
}