34#include "SerialPort.h"
35#include "EventScheduler.h"
58 void underFlow()
override;
60 void serialPort()
override;
79 void underFlow()
override;
113 void triggerInterrupt()
override
127 void trigger(uint8_t interruptMask)
override;
143 void trigger(uint8_t interruptMask)
override;
145 uint8_t
clear()
override;
170 static const char *credit;
178 uint8_t &
pra, &prb, &ddra, &ddrb;
240 void handleSerialPort();
258 virtual void portA() {}
259 virtual void portB() {}
272 uint8_t
read(uint_least8_t addr);
282 void write(uint_least8_t addr, uint8_t data);
295 virtual void reset();
Definition EventCallback.h:36
Definition EventScheduler.h:62
void trigger(uint8_t interruptMask) override
Definition mos652x.cpp:86
uint8_t clear() override
Definition mos652x.cpp:104
void trigger(uint8_t interruptMask) override
Definition mos652x.cpp:76
Definition interrupt.h:44
uint8_t idr
Interrupt data register.
Definition interrupt.h:73
@ INTERRUPT_REQUEST
control bit
Definition interrupt.h:54
bool ack0() const
Definition interrupt.h:105
TimerA timerA
Timers A and B.
Definition mos652x.h:186
void write(uint_least8_t addr, uint8_t data)
Definition mos652x.cpp:221
uint8_t regs[0x10]
These are all CIA registers.
Definition mos652x.h:182
uint8_t adjustDataPort(uint8_t data)
Definition mos652x.cpp:165
EventScheduler & eventScheduler
Event context.
Definition mos652x.h:174
uint8_t & pra
Ports.
Definition mos652x.h:178
Tod tod
TOD.
Definition mos652x.h:194
model_t
Definition mos652x.h:163
@ MOS6526W4485
A batch of old CIA model with unique serial port behavior.
@ MOS6526
Old CIA model, interrupts are delayed by 1 clock.
static const char * credits()
Definition mos652x.cpp:112
void setModel(model_t model)
Definition mos652x.cpp:322
virtual void reset()
Definition mos652x.cpp:146
EventCallback< MOS652X > bTickEvent
Events.
Definition mos652x.h:201
uint8_t read(uint_least8_t addr)
Definition mos652x.cpp:182
std::unique_ptr< InterruptSource > interruptSource
Interrupt Source.
Definition mos652x.h:191
SerialPort serialPort
Serial Data Registers.
Definition mos652x.h:197
void setDayOfTimeRate(unsigned int clock)
Definition mos652x.h:309
virtual void interrupt(bool state)=0
Definition SerialPort.h:37
TimerA(EventScheduler &scheduler, MOS652X &parent)
Definition mos652x.h:66
TimerB(EventScheduler &scheduler, MOS652X &parent)
Definition mos652x.h:85
void cascade()
Definition mos652x.h:91
bool started() const
Definition mos652x.h:104
void wakeUpAfterSyncWithCpu()
Definition timer.cpp:60
void syncWithCpu()
Definition timer.cpp:37
int_least32_t state
CRA/CRB control register / state.
Definition timer.h:95
MOS652X & parent
Pointer to the MOS6526 which this Timer belongs to.
Definition timer.h:92
void setPeriod(event_clock_t clock)
Definition tod.h:118