mirror of
https://github.com/AppleWin/AppleWin.git
synced 2024-12-28 02:32:08 +00:00
b371e3436f
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.
123 lines
3.1 KiB
C++
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;
|