AppleWin/source/CmdLine.h
TomCh 16b2cf329e
Support IIe aux slot: empty or with 80-col(1KiB) card (#1341, PR #1351)
Add new command line switch: -aux <empty|std80|ext80|rw3>
Add 6502/65C02 x normal/debugger alt read support for CPU emulation (#1353).
Fix bug in MemReadFloatingBus() reading from mem[] - no good, if MF_AUXREAD is set.
Support odd 80-col text video mode when aux slot is empty:
. add a new videoMode flag for VF_80COL_AUX_EMPTY.
Correctly support 80COL & DHIRES soft-switches when aux slot is empty or with std80 card.
Support VidHD's SHR with -aux <empty|std80>.
Save-state: support aux slot empty or with std80 card.
2024-12-30 21:39:16 +00:00

133 lines
3.3 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;
useBad6522A = false;
useBad6522B = false;
}
bool isDiskII13;
HdcMode useHdcFirmwareMode;
bool useBad6522A;
bool useBad6522B;
};
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;
snapshotIgnoreHdcFirmware = false;
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;
auxSlotEmpty = false;
auxSlotInsert = CT_Empty;
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;
bool snapshotIgnoreHdcFirmware;
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 auxSlotEmpty;
SS_CARDTYPE auxSlotInsert;
};
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;