2016-08-31 20:43:29 -04:00
|
|
|
//
|
|
|
|
// CSStaticAnalyser.h
|
|
|
|
// Clock Signal
|
|
|
|
//
|
|
|
|
// Created by Thomas Harte on 31/08/2016.
|
2018-05-13 15:19:52 -04:00
|
|
|
// Copyright 2016 Thomas Harte. All rights reserved.
|
2016-08-31 20:43:29 -04:00
|
|
|
//
|
|
|
|
|
|
|
|
#import <Foundation/Foundation.h>
|
|
|
|
|
2020-12-31 13:23:46 -07:00
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
|
2016-08-31 20:43:29 -04:00
|
|
|
@class CSMachine;
|
|
|
|
|
2021-08-06 21:58:31 -04:00
|
|
|
typedef NS_ENUM(NSInteger, CSMachineAmigaModel) {
|
|
|
|
CSMachineAmigaModelA500,
|
|
|
|
};
|
|
|
|
|
2018-05-03 19:37:32 -04:00
|
|
|
typedef NS_ENUM(NSInteger, CSMachineAppleIIModel) {
|
|
|
|
CSMachineAppleIIModelAppleII,
|
2018-07-25 18:58:34 -04:00
|
|
|
CSMachineAppleIIModelAppleIIPlus,
|
2018-08-11 10:26:30 -04:00
|
|
|
CSMachineAppleIIModelAppleIIe,
|
|
|
|
CSMachineAppleIIModelAppleEnhancedIIe
|
2018-05-03 19:37:32 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
typedef NS_ENUM(NSInteger, CSMachineAppleIIDiskController) {
|
|
|
|
CSMachineAppleIIDiskControllerNone,
|
|
|
|
CSMachineAppleIIDiskControllerSixteenSector,
|
|
|
|
CSMachineAppleIIDiskControllerThirteenSector
|
|
|
|
};
|
|
|
|
|
2020-10-20 22:18:11 -04:00
|
|
|
typedef NS_ENUM(NSInteger, CSMachineAppleIIgsModel) {
|
|
|
|
CSMachineAppleIIgsModelROM00,
|
|
|
|
CSMachineAppleIIgsModelROM01,
|
|
|
|
CSMachineAppleIIgsModelROM03,
|
|
|
|
};
|
|
|
|
|
2019-12-17 23:04:12 -05:00
|
|
|
typedef NS_ENUM(NSInteger, CSMachineAtariSTModel) {
|
|
|
|
CSMachineAtariSTModel512k,
|
|
|
|
};
|
|
|
|
|
2018-04-02 22:42:41 -04:00
|
|
|
typedef NS_ENUM(NSInteger, CSMachineCPCModel) {
|
|
|
|
CSMachineCPCModel464,
|
|
|
|
CSMachineCPCModel664,
|
|
|
|
CSMachineCPCModel6128
|
|
|
|
};
|
|
|
|
|
2021-06-14 20:55:39 -04:00
|
|
|
typedef NS_ENUM(NSInteger, CSMachineEnterpriseModel) {
|
|
|
|
CSMachineEnterpriseModel64,
|
|
|
|
CSMachineEnterpriseModel128,
|
|
|
|
CSMachineEnterpriseModel256,
|
|
|
|
};
|
|
|
|
|
2021-07-08 18:50:37 -04:00
|
|
|
typedef NS_ENUM(NSInteger, CSMachineEnterpriseSpeed) {
|
|
|
|
CSMachineEnterpriseSpeed4MHz,
|
|
|
|
CSMachineEnterpriseSpeed6MHz
|
|
|
|
};
|
|
|
|
|
2021-06-22 21:39:07 -04:00
|
|
|
typedef NS_ENUM(NSInteger, CSMachineEnterpriseEXOS) {
|
|
|
|
CSMachineEnterpriseEXOSVersion21,
|
|
|
|
CSMachineEnterpriseEXOSVersion20,
|
|
|
|
CSMachineEnterpriseEXOSVersion10,
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef NS_ENUM(NSInteger, CSMachineEnterpriseBASIC) {
|
|
|
|
CSMachineEnterpriseBASICVersion21,
|
|
|
|
CSMachineEnterpriseBASICVersion11,
|
|
|
|
CSMachineEnterpriseBASICVersion10,
|
|
|
|
CSMachineEnterpriseBASICNone,
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef NS_ENUM(NSInteger, CSMachineEnterpriseDOS) {
|
|
|
|
CSMachineEnterpriseDOSEXDOS,
|
|
|
|
CSMachineEnterpriseDOSNone,
|
|
|
|
};
|
|
|
|
|
2019-05-03 22:16:07 -04:00
|
|
|
typedef NS_ENUM(NSInteger, CSMachineMacintoshModel) {
|
2019-07-17 16:02:25 -04:00
|
|
|
CSMachineMacintoshModel128k,
|
|
|
|
CSMachineMacintoshModel512k,
|
|
|
|
CSMachineMacintoshModel512ke,
|
|
|
|
CSMachineMacintoshModelPlus,
|
2019-05-03 22:16:07 -04:00
|
|
|
};
|
|
|
|
|
2018-04-02 22:42:41 -04:00
|
|
|
typedef NS_ENUM(NSInteger, CSMachineOricModel) {
|
|
|
|
CSMachineOricModelOric1,
|
2018-05-08 22:05:43 -04:00
|
|
|
CSMachineOricModelOricAtmos,
|
|
|
|
CSMachineOricModelPravetz
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef NS_ENUM(NSInteger, CSMachineOricDiskInterface) {
|
|
|
|
CSMachineOricDiskInterfaceNone,
|
|
|
|
CSMachineOricDiskInterfaceMicrodisc,
|
2020-01-05 21:57:33 -05:00
|
|
|
CSMachineOricDiskInterfacePravetz,
|
2020-01-15 23:56:56 -05:00
|
|
|
CSMachineOricDiskInterfaceJasmin,
|
|
|
|
CSMachineOricDiskInterfaceBD500
|
2018-04-02 22:42:41 -04:00
|
|
|
};
|
|
|
|
|
2021-03-21 21:50:50 -04:00
|
|
|
typedef NS_ENUM(NSInteger, CSMachineSpectrumModel) {
|
2021-04-14 21:37:10 -04:00
|
|
|
CSMachineSpectrumModelSixteenK,
|
|
|
|
CSMachineSpectrumModelFortyEightK,
|
|
|
|
CSMachineSpectrumModelOneTwoEightK,
|
|
|
|
CSMachineSpectrumModelPlus2,
|
2021-03-21 21:50:50 -04:00
|
|
|
CSMachineSpectrumModelPlus2a,
|
|
|
|
CSMachineSpectrumModelPlus3,
|
|
|
|
};
|
|
|
|
|
2018-04-02 22:42:41 -04:00
|
|
|
typedef NS_ENUM(NSInteger, CSMachineVic20Region) {
|
|
|
|
CSMachineVic20RegionAmerican,
|
|
|
|
CSMachineVic20RegionEuropean,
|
|
|
|
CSMachineVic20RegionDanish,
|
|
|
|
CSMachineVic20RegionSwedish,
|
|
|
|
CSMachineVic20RegionJapanese,
|
|
|
|
};
|
|
|
|
|
2023-03-21 20:05:10 -04:00
|
|
|
typedef NS_ENUM(NSInteger, CSMachineMSXModel) {
|
|
|
|
CSMachineMSXModelMSX1,
|
|
|
|
CSMachineMSXModelMSX2,
|
|
|
|
};
|
|
|
|
|
2019-02-28 20:54:43 -05:00
|
|
|
typedef NS_ENUM(NSInteger, CSMachineMSXRegion) {
|
|
|
|
CSMachineMSXRegionAmerican,
|
|
|
|
CSMachineMSXRegionEuropean,
|
|
|
|
CSMachineMSXRegionJapanese,
|
|
|
|
};
|
|
|
|
|
2023-12-08 14:23:27 -05:00
|
|
|
typedef NS_ENUM(NSInteger, CSPCCompatibleSpeed) {
|
|
|
|
CSPCCompatibleSpeedOriginal,
|
|
|
|
CSPCCompatibleSpeedTurbo,
|
2023-11-15 14:27:04 -05:00
|
|
|
};
|
|
|
|
|
2023-12-05 15:19:58 -05:00
|
|
|
typedef NS_ENUM(NSInteger, CSPCCompatibleVideoAdaptor) {
|
|
|
|
CSPCCompatibleVideoAdaptorMDA,
|
|
|
|
CSPCCompatibleVideoAdaptorCGA,
|
|
|
|
};
|
|
|
|
|
2018-04-02 22:42:41 -04:00
|
|
|
typedef int Kilobytes;
|
|
|
|
|
2016-08-31 20:43:29 -04:00
|
|
|
@interface CSStaticAnalyser : NSObject
|
|
|
|
|
2020-12-31 13:23:46 -07:00
|
|
|
- (nullable instancetype)initWithFileAtURL:(NSURL *)url;
|
2016-08-31 20:43:29 -04:00
|
|
|
|
2021-12-22 18:20:55 -05:00
|
|
|
- (instancetype)initWithAmigaModel:(CSMachineAmigaModel)model chipMemorySize:(Kilobytes)chipMemorySize fastMemorySize:(Kilobytes)fastMemorySize;
|
2018-04-02 22:42:41 -04:00
|
|
|
- (instancetype)initWithAmstradCPCModel:(CSMachineCPCModel)model;
|
2024-02-15 09:10:19 -05:00
|
|
|
- (instancetype)initWithAppleIIModel:(CSMachineAppleIIModel)model diskController:(CSMachineAppleIIDiskController)diskController hasMockingboard:(BOOL)hasMockingboard;
|
2020-10-20 22:18:11 -04:00
|
|
|
- (instancetype)initWithAppleIIgsModel:(CSMachineAppleIIgsModel)model memorySize:(Kilobytes)memorySize;
|
2022-08-10 14:58:19 -04:00
|
|
|
- (instancetype)initWithAtariSTModel:(CSMachineAtariSTModel)model memorySize:(Kilobytes)memorySize;
|
2021-01-31 11:47:40 -05:00
|
|
|
- (instancetype)initWithElectronDFS:(BOOL)dfs adfs:(BOOL)adfs ap6:(BOOL)ap6 sidewaysRAM:(BOOL)sidewaysRAM;
|
2021-07-08 18:50:37 -04:00
|
|
|
- (instancetype)initWithEnterpriseModel:(CSMachineEnterpriseModel)model speed:(CSMachineEnterpriseSpeed)speed exosVersion:(CSMachineEnterpriseEXOS)exosVersion basicVersion:(CSMachineEnterpriseBASIC)basicVersion dos:(CSMachineEnterpriseDOS)dos;
|
2020-10-20 22:18:11 -04:00
|
|
|
- (instancetype)initWithMacintoshModel:(CSMachineMacintoshModel)model;
|
2023-05-13 22:25:50 -04:00
|
|
|
- (instancetype)initWithMSXModel:(CSMachineMSXModel)model region:(CSMachineMSXRegion)region hasDiskDrive:(BOOL)hasDiskDrive hasMSXMUSIC:(BOOL)hasMSXMUSIC;
|
2018-05-08 22:05:43 -04:00
|
|
|
- (instancetype)initWithOricModel:(CSMachineOricModel)model diskInterface:(CSMachineOricDiskInterface)diskInterface;
|
2021-03-21 21:50:50 -04:00
|
|
|
- (instancetype)initWithSpectrumModel:(CSMachineSpectrumModel)model;
|
2018-04-02 22:42:41 -04:00
|
|
|
- (instancetype)initWithVic20Region:(CSMachineVic20Region)region memorySize:(Kilobytes)memorySize hasC1540:(BOOL)hasC1540;
|
|
|
|
- (instancetype)initWithZX80MemorySize:(Kilobytes)memorySize useZX81ROM:(BOOL)useZX81ROM;
|
|
|
|
- (instancetype)initWithZX81MemorySize:(Kilobytes)memorySize;
|
2023-12-08 14:23:27 -05:00
|
|
|
- (instancetype)initWithPCCompatibleSpeed:(CSPCCompatibleSpeed)speed videoAdaptor:(CSPCCompatibleVideoAdaptor)adaptor;
|
2018-04-02 22:42:41 -04:00
|
|
|
|
2021-07-13 19:04:24 -04:00
|
|
|
@property(nonatomic, readonly, nullable) NSString *optionsNibName;
|
2016-09-12 22:15:38 -04:00
|
|
|
@property(nonatomic, readonly) NSString *displayName;
|
2016-10-02 16:31:50 -04:00
|
|
|
|
2016-08-31 20:43:29 -04:00
|
|
|
@end
|
2017-08-17 11:00:08 -04:00
|
|
|
|
|
|
|
@interface CSMediaSet : NSObject
|
|
|
|
|
|
|
|
- (instancetype)initWithFileAtURL:(NSURL *)url;
|
|
|
|
- (void)applyToMachine:(CSMachine *)machine;
|
|
|
|
|
2021-04-30 21:37:41 -04:00
|
|
|
@property(nonatomic, readonly) BOOL empty;
|
|
|
|
|
2017-08-17 11:00:08 -04:00
|
|
|
@end
|
2020-12-31 13:23:46 -07:00
|
|
|
|
|
|
|
NS_ASSUME_NONNULL_END
|