VirtualC64 v5.0 beta
Commodore 64 Emulator
Loading...
Searching...
No Matches
Kcs.h
1// -----------------------------------------------------------------------------
2// This file is part of VirtualC64
3//
4// Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de
5// This FILE is dual-licensed. You are free to choose between:
6//
7// - The GNU General Public License v3 (or any later version)
8// - The Mozilla Public License v2
9//
10// SPDX-License-Identifier: GPL-3.0-or-later OR MPL-2.0
11// -----------------------------------------------------------------------------
12
13#pragma once
14
15#include "Cartridge.h"
16
17namespace vc64 {
18
19class KcsPower final : public Cartridge {
20
21 CartridgeTraits traits = {
22
23 .type = CRT_KCS_POWER,
24 .title = "KCS Power",
25 .memory = 128,
26 .buttons = 1,
27 .button1 = "Freeze",
28 };
29
30 virtual const CartridgeTraits &getCartridgeTraits() const override { return traits; }
31
32public:
33
34 using Cartridge::Cartridge;
35
36private:
37
38 void _reset(bool hard) override;
39
40
41 //
42 // Accessing cartridge memory
43 //
44
45public:
46
47 u8 peekIO1(u16 addr) override;
48 u8 spypeekIO1(u16 addr) const override;
49 u8 peekIO2(u16 addr) override;
50 u8 spypeekIO2(u16 addr) const override;
51 void pokeIO1(u16 addr, u8 value) override;
52 void pokeIO2(u16 addr, u8 value) override;
53
54
55 //
56 // Operating buttons
57 //
58
59 isize numButtons() const override { return 1; }
60 const char *getButtonTitle(isize nr) const override;
61 void pressButton(isize nr) override;
62 void releaseButton(isize nr) override;
63};
64
65}
VirtualC64 project namespace.
Definition CmdQueue.cpp:16