19class PageFox final :
public Cartridge {
21 CartridgeTraits traits = {
29 virtual const CartridgeTraits &getCartridgeTraits()
const override {
return traits; }
43 using Cartridge::Cartridge;
52 void _dump(Category category, std::ostream& os)
const override;
61 PageFox& operator= (
const PageFox& other) {
63 Cartridge::operator=(other);
69 virtual void clone(
const Cartridge &other)
override { *
this = (
const PageFox &)other; }
73 void serialize(T& worker)
75 if (isResetter(worker))
return;
81 } CARTRIDGE_SERIALIZERS(serialize);
83 void _reset(
bool hard)
override;
90 u16 bankSelect()
const {
return (ctrlReg & 0b00010) >> 1; }
91 u8 chipSelect()
const {
return (ctrlReg & 0b01100) >> 2; }
92 u8 bank()
const {
return (ctrlReg & 0b00110) >> 1; }
93 u8 disabled()
const {
return (ctrlReg & 0b10000) >> 4; }
94 u8 ramIsVisible()
const {
return chipSelect() == 0b10; }
102 void resetCartConfig()
override;
103 u8 peekRomL(u16 addr)
override;
104 u8 spypeekRomL(u16 addr)
const override;
105 u8 peekRomH(u16 addr)
override;
106 u8 spypeekRomH(u16 addr)
const override;
107 void pokeRomL(u16 addr, u8 value)
override;
108 void pokeRomH(u16 addr, u8 value)
override;
109 u8 peekIO1(u16 addr)
override;
110 u8 spypeekIO1(u16 addr)
const override;
111 void pokeIO1(u16 addr, u8 value)
override;
112 void updatePeekPokeLookupTables()
override;
116 u16 ramAddrL(u16 addr)
const {
return (u16)(bankSelect() << 14 | (addr & 0x1FFF)); }
117 u16 ramAddrH(u16 addr)
const {
return 0x2000 + ramAddrL(addr); }
VirtualC64 project namespace.
Definition CmdQueue.cpp:16