mirror of
https://codeberg.org/sethm/symon.git
synced 2026-11-07 19:12:23 +00:00
40 lines
690 B
Java
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();
|
|
}
|
|
|
|
} |