2017-08-27 19:02:13 +00:00
|
|
|
//
|
|
|
|
// TargetPlatforms.h
|
|
|
|
// Clock Signal
|
|
|
|
//
|
|
|
|
// Created by Thomas Harte on 27/08/2017.
|
2018-05-13 19:19:52 +00:00
|
|
|
// Copyright 2017 Thomas Harte. All rights reserved.
|
2017-08-27 19:02:13 +00:00
|
|
|
//
|
|
|
|
|
|
|
|
#ifndef TargetPlatforms_hpp
|
|
|
|
#define TargetPlatforms_hpp
|
|
|
|
|
|
|
|
namespace TargetPlatform {
|
|
|
|
|
|
|
|
typedef int IntType;
|
2020-10-21 02:18:11 +00:00
|
|
|
|
|
|
|
// The below is somehwat overspecified because some of the file formats already supported by this
|
|
|
|
// emulator can self-specify platforms beyond those the emulator otherwise implements.
|
2017-08-27 19:02:13 +00:00
|
|
|
enum Type: IntType {
|
2020-10-21 02:18:11 +00:00
|
|
|
AmstradCPC = 1 << 0,
|
|
|
|
AppleII = 1 << 1,
|
|
|
|
AppleIIgs = 1 << 2,
|
2018-04-14 16:12:12 +00:00
|
|
|
Atari2600 = 1 << 3,
|
2019-10-04 02:10:10 +00:00
|
|
|
AtariST = 1 << 4,
|
|
|
|
AcornAtom = 1 << 5,
|
|
|
|
AcornElectron = 1 << 6,
|
2021-07-16 21:59:08 +00:00
|
|
|
Amiga = 1 << 7,
|
|
|
|
BBCMaster = 1 << 8,
|
|
|
|
BBCModelA = 1 << 9,
|
|
|
|
BBCModelB = 1 << 10,
|
|
|
|
Coleco = 1 << 11,
|
|
|
|
Commodore = 1 << 12,
|
|
|
|
DiskII = 1 << 13,
|
|
|
|
Enterprise = 1 << 14,
|
|
|
|
Sega = 1 << 15,
|
|
|
|
Macintosh = 1 << 16,
|
|
|
|
MSX = 1 << 17,
|
|
|
|
Oric = 1 << 18,
|
|
|
|
ZX80 = 1 << 19,
|
|
|
|
ZX81 = 1 << 20,
|
|
|
|
ZXSpectrum = 1 << 21,
|
2023-11-29 19:54:33 +00:00
|
|
|
PCCompatible = 1 << 22,
|
2017-08-27 19:02:13 +00:00
|
|
|
|
2017-08-27 19:43:09 +00:00
|
|
|
Acorn = AcornAtom | AcornElectron | BBCMaster | BBCModelA | BBCModelB,
|
|
|
|
ZX8081 = ZX80 | ZX81,
|
2021-03-17 16:38:37 +00:00
|
|
|
AllCartridge = Atari2600 | AcornElectron | Coleco | MSX,
|
2023-11-29 19:54:33 +00:00
|
|
|
AllDisk = Acorn | AmstradCPC | Commodore | Oric | MSX | ZXSpectrum | Macintosh | AtariST | DiskII | Amiga | PCCompatible,
|
2021-04-27 01:04:25 +00:00
|
|
|
AllTape = Acorn | AmstradCPC | Commodore | Oric | ZX8081 | MSX | ZXSpectrum,
|
2017-08-27 19:02:13 +00:00
|
|
|
};
|
|
|
|
|
2017-08-27 19:19:03 +00:00
|
|
|
class TypeDistinguisher {
|
|
|
|
public:
|
|
|
|
virtual Type target_platform_type() = 0;
|
|
|
|
};
|
|
|
|
|
2017-08-27 19:02:13 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#endif /* TargetPlatforms_h */
|