30 #include "EventScheduler.h"
31 #include "c64/component.h"
57 Timer(
"CIA Timer A", context, parent) {}
76 Timer(
"CIA Timer B", context, parent) {}
110 static const char *credit;
196 void trigger(uint8_t interruptMask);
216 virtual void portA() {}
217 virtual void portB() {}
225 uint8_t
read(uint_least8_t addr);
235 void write(uint_least8_t addr, uint8_t data);
244 virtual void reset();
252 static const char *
credits() {
return credit; }
void bTick()
Definition: mos6526.cpp:312
uint8_t regs[0x10]
These are all CIA registers.
Definition: mos6526.h:114
uint8_t & ddrb
Ports.
Definition: mos6526.h:118
Definition: mos6526.h:103
uint8_t idr
Interrupt data register.
Definition: mos6526.h:138
TimerB(EventContext *context, MOS6526 *parent)
Definition: mos6526.h:75
TimerA timerA
Timers A and B.
Definition: mos6526.h:123
int sdr_count
Serial Data Registers.
Definition: mos6526.h:131
uint8_t sdr_out
Serial Data Registers.
Definition: mos6526.h:129
bool started() const
Definition: mos6526.h:94
void cascade()
Definition: mos6526.h:81
uint8_t read(uint_least8_t addr)
Definition: mos6526.cpp:154
void trigger()
Definition: mos6526.cpp:291
void setPeriod(event_clock_t clock)
Definition: tod.h:109
static const char * credits()
Definition: mos6526.h:252
EventCallback< MOS6526 > bTickEvent
Events.
Definition: mos6526.h:151
void clear()
Definition: mos6526.cpp:123
MOS6526 *const parent
Pointer to the MOS6526 which this Timer belongs to.
Definition: timer.h:88
uint8_t & ddra
Ports.
Definition: mos6526.h:118
void underflowA()
Definition: mos6526.cpp:317
EventCallback< MOS6526 > triggerEvent
Events.
Definition: mos6526.h:152
Tod tod
TOD.
Definition: mos6526.h:144
Definition: component.h:28
bool triggerScheduled
Have we already scheduled CIA->CPU interrupt transition?
Definition: mos6526.h:147
void serialPort()
Definition: mos6526.cpp:102
int_least32_t state
CRA/CRB control register / state.
Definition: timer.h:91
void underflowB()
Definition: mos6526.cpp:329
uint8_t & prb
Ports.
Definition: mos6526.h:118
bool sdr_buffered
Serial Data Registers.
Definition: mos6526.h:130
void write(uint_least8_t addr, uint8_t data)
Definition: mos6526.cpp:216
uint8_t icr
Interrupt control register.
Definition: mos6526.h:135
MOS6526(EventContext *context)
Definition: mos6526.cpp:86
virtual void reset()
Definition: mos6526.cpp:131
virtual void interrupt(bool state)=0
void syncWithCpu()
Definition: timer.cpp:34
void wakeUpAfterSyncWithCpu()
Definition: timer.cpp:57
TimerA(EventContext *context, MOS6526 *parent)
Definition: mos6526.h:56
EventContext & event_context
Event context.
Definition: mos6526.h:141
uint8_t & pra
Ports.
Definition: mos6526.h:118
void setDayOfTimeRate(unsigned int clock)
Definition: mos6526.h:259
TimerB timerB
Timers A and B.
Definition: mos6526.h:124