1//============================================================================
2//
3// SSSS tt lll lll
4// SS SS tt ll ll
5// SS tttttt eeee ll ll aaaa
6// SSSS tt ee ee ll ll aa
7// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
8// SS SS tt ee ll ll aa aa
9// SSSS ttt eeeee llll llll aaaaa
10//
11// Copyright (c) 1995-2019 by Bradford W. Mott, Stephen Anthony
12// and the Stella Team
13//
14// See the file "License.txt" for information on usage and redistribution of
15// this file, and for a DISCLAIMER OF ALL WARRANTIES.
16//============================================================================
17
18#ifndef BANK_ROM_CHEAT_HXX
19#define BANK_ROM_CHEAT_HXX
20
21#include "Cheat.hxx"
22
23class BankRomCheat : public Cheat
24{
25 public:
26 BankRomCheat(OSystem& os, const string& name, const string& code);
27 virtual ~BankRomCheat() = default;
28
29 bool enable() override;
30 bool disable() override;
31 void evaluate() override;
32
33 private:
34 std::array<uInt8, 16> savedRom;
35 uInt16 address;
36 uInt8 value;
37 uInt8 count;
38 int bank;
39
40 private:
41 // Following constructors and assignment operators not supported
42 BankRomCheat() = delete;
43 BankRomCheat(const BankRomCheat&) = delete;
44 BankRomCheat(BankRomCheat&&) = delete;
45 BankRomCheat& operator=(const BankRomCheat&) = delete;
46 BankRomCheat& operator=(BankRomCheat&&) = delete;
47};
48
49#endif
50