31 #include "interrupt.h"
34 #include "SerialPort.h"
35 #include "EventScheduler.h"
41 namespace libsidplayfp
58 void underFlow()
override;
60 void serialPort()
override;
69 inline uint_least16_t getLatchTimerDiff()
const {
return latch-
timer; }
81 void underFlow()
override;
119 void trigger(uint8_t interruptMask)
override;
121 uint8_t
clear()
override;
142 void trigger(uint8_t interruptMask)
override;
144 uint8_t
clear()
override;
146 void reset()
override;
164 static const char *credit;
172 uint8_t &
pra, &prb, &ddra, &ddrb;
234 void handleSerialPort();
252 virtual void portA() {}
253 virtual void portB() {}
266 uint8_t
read(uint_least8_t addr);
276 void write(uint_least8_t addr, uint8_t data);
289 virtual void reset();
Definition: EventCallback.h:36
Definition: EventScheduler.h:62
Definition: mos6526.h:128
void trigger(uint8_t interruptMask) override
Definition: mos6526.cpp:106
uint8_t clear() override
Definition: mos6526.cpp:137
void reset() override
Definition: mos6526.cpp:153
Definition: mos6526.h:113
uint8_t clear() override
Definition: mos6526.cpp:94
void trigger(uint8_t interruptMask) override
Definition: mos6526.cpp:75
Definition: interrupt.h:42
uint8_t idr
Interrupt data register.
Definition: interrupt.h:70
InterruptSource(EventScheduler &scheduler, MOS6526 &parent)
Definition: interrupt.h:90
@ INTERRUPT_UNDERFLOW_B
underflow Timer B
Definition: interrupt.h:48
Definition: mos6526.h:156
Tod tod
TOD.
Definition: mos6526.h:188
TimerA timerA
Timers A and B.
Definition: mos6526.h:180
uint8_t regs[0x10]
These are all CIA registers.
Definition: mos6526.h:176
uint8_t adjustDataPort(uint8_t data)
Definition: mos6526.cpp:213
virtual void reset()
Definition: mos6526.cpp:194
uint8_t read(uint_least8_t addr)
Definition: mos6526.cpp:230
void write(uint_least8_t addr, uint8_t data)
Definition: mos6526.cpp:269
virtual void interrupt(bool state)=0
EventScheduler & eventScheduler
Event context.
Definition: mos6526.h:168
EventCallback< MOS6526 > bTickEvent
Events.
Definition: mos6526.h:195
SerialPort serialPort
Serial Data Registers.
Definition: mos6526.h:191
void setDayOfTimeRate(unsigned int clock)
Definition: mos6526.h:303
uint8_t & pra
Ports.
Definition: mos6526.h:172
static const char * credits()
Definition: mos6526.cpp:160
void setModel(bool newModel)
Definition: mos6526.cpp:371
MOS6526(EventScheduler &scheduler)
Definition: mos6526.cpp:170
std::unique_ptr< InterruptSource > interruptSource
Interrupt Source.
Definition: mos6526.h:185
Definition: SerialPort.h:37
TimerA(EventScheduler &scheduler, MOS6526 &parent)
Definition: mos6526.h:66
TimerB(EventScheduler &scheduler, MOS6526 &parent)
Definition: mos6526.h:87
void cascade()
Definition: mos6526.h:93
bool started() const
Definition: mos6526.h:106
void wakeUpAfterSyncWithCpu()
Definition: timer.cpp:60
uint_least16_t latch
Timer start value (Latch).
Definition: timer.h:95
void syncWithCpu()
Definition: timer.cpp:37
int_least32_t state
CRA/CRB control register / state.
Definition: timer.h:89
uint_least16_t timer
Current timer value.
Definition: timer.h:92
MOS6526 & parent
Pointer to the MOS6526 which this Timer belongs to.
Definition: timer.h:86
void setPeriod(event_clock_t clock)
Definition: tod.h:118