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
62 virtual void load(
const char *) =0;
94 typedef std::map<int, ExtraSidBank*> sidBankMap_t;
128 sidBankMap_t extraSidBanks;
140 static double getCpuFreq(
model_t model);
149 uint8_t cpuRead(uint_least16_t addr)
override {
return mmu.
cpuRead(addr); }
157 void cpuWrite(uint_least16_t addr, uint8_t data)
override { mmu.
cpuWrite(addr, data); }
166 inline void interruptIRQ(
bool state)
override;
173 inline void interruptNMI()
override { cpu.
triggerNMI(); }
178 inline void interruptRST()
override { cpu.
triggerRST(); }
187 inline void setBA(
bool state)
override;
189 inline void lightpen(
bool state)
override;
203 uint_least32_t getTime()
const {
return getTimeMs() / 1000; }
205 uint_least32_t getTimeMs()
const {
return static_cast<uint_least32_t>((eventScheduler.
getTime(EVENT_CLOCK_PHI1) * 1000) / cpuFrequency); }
214 void debug(
bool enable, FILE *out) { cpu.debug(enable, out); }
217 void resetCpu() { cpu.
reset(); }
229 void setRoms(
const uint8_t* kernal,
const uint8_t* basic,
const uint8_t* character)
231 mmu.setRoms(kernal, basic, character);
273 sidmemory& getMemInterface() {
return mmu; }
275 uint_least16_t getCia1TimerA()
const {
return cia1.getTimerA(); }
278 void c64::interruptIRQ(
bool state)
295 void c64::setBA(
bool state)
298 if (state == oldBAState)
307 void c64::lightpen(
bool state)
void setBaseSid(c64sid *s)
Definition: c64.cpp:139
void triggerIRQ()
Definition: mos6510.cpp:180
void clearLightpen()
Definition: mos656x.cpp:689
Definition: ColorRAMBank.h:42
C64 Brasil.
Definition: c64.h:90
Definition: sidmemory.h:33
void triggerNMI()
Definition: mos6510.cpp:164
const char * vicCredits() const
Definition: c64.h:270
void clock()
Definition: c64.h:212
C64 Drean.
Definition: c64.h:89
uint8_t cpuRead(uint_least16_t addr) const
Definition: mmu.h:129
bool addExtraSid(c64sid *s, int address)
Definition: c64.cpp:144
PAL C64.
Definition: c64.h:86
void triggerLightpen()
Definition: mos656x.cpp:676
void triggerRST()
Definition: mos6510.cpp:150
static const char * credits()
Definition: mos6526.cpp:168
static const char * credits()
Definition: mos6510.cpp:2162
void clearIRQ()
Definition: mos6510.cpp:196
EventScheduler * getEventScheduler()
Definition: c64.h:201
const char * ciaCredits() const
Definition: c64.h:269
NTSC C64.
Definition: c64.h:87
void setCiaModel(bool newModel)
Definition: c64.cpp:133
Old NTSC C64.
Definition: c64.h:88
void setModel(model_t model)
Definition: c64.cpp:123
void clearSids()
Definition: c64.cpp:178
void clock()
Definition: EventScheduler.h:140
Definition: EventScheduler.h:61
void reset()
Definition: mos6510.cpp:2143
void cpuWrite(uint_least16_t addr, uint8_t data)
Definition: mmu.h:137
void setRDY(bool newRDY)
Definition: mos6510.cpp:102
model_t
Definition: c64.h:84
const char * cpuCredits() const
Definition: c64.h:268
event_clock_t getTime(event_phase_t phase) const
Definition: EventScheduler.h:162
double getMainCpuSpeed() const
Definition: c64.h:239
Definition: DisconnectedBusBank.h:41