31 #include "Banks/IOBank.h"
32 #include "Banks/ColorRAMBank.h"
33 #include "Banks/DisconnectedBusBank.h"
34 #include "Banks/SidBank.h"
35 #include "Banks/ExtraSidBank.h"
37 #include "EventScheduler.h"
39 #include "c64/c64env.h"
40 #include "c64/c64cpu.h"
41 #include "c64/c64cia.h"
42 #include "c64/c64vic.h"
51 namespace libsidplayfp
92 typedef std::map<int, ExtraSidBank*> sidBankMap_t;
126 sidBankMap_t extraSidBanks;
138 static double getCpuFreq(
model_t model);
147 uint8_t cpuRead(uint_least16_t addr)
override {
return mmu.
cpuRead(addr); }
155 void cpuWrite(uint_least16_t addr, uint8_t data)
override { mmu.
cpuWrite(addr, data); }
164 inline void interruptIRQ(
bool state)
override;
171 inline void interruptNMI()
override { cpu.
triggerNMI(); }
176 inline void interruptRST()
override { cpu.
triggerRST(); }
185 inline void setBA(
bool state)
override;
190 inline void lightpen(
bool state)
override;
204 uint_least32_t getTime()
const {
return getTimeMs() / 1000; }
206 uint_least32_t getTimeMs()
const {
return static_cast<uint_least32_t
>((eventScheduler.
getTime(EVENT_CLOCK_PHI1) * 1000) / cpuFrequency); }
215 void debug(
bool enable, FILE *out) { cpu.debug(enable, out); }
218 void resetCpu() { cpu.
reset(); }
265 const char* ciaCredits()
const {
return cia1.
credits(); }
266 const char* vicCredits()
const {
return vic.credits(); }
269 sidmemory& getMemInterface() {
return mmu; }
271 uint_least16_t getCia1TimerA()
const {
return cia1.getTimerA(); }
274 void c64::interruptIRQ(
bool state)
291 void c64::setBA(
bool state)
294 if (state == oldBAState)
303 void c64::lightpen(
bool state)
Definition: ColorRAMBank.h:43
Definition: DisconnectedBusBank.h:42
Definition: EventScheduler.h:62
event_clock_t getTime(event_phase_t phase) const
Definition: EventScheduler.h:162
void clock()
Definition: EventScheduler.h:140
void cpuWrite(uint_least16_t addr, uint8_t data)
Definition: mmu.h:135
uint8_t cpuRead(uint_least16_t addr) const
Definition: mmu.h:127
void setRDY(bool newRDY)
Definition: mos6510.cpp:120
void triggerNMI()
Definition: mos6510.cpp:182
static const char * credits()
Definition: mos6510.cpp:2188
void triggerRST()
Definition: mos6510.cpp:168
void reset()
Definition: mos6510.cpp:2169
void triggerIRQ()
Definition: mos6510.cpp:198
void clearIRQ()
Definition: mos6510.cpp:214
static const char * credits()
Definition: mos652x.cpp:143
void clearLightpen()
Definition: mos656x.cpp:697
void triggerLightpen()
Definition: mos656x.cpp:684
model_t
Definition: c64.h:76
@ PAL_B
PAL C64.
Definition: c64.h:77
@ PAL_N
C64 Drean.
Definition: c64.h:80
@ PAL_M
C64 Brasil.
Definition: c64.h:81
@ OLD_NTSC_M
Old NTSC C64.
Definition: c64.h:79
@ NTSC_M
NTSC C64.
Definition: c64.h:78
bool addExtraSid(c64sid *s, int address)
Definition: c64.cpp:157
void setCiaModel(cia_model_t model)
Definition: c64.cpp:146
void setBaseSid(c64sid *s)
Definition: c64.cpp:152
const char * cpuCredits() const
Definition: c64.h:264
double getMainCpuSpeed() const
Definition: c64.h:235
void setModel(model_t model)
Definition: c64.cpp:136
void clearSids()
Definition: c64.cpp:191
void clock()
Definition: c64.h:213
EventScheduler * getEventScheduler()
Definition: c64.h:202
cia_model_t
Definition: c64.h:85
@ OLD_4485
Old CIA, special batch labeled 4485.
Definition: c64.h:88
@ OLD
Old CIA.
Definition: c64.h:86
@ NEW
New CIA.
Definition: c64.h:87