29#include "Banks/Bank.h"
30#include "c64/c64env.h"
32#include "CIA/mos652x.h"
50 uint_least16_t last_ta;
55 m_env.interruptIRQ(state);
60 const uint8_t pb = prb | ~ddrb;
63 m_env.lightpen(pb & 0x10);
67 explicit c64cia1(c64env &env) :
73 void poke(uint_least16_t address, uint8_t value)
override
75 const uint8_t addr = endian_16lo8(address);
79 if ((addr == 0x04) || (addr == 0x05))
81 if (
timerA.getTimer() != 0)
82 last_ta =
timerA.getTimer();
86 uint8_t
peek(uint_least16_t address)
override
88 return read(endian_16lo8(address));
97 uint_least16_t getTimerA()
const {
return last_ta; }
116 m_env.interruptNMI();
126 void poke(uint_least16_t address, uint8_t value)
override
128 write(endian_16lo8(address), value);
131 uint8_t
peek(uint_least16_t address)
override
133 return read(endian_16lo8(address));
TimerA timerA
Timers A and B.
Definition mos652x.h:186
void write(uint_least8_t addr, uint8_t data)
Definition mos652x.cpp:222
MOS652X(EventScheduler &scheduler)
Definition mos652x.cpp:122
virtual void reset()
Definition mos652x.cpp:147
uint8_t read(uint_least8_t addr)
Definition mos652x.cpp:183
void reset() override
Definition c64cia.h:91
void poke(uint_least16_t address, uint8_t value) override
Definition c64cia.h:73
void interrupt(bool state) override
Definition c64cia.h:53
uint8_t peek(uint_least16_t address) override
Definition c64cia.h:86
void poke(uint_least16_t address, uint8_t value) override
Definition c64cia.h:126
uint8_t peek(uint_least16_t address) override
Definition c64cia.h:131
void interrupt(bool state) override
Definition c64cia.h:113