VirtualC64 v5.0 beta
Commodore 64 Emulator
Loading...
Searching...
No Matches
BusTypes.h
Go to the documentation of this file.
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// -----------------------------------------------------------------------------
13
14#pragma once
15
16#include "Reflection.h"
17
18namespace vc64 {
19
20enum_long(MEMACCESS)
21{
22 MEMACCESS_R, // Memory Refresh
23 MEMACCESS_I, // Idle read
24 MEMACCESS_C, // Character access
25 MEMACCESS_G, // Graphics access
26 MEMACCESS_P, // Sprite pointer access
27 MEMACCESS_S, // Sprite data access
28 MEMACCESS_COUNT
29};
30typedef MEMACCESS MemAccess;
31
32struct MemAccessEnum : util::Reflection<MemAccessEnum, MemAccess> {
33
34 static constexpr long minVal = 0;
35 static constexpr long maxVal = MEMACCESS_S;
36 static bool isValid(auto value) { return value >= minVal && value <= maxVal; }
37
38 static const char *prefix() { return "MEMACCESS"; }
39 static const char *key(long value)
40 {
41 switch (value) {
42
43 case MEMACCESS_R: return "R";
44 case MEMACCESS_I: return "I";
45 case MEMACCESS_C: return "C";
46 case MEMACCESS_G: return "G";
47 case MEMACCESS_P: return "P";
48 case MEMACCESS_S: return "S";
49 case MEMACCESS_COUNT: return "???";
50 }
51 return "???";
52 }
53};
54
55}
VirtualC64 project namespace.
Definition CmdQueue.cpp:16