15#include "SubComponent.h"
20class DriveMemory final :
public SubComponent {
22 Descriptions descriptions = {{
24 .name =
"DriveMemory",
25 .description =
"Drive Memory"
58 DriveMemory(C64 &ref, Drive &drive);
60 DriveMemory& operator= (
const DriveMemory& other) {
77 void serialize(T& worker)
79 if (isResetter(worker))
return;
87 void operator << (SerResetter &worker)
override { serialize(worker); }
88 void operator << (SerChecker &worker)
override { serialize(worker); }
89 void operator << (SerCounter &worker)
override;
90 void operator << (SerReader &worker)
override;
91 void operator << (SerWriter &worker)
override;
100 const Descriptions &getDescriptions()
const override {
return descriptions; }
104 void _dump(Category category, std::ostream& os)
const override;
105 void _reset(
bool hard)
override;
119 bool hasRom()
const {
return romSize() != 0; }
122 u32 romCRC32()
const;
123 u64 romFNV64()
const;
129 void loadRom(
const class RomFile &file);
130 void loadRom(
const u8 *buf, isize size);
133 void saveRom(
const fs::path &path)
throws;
144 u8 peekZP(u8 addr) {
return ram[addr]; }
145 u8 peekStack(u8 sp) {
return ram[0x100 + sp]; }
148 void peekIdle(u16 addr) { }
149 void peekZPIdle(u8 addr) { }
150 void peekStackIdle(u8 sp) { }
151 void peekIOIdle(u16 addr) { }
154 u8 spypeek(u16 addr)
const;
157 void poke(u16 addr, u8 value);
158 void pokeZP(u8 addr, u8 value) { ram[addr] = value; }
159 void pokeStack(u8 sp, u8 value) { ram[0x100 + sp] = value; }
162 void updateBankMap();
VirtualC64 project namespace.
Definition CmdQueue.cpp:16