1.26.2.4 Prompt when trying to swap disks while drive is on instead of silently failing

This commit is contained in:
michaelangel007 2017-05-11 08:34:57 -07:00
parent 158b5212e6
commit f8d3789635
3 changed files with 39 additions and 5 deletions

View File

@ -9,6 +9,12 @@ https://github.com/AppleWin/AppleWin/issues/new
Tom Charlesworth
1.26.2.4 (Experimental) - TBD
-----------------------------
Fixes:
. Quality of Life: Swapping disks while a drive is on now warns and prompts if you still wish to do this instead of silently failing with no feedback.
1.26.2.3 (Experimental) - 24 Apr 2017
-------------------------------------
. [Bug #405] Screen flicker in full-speed mode

View File

@ -251,8 +251,8 @@ DISK_ICON ICON "DISK.ICO"
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,26,2,3
PRODUCTVERSION 1,26,2,3
FILEVERSION 1,26,2,4
PRODUCTVERSION 1,26,2,4
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -270,12 +270,12 @@ BEGIN
VALUE "Comments", "https://github.com/AppleWin"
VALUE "CompanyName", "AppleWin"
VALUE "FileDescription", "Apple //e Emulator for Windows"
VALUE "FileVersion", "1, 26, 2, 3"
VALUE "FileVersion", "1, 26, 2, 4"
VALUE "InternalName", "APPLEWIN"
VALUE "LegalCopyright", " 1994-2017 Michael O'Brien, Oliver Schmidt, Tom Charlesworth, Michael Pohoreski, Nick Westgate, Linards Ticmanis"
VALUE "OriginalFilename", "APPLEWIN.EXE"
VALUE "ProductName", "Apple //e Emulator"
VALUE "ProductVersion", "1, 26, 2, 3"
VALUE "ProductVersion", "1, 26, 2, 4"
END
END
BLOCK "VarFileInfo"

View File

@ -972,8 +972,36 @@ void DiskUpdatePosition(DWORD cycles)
bool DiskDriveSwap(void)
{
// Refuse to swap if either Disk][ is active
// TODO: if Shift-Click then FORCE drive swap to bypass message
if(g_aFloppyDisk[0].spinning || g_aFloppyDisk[1].spinning)
return false;
{
// 1.26.2.4 Prompt when trying to swap disks while drive is on instead of silently failing
int status = MessageBox(
g_hFrameWindow,
"WARNING:\n"
"\n"
"\tAttempting to swap a disk while a drive is on\n"
"\t\t--> is NOT recommended <--\n"
"\tas this will most likely read/write incorrect data!\n"
"\n"
"If the other drive is empty then swapping is harmless. The"
" computer will appear to 'hang' trying to read non-existant data but"
" you can safely swap disks once more to restore the original disk.\n"
"\n"
"Do you still wish to swap disks?",
"Trying to swap a disk while a drive is on ...",
MB_ICONWARNING | MB_YESNOCANCEL
);
switch( status )
{
case IDNO:
case IDCANCEL:
return false;
default:
break; // User is OK with swapping disks so let them proceed at their own risk
}
}
// Swap disks between drives
// . NB. We swap trackimage ptrs (so don't need to swap the buffers' data)