27 #include "EventScheduler.h"
33 namespace libsidplayfp
77 inline bool interruptMasked()
const {
return icr &
idr; }
96 Event(
"CIA Interrupt"),
117 void interrupt(
bool state);
127 virtual void trigger(uint8_t interruptMask) {
idr |= interruptMask; }
134 virtual uint8_t
clear();
153 void set(uint8_t interruptMask)
155 if (interruptMask & 0x80)
162 icr &= ~interruptMask;
169 void event()
override;
Definition: EventScheduler.h:62
event_clock_t getTime(event_phase_t phase) const
Definition: EventScheduler.h:162
void cancel(Event &event)
Definition: EventScheduler.cpp:35
Definition: interrupt.h:42
uint8_t idr
Interrupt data register.
Definition: interrupt.h:70
EventScheduler & eventScheduler
Event scheduler.
Definition: interrupt.h:61
event_clock_t last_clear
Clock when clear was called last.
Definition: interrupt.h:64
void event() override
Definition: interrupt.cpp:31
InterruptSource(EventScheduler &scheduler, MOS652X &parent)
Definition: interrupt.h:95
void set(uint8_t interruptMask)
Definition: interrupt.h:153
void schedule()
Definition: interrupt.h:108
@ INTERRUPT_NONE
no interrupt
Definition: interrupt.h:46
@ INTERRUPT_REQUEST
control bit
Definition: interrupt.h:52
@ INTERRUPT_SP
serial port
Definition: interrupt.h:50
@ INTERRUPT_UNDERFLOW_B
underflow Timer B
Definition: interrupt.h:48
@ INTERRUPT_FLAG
external flag
Definition: interrupt.h:51
@ INTERRUPT_ALARM
alarm clock
Definition: interrupt.h:49
@ INTERRUPT_UNDERFLOW_A
underflow Timer A
Definition: interrupt.h:47
bool ack0() const
Definition: interrupt.h:86
virtual void trigger(uint8_t interruptMask)
Definition: interrupt.h:127
uint8_t icr
Interrupt control register.
Definition: interrupt.h:67
virtual void reset()
Definition: interrupt.h:140
virtual uint8_t clear()
Definition: interrupt.cpp:44
Definition: mos652x.h:151