AppleWin/source/CmdLine.h
TomCh b371e3436f
Support HDC SmartPort firmware for Enhanced //e (#1207, PR #1314)
Added new SmartPort Harddisk Controller (HDC) firmware for Enhanced //e. (@burniouf)
. remove the old DOSMaster entrypoints.
. firmware ID byte (at $FE) defaults to 4 ProDOS block devices (was 2 with older v2 f/w).
Enhanced //e defaults to using SP f/w, and older Apple II's still use the older v2 f/w.
Support up to 8 units per HDC (currently limited to 4GiB capacity for each unit).
Save-state: save HDC firmware in state file.
New slot-specific switches to configure each HDC's firmware: -s<N> -hdc-[sp|bm2|bm4].
New switch to select old non-SP firmware for all HDCs: -hdc-firmware-v2.
2024-07-28 16:12:36 +01:00

123 lines
3.1 KiB
C++

#pragma once
#include "RGBMonitor.h"
#include "Harddisk.h"
#include "Disk.h"
#include "Common.h"
#include "Card.h"
struct CmdLine
{
struct SlotInfo
{
SlotInfo()
{
isDiskII13 = false;
useHdcFirmwareMode = HdcDefault;
}
bool isDiskII13;
HdcMode useHdcFirmwareMode;
};
CmdLine()
{
bShutdown = false;
setFullScreen = -1;
bBoot = false;
bSlot0LanguageCard = false;
bSlot7EmptyOnExit = false;
bSwapButtons0and1 = false;
bRemoveNoSlotClock = false;
snesMaxAltControllerType[0] = false;
snesMaxAltControllerType[1] = false;
supportDCD = false;
enableDumpToRealPrinter = false;
supportExtraMBCardTypes = false;
noDisk2StepperDefer = false;
useHdcFirmwareV1 = false;
useHdcFirmwareV2 = false;
szSnapshotName = NULL;
szScreenshotFilename = NULL;
uHarddiskNumBlocks = 0;
uRamWorksExPages = 0;
uSaturnBanks = 0;
newVideoType = -1;
newVideoStyleEnableMask = 0;
newVideoStyleDisableMask = 0;
newVideoRefreshRate = VR_NONE;
clockMultiplier = 0.0; // 0 => not set from cmd-line
model = A2TYPE_MAX;
rgbCard = RGB_Videocard_e::Apple;
rgbCardForegroundColor = 15;
rgbCardBackgroundColor = 0;
bestFullScreenResolution = false;
userSpecifiedWidth = 0;
userSpecifiedHeight = 0;
for (UINT i = 0; i < NUM_SLOTS; i++)
{
bSlotEmpty[i] = false;
slotInsert[i] = CT_Empty;
szImageName_drive[i][DRIVE_1] = NULL;
szImageName_drive[i][DRIVE_2] = NULL;
driveConnected[i][DRIVE_1] = true;
driveConnected[i][DRIVE_2] = true;
szImageName_harddisk[i][HARDDISK_1] = NULL;
szImageName_harddisk[i][HARDDISK_2] = NULL;
}
}
bool bShutdown;
int setFullScreen; // tristate: -1 (no cmd line specified), 0="-no-full-screen", 1="-full-screen"
bool bBoot;
bool bSlot0LanguageCard;
bool bSlotEmpty[NUM_SLOTS];
bool bSlot7EmptyOnExit;
bool bSwapButtons0and1;
bool bRemoveNoSlotClock;
bool snesMaxAltControllerType[2];
bool supportDCD;
bool enableDumpToRealPrinter;
bool supportExtraMBCardTypes;
bool noDisk2StepperDefer; // debug
bool useHdcFirmwareV1; // debug
bool useHdcFirmwareV2;
SS_CARDTYPE slotInsert[NUM_SLOTS];
SlotInfo slotInfo[NUM_SLOTS];
LPCSTR szImageName_drive[NUM_SLOTS][NUM_DRIVES];
bool driveConnected[NUM_SLOTS][NUM_DRIVES];
LPCSTR szImageName_harddisk[NUM_SLOTS][NUM_HARDDISKS];
UINT uHarddiskNumBlocks;
LPSTR szSnapshotName;
LPSTR szScreenshotFilename;
UINT uRamWorksExPages;
UINT uSaturnBanks;
int newVideoType;
int newVideoStyleEnableMask;
int newVideoStyleDisableMask;
VideoRefreshRate_e newVideoRefreshRate;
double clockMultiplier;
eApple2Type model;
RGB_Videocard_e rgbCard;
int rgbCardForegroundColor;
int rgbCardBackgroundColor;
std::string strCurrentDir;
bool bestFullScreenResolution;
UINT userSpecifiedWidth;
UINT userSpecifiedHeight;
std::string wavFileSpeaker;
std::string wavFileMockingboard;
};
bool ProcessCmdLine(LPSTR lpCmdLine);
extern std::string g_sConfigFile; // INI file to use instead of Registry
extern bool g_bCapturePrintScreenKey;
extern bool g_bRegisterFileTypes;
extern bool g_bHookSystemKey;
extern bool g_bHookAltTab;
extern bool g_bHookAltGrControl;
extern CmdLine g_cmdLine;