16#include "Reflection.h"
40struct MemoryTypeEnum : util::Reflection<MemoryTypeEnum, MemoryType> {
42 static constexpr long minVal = 1;
43 static constexpr long maxVal =
M_NONE;
44 static bool isValid(
auto value) {
return value >= minVal && value <= maxVal; }
46 static const char *prefix() {
return "M"; }
47 static const char *key(
long value)
51 case M_RAM:
return "RAM";
52 case M_CHAR:
return "CHAR";
55 case M_IO:
return "IO";
58 case M_PP:
return "PP";
59 case M_NONE:
return "NONE";
60 case M_COUNT:
return "???";
77struct RamPatternEnum : util::Reflection<RamPatternEnum, RamPattern> {
79 static constexpr long minVal = 0;
81 static bool isValid(
auto value) {
return value >= minVal && value <= maxVal; }
83 static const char *prefix() {
return "RAM_PATTERN"; }
84 static const char *key(
long value)
105typedef ROM_TYPE RomType;
107struct RomTypeEnum : util::Reflection<RomTypeEnum, RomType> {
109 static constexpr long minVal = 0;
110 static constexpr long maxVal = ROM_TYPE_VC1541;
111 static bool isValid(
auto value) {
return value >= minVal && value <= maxVal; }
113 static const char *prefix() {
return "ROM_TYPE"; }
114 static const char *key(
long value)
118 case ROM_TYPE_BASIC:
return "BASIC";
119 case ROM_TYPE_CHAR:
return "CHAR";
120 case ROM_TYPE_KERNAL:
return "KERNAL";
121 case ROM_TYPE_VC1541:
return "VC1541";
129 ROM_VENDOR_COMMODORE,
133typedef ROM_VENDOR RomVendor;
135struct RomVendorEnum : util::Reflection<RomVendorEnum, RomVendor> {
137 static constexpr long minVal = 0;
138 static constexpr long maxVal = ROM_VENDOR_OTHER;
139 static bool isValid(
auto value) {
return value >= minVal && value <= maxVal; }
141 static const char *prefix() {
return "ROM_VENDOR"; }
142 static const char *key(
long value)
146 case ROM_VENDOR_COMMODORE:
return "COMMODORE";
147 case ROM_VENDOR_MEGA65:
return "MEGA65";
148 case ROM_VENDOR_OTHER:
return "OTHER";
161 RamPattern ramPattern;
176 MemoryType peekSrc[16];
177 MemoryType vicPeekSrc[16];
194 const char *subtitle;
195 const char *revision;
VirtualC64 project namespace.
Definition CmdQueue.cpp:16
M_TYPE
Memory type.
Definition MemoryTypes.h:26
@ M_CRTHI
Cartridge Rom (high bank)
Definition MemoryTypes.h:33
@ M_BASIC
Basic Rom.
Definition MemoryTypes.h:30
@ M_CRTLO
Cartridge Rom (low bank)
Definition MemoryTypes.h:32
@ M_PP
Processor port.
Definition MemoryTypes.h:34
@ M_KERNAL
Kernal Rom.
Definition MemoryTypes.h:29
@ M_IO
IO space.
Definition MemoryTypes.h:31
@ M_NONE
Unmapped.
Definition MemoryTypes.h:35
@ M_CHAR
Character Rom.
Definition MemoryTypes.h:28
@ M_RAM
Ram.
Definition MemoryTypes.h:27
RAM_PATTERN
Ram startup pattern.
Definition MemoryTypes.h:68
@ RAM_PATTERN_ONES
Initialize with all ones.
Definition MemoryTypes.h:72
@ RAM_PATTERN_RANDOM
Initialize with pseudo-random values.
Definition MemoryTypes.h:73
@ RAM_PATTERN_CCS
Pattern used by the CCS emulator.
Definition MemoryTypes.h:70
@ RAM_PATTERN_ZEROES
Initialize with all zeroes.
Definition MemoryTypes.h:71
@ RAM_PATTERN_VICE
Pattern used by the VICE emulator.
Definition MemoryTypes.h:69