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
84 using cia_model_t =
enum
92 using sidBankMap_t = std::map<int, ExtraSidBank*>;
123 sidBankMap_t extraSidBanks;
141 static double getCpuFreq(model_t model);
143 static void deleteSids(sidBankMap_t &extraSidBanks);
153 inline void interruptIRQ(
bool state)
override;
160 inline void interruptNMI()
override { cpu.
triggerNMI(); }
165 inline void interruptRST()
override { cpu.
triggerRST(); }
174 inline void setBA(
bool state)
override;
179 inline void lightpen(
bool state)
override;
194 uint_least32_t getTimeMs()
const
196 return static_cast<uint_least32_t
>((eventScheduler.
getTime(EVENT_CLOCK_PHI1) * 1000) / cpuFrequency);
206 void debug(
bool enable, FILE *out) { cpu.debug(enable, out); }
209 void resetCpu() { cpu.
reset(); }
256 const char* ciaCredits()
const {
return cia1.
credits(); }
257 const char* vicCredits()
const {
return vic.credits(); }
260 sidmemory& getMemInterface() {
return mmu; }
262 uint_least16_t getCia1TimerA()
const {
return cia1.getTimerA(); }
264 unsigned int installedSIDs()
const;
267 void c64::interruptIRQ(
bool state)
284 void c64::setBA(
bool state)
287 if (state == oldBAState)
296 void c64::lightpen(
bool state)
Definition: ColorRAMBank.h:44
Definition: DisconnectedBusBank.h:43
Definition: EventScheduler.h:62
event_clock_t getTime(event_phase_t phase) const
Definition: EventScheduler.h:158
void clock()
Definition: EventScheduler.h:136
void setRDY(bool newRDY)
Definition: mos6510.cpp:128
void triggerNMI()
Definition: mos6510.cpp:193
static const char * credits()
Definition: mos6510.cpp:2203
void triggerRST()
Definition: mos6510.cpp:179
void reset()
Definition: mos6510.cpp:2184
void triggerIRQ()
Definition: mos6510.cpp:209
void clearIRQ()
Definition: mos6510.cpp:225
static const char * credits()
Definition: mos652x.cpp:112
void clearLightpen()
Definition: mos656x.cpp:700
void triggerLightpen()
Definition: mos656x.cpp:693
bool addExtraSid(c64sid *s, int address)
Definition: c64.cpp:154
void setCiaModel(cia_model_t model)
Definition: c64.cpp:143
void setBaseSid(c64sid *s)
Definition: c64.cpp:149
const char * cpuCredits() const
Definition: c64.h:255
double getMainCpuSpeed() const
Definition: c64.h:226
void setModel(model_t model)
Definition: c64.cpp:133
void clearSids()
Definition: c64.cpp:206
void clock()
Definition: c64.h:204
EventScheduler * getEventScheduler()
Definition: c64.h:192