27#include "EventScheduler.h"
28#include "EventCallback.h"
67 event_clock_t last_set = 0;
95 inline bool interruptMasked(uint8_t interruptMask)
const
100 virtual void triggerInterrupt() =0;
152 bool isTriggered(uint8_t interruptMask);
155 virtual ~InterruptSource() =
default;
162 virtual void trigger(uint8_t interruptMask) =0;
169 virtual uint8_t
clear();
197 void set(uint8_t interruptMask);
Definition EventCallback.h:36
Definition EventScheduler.h:62
event_clock_t getTime(event_phase_t phase) const
Definition EventScheduler.h:158
void cancel(Event &event)
Definition EventScheduler.cpp:35
Definition interrupt.h:44
uint8_t idr
Interrupt data register.
Definition interrupt.h:73
EventScheduler & eventScheduler
Event scheduler.
Definition interrupt.h:63
event_clock_t last_clear
Clock when clear was called last.
Definition interrupt.h:66
InterruptSource(EventScheduler &scheduler, MOS652X &parent)
Definition interrupt.h:126
bool asserted
is the irq pin asserted?
Definition interrupt.h:81
void set(uint8_t interruptMask)
Definition interrupt.cpp:93
@ INTERRUPT_NONE
no interrupt
Definition interrupt.h:48
@ INTERRUPT_REQUEST
control bit
Definition interrupt.h:54
@ INTERRUPT_SP
serial port
Definition interrupt.h:52
@ INTERRUPT_UNDERFLOW_B
underflow Timer B
Definition interrupt.h:50
@ INTERRUPT_FLAG
external flag
Definition interrupt.h:53
@ INTERRUPT_ALARM
alarm clock
Definition interrupt.h:51
@ INTERRUPT_UNDERFLOW_A
underflow Timer A
Definition interrupt.h:49
bool ack0() const
Definition interrupt.h:105
bool scheduled
Have we already scheduled CIA->CPU interrupt transition?
Definition interrupt.h:78
uint8_t icr
Interrupt control register.
Definition interrupt.h:70
virtual void reset()
Definition interrupt.h:175
void schedule(int delay)
Definition interrupt.h:138
virtual void trigger(uint8_t interruptMask)=0
virtual uint8_t clear()
Definition interrupt.cpp:110
void interrupt()
Definition interrupt.cpp:30