libsidplayfp
2.2.2
|
#include <interrupt.h>
Public Types | |
enum | { INTERRUPT_NONE = 0 , INTERRUPT_UNDERFLOW_A = 1 << 0 , INTERRUPT_UNDERFLOW_B = 1 << 1 , INTERRUPT_ALARM = 1 << 2 , INTERRUPT_SP = 1 << 3 , INTERRUPT_FLAG = 1 << 4 , INTERRUPT_REQUEST = 1 << 7 } |
Public Member Functions | |
virtual void | trigger (uint8_t interruptMask) |
virtual uint8_t | clear () |
virtual void | reset () |
void | set (uint8_t interruptMask) |
void | event () override |
Protected Member Functions | |
bool | interruptMasked () const |
bool | interruptTriggered () const |
void | triggerInterrupt () |
bool | ack0 () const |
InterruptSource (EventScheduler &scheduler, MOS652X &parent) | |
void | schedule () |
void | interrupt (bool state) |
Event (const char *const name) | |
Protected Attributes | |
EventScheduler & | eventScheduler |
Event scheduler. | |
event_clock_t | last_clear |
Clock when clear was called last. | |
uint8_t | icr |
Interrupt control register. | |
uint8_t | idr |
Interrupt data register. | |
This is the base class for the MOS6526 interrupt sources.
anonymous enum |
|
inlineprotected |
Create a new InterruptSource.
scheduler | event scheduler |
parent | the MOS6526 which this Interrupt belongs to |
|
inlineprotected |
Check if interrupts were ackowledged during previous cycle.
|
virtual |
Clear interrupt state.
Reimplemented in libsidplayfp::InterruptSource6526.
|
overridevirtual |
Signal interrupt to CPU.
Implements libsidplayfp::Event.
|
inlinevirtual |
Clear pending interrupts, but do not signal to CPU we lost them. It is assumed that all components get reset() calls in synchronous manner.
Reimplemented in libsidplayfp::InterruptSource6526.
|
inlineprotected |
Schedules an IRQ asserting state transition for next cycle.
|
inline |
Set interrupt control mask bits.
interruptMask | control mask bits |
|
inlinevirtual |
Trigger an interrupt.
interruptMask | Interrupt flag number |
Reimplemented in libsidplayfp::InterruptSource6526, and libsidplayfp::InterruptSource8521.