31 #include "interrupt.h" 34 #include "SerialPort.h" 35 #include "EventScheduler.h" 41 namespace libsidplayfp
58 void underFlow()
override;
60 void serialPort()
override;
79 void underFlow()
override;
117 void trigger(uint8_t interruptMask)
override;
119 uint8_t
clear()
override;
123 throw "8521 event called unexpectedly";
134 event_clock_t last_clear;
163 void trigger(uint8_t interruptMask)
override;
165 uint8_t
clear()
override;
170 void event()
override;
172 void reset()
override;
191 static const char *credit;
261 void handleSerialPort();
279 virtual void portA() {}
280 virtual void portB() {}
288 uint8_t
read(uint_least8_t addr);
298 void write(uint_least8_t addr, uint8_t data);
311 virtual void reset();
Definition: mos6526.h:110
bool started() const
Definition: mos6526.h:104
Definition: mos6526.h:181
uint8_t clear() override
Definition: mos6526.cpp:128
uint8_t & ddra
Ports.
Definition: mos6526.h:199
void trigger(uint8_t interruptMask) override
Definition: mos6526.cpp:75
void setModel(bool newModel)
Definition: mos6526.cpp:376
Definition: EventCallback.h:35
void trigger(uint8_t interruptMask) override
Definition: mos6526.cpp:98
EventScheduler & eventScheduler
Event scheduler.
Definition: interrupt.h:60
virtual void reset()
Definition: mos6526.cpp:202
MOS6526 & parent
Pointer to the MOS6526 which this Timer belongs to.
Definition: timer.h:92
InterruptSource(EventScheduler &scheduler, MOS6526 &parent)
Definition: interrupt.h:85
uint8_t regs[0x10]
These are all CIA registers.
Definition: mos6526.h:203
uint8_t & prb
Ports.
Definition: mos6526.h:199
void reset() override
Definition: mos6526.cpp:160
TimerB(EventScheduler &scheduler, MOS6526 &parent)
Definition: mos6526.h:85
Definition: interrupt.h:41
static const char * credits()
Definition: mos6526.cpp:168
SerialPort serialPort
Serial Data Registers.
Definition: mos6526.h:218
uint8_t clear() override
Definition: mos6526.cpp:86
void syncWithCpu()
Definition: timer.cpp:37
void event() override
Definition: mos6526.h:121
uint8_t & pra
Ports.
Definition: mos6526.h:199
MOS6526(EventScheduler &scheduler)
Definition: mos6526.cpp:178
void setDayOfTimeRate(unsigned int clock)
Definition: mos6526.h:325
TimerA timerA
Timers A and B.
Definition: mos6526.h:207
int_least32_t state
CRA/CRB control register / state.
Definition: timer.h:95
Definition: SerialPort.h:36
uint8_t read(uint_least8_t addr)
Definition: mos6526.cpp:221
TimerA(EventScheduler &scheduler, MOS6526 &parent)
Definition: mos6526.h:66
void wakeUpAfterSyncWithCpu()
Definition: timer.cpp:60
Definition: EventScheduler.h:61
Definition: mos6526.h:130
uint8_t & ddrb
Ports.
Definition: mos6526.h:199
Tod tod
TOD.
Definition: mos6526.h:215
void event() override
Definition: mos6526.cpp:152
void cascade()
Definition: mos6526.h:91
std::unique_ptr< InterruptSource > interruptSource
Interrupt Source.
Definition: mos6526.h:212
EventScheduler & eventScheduler
Event context.
Definition: mos6526.h:195
void write(uint_least8_t addr, uint8_t data)
Definition: mos6526.cpp:276
TimerB timerB
Timers A and B.
Definition: mos6526.h:208
void setPeriod(event_clock_t clock)
Definition: tod.h:118
EventCallback< MOS6526 > bTickEvent
Events.
Definition: mos6526.h:222
virtual void interrupt(bool state)=0
MOS6526 & parent
Pointer to the MOS6526 which this Interrupt belongs to.
Definition: interrupt.h:57