22 #ifndef SYSTEMROMBANKS_H
23 #define SYSTEMROMBANKS_H
29 #include "c64/CPU/opcodes.h"
33 namespace libsidplayfp
51 void setVal(uint_least16_t address, uint8_t val) {
rom[address & (N-1)]=val; }
56 uint8_t
getVal(uint_least16_t address)
const {
return rom[address & (N-1)]; }
61 void*
getPtr(uint_least16_t address)
const {
return (
void*)&
rom[address & (N-1)]; }
67 void set(
const uint8_t* source) {
if (source !=
nullptr) memcpy(
rom, source, N); }
72 void poke(uint_least16_t, uint8_t)
override {}
77 uint8_t
peek(uint_least16_t address)
override {
return rom[address & (N-1)]; }
88 uint8_t resetVectorLo;
89 uint8_t resetVectorHi;
92 void set(
const uint8_t* kernal)
96 if (kernal ==
nullptr)
121 resetVectorLo =
getVal(0xfffc);
122 resetVectorHi =
getVal(0xfffd);
128 setVal(0xfffc, resetVectorLo);
129 setVal(0xfffd, resetVectorHi);
139 setVal(0xfffc, endian_16lo8(addr));
140 setVal(0xfffd, endian_16hi8(addr));
156 void set(
const uint8_t* basic)
161 memcpy(trap,
getPtr(0xa7ae),
sizeof(trap));
163 memcpy(subTune,
getPtr(0xbf53),
sizeof(subTune));
169 memcpy(
getPtr(0xa7ae), trap,
sizeof(trap));
171 memcpy(
getPtr(0xbf53), subTune,
sizeof(subTune));
182 setVal(0xa7af, endian_16lo8(addr));
183 setVal(0xa7b0, endian_16hi8(addr));
186 void setSubtune(uint8_t tune)
void installResetHook(uint_least16_t addr)
Definition: SystemROMBanks.h:137
void set(const uint8_t *source)
Definition: SystemROMBanks.h:67
void * getPtr(uint_least16_t address) const
Definition: SystemROMBanks.h:61
void setVal(uint_least16_t address, uint8_t val)
Definition: SystemROMBanks.h:51
void installTrap(uint_least16_t addr)
Definition: SystemROMBanks.h:179
Definition: SystemROMBanks.h:150
Definition: SystemROMBanks.h:86
void poke(uint_least16_t, uint8_t) override
Definition: SystemROMBanks.h:72
uint8_t getVal(uint_least16_t address) const
Definition: SystemROMBanks.h:56
Definition: SystemROMBanks.h:207
uint8_t rom[N]
The ROM array.
Definition: SystemROMBanks.h:45
uint8_t peek(uint_least16_t address) override
Definition: SystemROMBanks.h:77
Definition: SystemROMBanks.h:42