VirtualC64 v5.0 beta
Commodore 64 Emulator
Loading...
Searching...
No Matches
ErrorTypes.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
21enum_long(ERROR_CODE)
22{
25
26 // Execution state
31
32 // Configuration
37
38 // Property storage
41
42 // CPU
47
48 // Memory
50
51 // File IO
65
66 // Roms
72
73 // Recorder
75
76 // Snapshots
81
82 // Drives
84
85 // Cartridges
90
91 // File systems
101
102 ERROR_COUNT
103};
104typedef ERROR_CODE ErrorCode;
105
106struct ErrorCodeEnum : util::Reflection<ErrorCodeEnum, ErrorCode> {
107
108 static constexpr long minVal = 0;
109 static constexpr long maxVal = ERROR_FS_EXPECTED_MAX;
110 static bool isValid(auto value) { return value >= minVal && value <= maxVal; }
111
112 static const char *prefix() { return "ERROR"; }
113 static const char *key(long value)
114 {
115 switch (value) {
116
117 case ERROR_OK: return "OK";
118 case ERROR_UNKNOWN: return "UNKNOWN";
119
120 case ERROR_LAUNCH: return "LAUNCH";
121 case ERROR_POWERED_OFF: return "POWERED_OFF";
122 case ERROR_POWERED_ON: return "POWERED_ON";
123 case ERROR_RUNNING: return "RUNNING";
124
125 case ERROR_OPT_UNSUPPORTED: return "OPT_UNSUPPORTED";
126 case ERROR_OPT_INV_ARG: return "OPT_INV_ARG";
127 case ERROR_OPT_INV_ID: return "OPT_INV_ID";
128 case ERROR_OPT_LOCKED: return "OPT_LOCKED";
129
130 case ERROR_INVALID_KEY: return "INVALID_KEY";
131 case ERROR_SYNTAX: return "SYNTAX";
132
133 case ERROR_BP_NOT_FOUND: return "BP_NOT_FOUND";
134 case ERROR_BP_ALREADY_SET: return "BP_ALREADY_SET";
135 case ERROR_WP_NOT_FOUND: return "WP_NOT_FOUND";
136 case ERROR_WP_ALREADY_SET: return "WP_ALREADY_SET";
137
138 case ERROR_OUT_OF_MEMORY: return "OUT_OF_MEMORY";
139
140 case ERROR_DIR_NOT_FOUND: return "DIR_NOT_FOUND";
141 case ERROR_DIR_ACCESS_DENIED: return "DIR_ACCESS_DENIED";
142 case ERROR_DIR_CANT_CREATE: return "DIR_CANT_CREATE";
143 case ERROR_DIR_NOT_EMPTY: return "DIR_NOT_EMPTY";
144 case ERROR_FILE_NOT_FOUND: return "FILE_NOT_FOUND";
145 case ERROR_FILE_EXISTS: return "FILE_EXISTS";
146 case ERROR_FILE_IS_DIRECTORY: return "FILE_IS_DIRECtORY";
147 case ERROR_FILE_ACCESS_DENIED: return "FILE_ACCESS_DENIED";
148 case ERROR_FILE_TYPE_MISMATCH: return "FILE_TYPE_MISMATCH";
149 case ERROR_FILE_TYPE_UNSUPPORTED: return "FILE_TYPE_UNSUPPORTED";
150 case ERROR_FILE_CANT_READ: return "FILE_CANT_READ";
151 case ERROR_FILE_CANT_WRITE: return "FILE_CANT_WRITE";
152 case ERROR_FILE_CANT_CREATE: return "FILE_CANT_CREATE";
153
154 case ERROR_ROM_BASIC_MISSING: return "ROM_BASIC_MISSING";
155 case ERROR_ROM_CHAR_MISSING: return "ROM_CHAR_MISSING";
156 case ERROR_ROM_KERNAL_MISSING: return "ROM_KERNAL_MISSING";
157 case ERROR_ROM_DRIVE_MISSING: return "ROM_DRIVE_MISSING";
158 case ERROR_ROM_MEGA65_MISMATCH: return "ROM_MEGA65_MISMATCH";
159
160 case ERROR_REC_LAUNCH: return "REC_LAUNCH";
161
162 case ERROR_SNAP_TOO_OLD: return "SNAP_TOO_OLD";
163 case ERROR_SNAP_TOO_NEW: return "SNAP_TOO_NEW";
164 case ERROR_SNAP_IS_BETA: return "SNAP_IS_BETA";
165 case ERROR_SNAP_CORRUPTED: return "SNAP_CORRUPTED";
166
167 case ERROR_DRV_UNCONNECTED: return "DRV_UNCONNECTED";
168
169 case ERROR_CRT_UNKNOWN: return "ERROR_CRT_UNKNOWN";
170 case ERROR_CRT_UNSUPPORTED: return "CRT_UNSUPPORTED";
171 case ERROR_CRT_TOO_MANY_PACKETS: return "CRT_TOO_MANY_PACKETS";
172 case ERROR_CRT_CORRUPTED_PACKET: return "CRT_CORRUPTED_PACKET";
173
174 case ERROR_FS_UNSUPPORTED: return "FS_UNSUPPORTED";
175 case ERROR_FS_WRONG_CAPACITY: return "FS_WRONG_CAPACITY";
176 case ERROR_FS_CORRUPTED: return "FS_CORRUPTED";
177 case ERROR_FS_HAS_NO_FILES: return "ERROR_FS_HAS_NO_FILES";
178 case ERROR_FS_HAS_CYCLES: return "FS_HAS_CYCLES";
179 case ERROR_FS_CANT_IMPORT: return "FS_CANT_IMPORT";
180 case ERROR_FS_EXPECTED_VAL: return "FS_EXPECTED_VAL";
181 case ERROR_FS_EXPECTED_MIN: return "FS_EXPECTED_MIN";
182 case ERROR_FS_EXPECTED_MAX: return "FS_EXPECTED_MAX";
183
184 case ERROR_COUNT: return "???";
185 }
186 return "???";
187 }
188};
189
190}
VirtualC64 project namespace.
Definition CmdQueue.cpp:16
ERROR_CODE
Error condition.
Definition ErrorTypes.h:22
@ ERROR_DIR_CANT_CREATE
Unable to create a directory.
Definition ErrorTypes.h:54
@ ERROR_FILE_TYPE_UNSUPPORTED
Unsupported file type.
Definition ErrorTypes.h:61
@ ERROR_FS_CANT_IMPORT
Failed to import a file system.
Definition ErrorTypes.h:97
@ ERROR_OPT_INV_ARG
Invalid argument.
Definition ErrorTypes.h:34
@ ERROR_CRT_TOO_MANY_PACKETS
CRT file contains too many Rom packets.
Definition ErrorTypes.h:88
@ ERROR_ROM_KERNAL_MISSING
No Kernel Rom installed.
Definition ErrorTypes.h:69
@ ERROR_DRV_UNCONNECTED
Floppy drive is not connected.
Definition ErrorTypes.h:83
@ ERROR_POWERED_ON
The emulator is powered on.
Definition ErrorTypes.h:29
@ ERROR_REC_LAUNCH
Can't launch the screen recorder.
Definition ErrorTypes.h:74
@ ERROR_BP_ALREADY_SET
Breakpoint is already set.
Definition ErrorTypes.h:44
@ ERROR_FILE_NOT_FOUND
File not found error.
Definition ErrorTypes.h:56
@ ERROR_OPT_UNSUPPORTED
Unsupported configuration option.
Definition ErrorTypes.h:33
@ ERROR_UNKNOWN
Unclassified error condition.
Definition ErrorTypes.h:24
@ ERROR_INVALID_KEY
Invalid property key.
Definition ErrorTypes.h:39
@ ERROR_FS_CORRUPTED
File system is corrupted.
Definition ErrorTypes.h:94
@ ERROR_FS_EXPECTED_VAL
Unexpected value found.
Definition ErrorTypes.h:98
@ ERROR_FILE_CANT_CREATE
Can't create file.
Definition ErrorTypes.h:64
@ ERROR_DIR_NOT_FOUND
Directory does not exist.
Definition ErrorTypes.h:52
@ ERROR_FILE_CANT_READ
Can't read from file.
Definition ErrorTypes.h:62
@ ERROR_CRT_UNKNOWN
Unknown cartridge type.
Definition ErrorTypes.h:86
@ ERROR_CRT_CORRUPTED_PACKET
CRT file contains a corrupted Rom package.
Definition ErrorTypes.h:89
@ ERROR_BP_NOT_FOUND
Breakpoint is not set.
Definition ErrorTypes.h:43
@ ERROR_DIR_ACCESS_DENIED
File access denied.
Definition ErrorTypes.h:53
@ ERROR_FS_UNSUPPORTED
Unsupported file system.
Definition ErrorTypes.h:92
@ ERROR_FS_EXPECTED_MIN
Value is too small.
Definition ErrorTypes.h:99
@ ERROR_SNAP_TOO_OLD
Snapshot was created with an older version.
Definition ErrorTypes.h:77
@ ERROR_WP_NOT_FOUND
Watchpoint is not set.
Definition ErrorTypes.h:45
@ ERROR_SNAP_IS_BETA
Snapshot was created with a beta release.
Definition ErrorTypes.h:79
@ ERROR_FILE_ACCESS_DENIED
File access denied.
Definition ErrorTypes.h:59
@ ERROR_FILE_TYPE_MISMATCH
File type mismatch.
Definition ErrorTypes.h:60
@ ERROR_FILE_IS_DIRECTORY
The file is a directory.
Definition ErrorTypes.h:58
@ ERROR_FS_EXPECTED_MAX
Value is too big.
Definition ErrorTypes.h:100
@ ERROR_ROM_DRIVE_MISSING
No Floppy Drive Rom installed.
Definition ErrorTypes.h:70
@ ERROR_ROM_MEGA65_MISMATCH
MEGA65 Roms have different version numbers.
Definition ErrorTypes.h:71
@ ERROR_FILE_CANT_WRITE
Can't write to file.
Definition ErrorTypes.h:63
@ ERROR_SYNTAX
Syntax error.
Definition ErrorTypes.h:40
@ ERROR_FS_HAS_CYCLES
File system has cyclic links.
Definition ErrorTypes.h:96
@ ERROR_SNAP_CORRUPTED
Snapshot data is corrupted.
Definition ErrorTypes.h:80
@ ERROR_FILE_EXISTS
File already exists.
Definition ErrorTypes.h:57
@ ERROR_OPT_LOCKED
The option is temporarily locked.
Definition ErrorTypes.h:36
@ ERROR_LAUNCH
Launch error.
Definition ErrorTypes.h:27
@ ERROR_OK
No error.
Definition ErrorTypes.h:23
@ ERROR_OUT_OF_MEMORY
Out of memory.
Definition ErrorTypes.h:49
@ ERROR_CRT_UNSUPPORTED
Unsupported cartridge type.
Definition ErrorTypes.h:87
@ ERROR_FS_WRONG_CAPACITY
Wrong file system capacity.
Definition ErrorTypes.h:93
@ ERROR_POWERED_OFF
The emulator is powered off.
Definition ErrorTypes.h:28
@ ERROR_ROM_BASIC_MISSING
No Basic Rom installed.
Definition ErrorTypes.h:67
@ ERROR_DIR_NOT_EMPTY
Directory is not empty.
Definition ErrorTypes.h:55
@ ERROR_FS_HAS_NO_FILES
File system is empty.
Definition ErrorTypes.h:95
@ ERROR_OPT_INV_ID
Invalid component id.
Definition ErrorTypes.h:35
@ ERROR_SNAP_TOO_NEW
Snapshot was created with a later version.
Definition ErrorTypes.h:78
@ ERROR_RUNNING
The emulator is running.
Definition ErrorTypes.h:30
@ ERROR_ROM_CHAR_MISSING
No Character Rom installed.
Definition ErrorTypes.h:68
@ ERROR_WP_ALREADY_SET
Watchpoint is already set.
Definition ErrorTypes.h:46