22 #ifndef SYSTEMROMBANKS_H 23 #define SYSTEMROMBANKS_H 29 #include "c64/CPU/opcodes.h" 46 void setVal(uint_least16_t address, uint8_t val) { rom[address & (N-1)]=val; }
51 uint8_t
getVal(uint_least16_t address)
const {
return rom[address & (N-1)]; }
56 void*
getPtr(uint_least16_t address)
const {
return (
void*)&rom[address & (N-1)]; }
62 void set(
const uint8_t* source) {
if (source) memcpy(rom, source, N); }
67 void poke(uint_least16_t address SID_UNUSED, uint8_t value SID_UNUSED) {}
69 uint8_t
peek(uint_least16_t address) {
return rom[address & (N-1)]; }
80 uint8_t resetVectorLo;
81 uint8_t resetVectorHi;
84 void set(
const uint8_t* kernal)
161 resetVectorLo =
getVal(0xfffc);
162 resetVectorHi =
getVal(0xfffd);
168 setVal(0xfffc, resetVectorLo);
169 setVal(0xfffd, resetVectorHi);
179 setVal(0xfffc, endian_16lo8(addr));
180 setVal(0xfffd, endian_16hi8(addr));
196 void set(
const uint8_t* basic)
201 memcpy(trap,
getPtr(0xa7ae), 3);
203 memcpy(subTune,
getPtr(0xbf53), 11);
209 memcpy(
getPtr(0xa7ae), trap, 3);
211 memcpy(
getPtr(0xbf53), subTune, 11);
222 setVal(0xa7af, endian_16lo8(addr));
223 setVal(0xa7b0, endian_16hi8(addr));
226 void setSubtune(uint8_t tune)
void installTrap(uint_least16_t addr)
Definition: SystemROMBanks.h:219
Definition: SystemROMBanks.h:247
Definition: SystemROMBanks.h:189
uint8_t rom[N]
The ROM array.
Definition: SystemROMBanks.h:40
void setVal(uint_least16_t address, uint8_t val)
Definition: SystemROMBanks.h:46
Definition: SystemROMBanks.h:36
void set(const uint8_t *source)
Definition: SystemROMBanks.h:62
void installResetHook(uint_least16_t addr)
Definition: SystemROMBanks.h:177
uint8_t getVal(uint_least16_t address) const
Definition: SystemROMBanks.h:51
uint8_t peek(uint_least16_t address)
Definition: SystemROMBanks.h:69
void * getPtr(uint_least16_t address) const
Definition: SystemROMBanks.h:56
Definition: SystemROMBanks.h:77
void poke(uint_least16_t address SID_UNUSED, uint8_t value SID_UNUSED)
Definition: SystemROMBanks.h:67