Support disconnecting drives from DiskII Interface card: -d1-disconnected, -d2-disconnected

This commit is contained in:
tomcw
2020-12-12 20:49:46 +00:00
parent 1e35d4448c
commit 469f9ba807
7 changed files with 42 additions and 9 deletions
+11 -6
View File
@@ -389,16 +389,17 @@ bool DoHardDiskInsert(const int nDrive, LPCSTR szFileName)
return res;
}
void InsertFloppyDisks(const UINT slot, LPSTR szImageName_drive[NUM_DRIVES], bool& bBoot)
void InsertFloppyDisks(const UINT slot, LPSTR szImageName_drive[NUM_DRIVES], bool driveConnected[NUM_DRIVES], bool& bBoot)
{
_ASSERT(slot == 5 || slot == 6);
if (!szImageName_drive[DRIVE_1] && !szImageName_drive[DRIVE_2])
return;
bool bRes = true;
if (szImageName_drive[DRIVE_1])
if (!driveConnected[DRIVE_1])
{
dynamic_cast<Disk2InterfaceCard&>(GetCardMgr().GetRef(slot)).UnplugDrive(DRIVE_1);
}
else if (szImageName_drive[DRIVE_1])
{
bRes = DoDiskInsert(slot, DRIVE_1, szImageName_drive[DRIVE_1]);
LogFileOutput("Init: S%d, DoDiskInsert(D1), res=%d\n", slot, bRes);
@@ -406,7 +407,11 @@ void InsertFloppyDisks(const UINT slot, LPSTR szImageName_drive[NUM_DRIVES], boo
bBoot = true;
}
if (szImageName_drive[DRIVE_2])
if (!driveConnected[DRIVE_2])
{
dynamic_cast<Disk2InterfaceCard&>(GetCardMgr().GetRef(slot)).UnplugDrive(DRIVE_2);
}
else if (szImageName_drive[DRIVE_2])
{
bRes |= DoDiskInsert(slot, DRIVE_2, szImageName_drive[DRIVE_2]);
LogFileOutput("Init: S%d, DoDiskInsert(D2), res=%d\n", slot, bRes);