1.22.1.5:

. Allow debugging of save-state image from start-up "logo" screen.
. Fixed inserting of disk images from save-state when drive-2 contained the disk required for drive-1.
This commit is contained in:
tomch 2013-04-26 21:55:45 +00:00
parent f293e4ee1f
commit f93fc25d54
9 changed files with 55 additions and 18 deletions

View File

@ -13,19 +13,17 @@ Tom Charlesworth
tomch at users.berlios.de
Restrictions/bugs:
- SSI263 emulation is very basic: there is no attempt to emulate rate, inflection or filters.
- During Mockingboard playback, Speaker emulation isn't precise.
1.22.1.4 - 28 Mar 2013
1.22.1.5 - 26 Apr 2013
----------------------
Changes:
. Extended logging support.
. Extended logging support during startup and shutdown.
. Allow debugging of save-state image from start-up "logo" screen.
Fixes:
. Screenshot 280x192:
- [Bug #018928] Correction for left edge loss of scaled scanline.
- In 50% scanline mode got an all black image.
- A screenshot in 50% scanline mode would produce an all black image.
. Fixed inserting of disk images from save-state when drive-2 contained the disk required for drive-1.
1.22.1 - 7 Mar 2013
--------------------

View File

@ -253,8 +253,8 @@ DISK_ICON ICON "DISK.ICO"
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,22,1,4
PRODUCTVERSION 1,22,1,4
FILEVERSION 1,22,1,5
PRODUCTVERSION 1,22,1,5
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -272,12 +272,12 @@ BEGIN
VALUE "Comments", "http://applewin.berlios.de"
VALUE "CompanyName", "AppleWin"
VALUE "FileDescription", "Apple //e Emulator for Windows"
VALUE "FileVersion", "1, 22, 1, 4"
VALUE "FileVersion", "1, 22, 1, 5"
VALUE "InternalName", "APPLEWIN"
VALUE "LegalCopyright", " 1994-2013 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, 22, 1, 4"
VALUE "ProductVersion", "1, 22, 1, 5"
END
END
BLOCK "VarFileInfo"

View File

@ -61,6 +61,7 @@ bool P8Shift = false;
HINSTANCE g_hInstance = (HINSTANCE)0;
AppMode_e g_nAppMode = MODE_LOGO;
static bool g_bLoadedSaveState = false;
static int lastmode = MODE_LOGO;
DWORD needsprecision = 0; // Redundant
@ -113,6 +114,24 @@ ULONGLONG g_nPerfFreq = 0;
//---------------------------------------------------------------------------
bool GetLoadedSaveStateFlag(void)
{
return g_bLoadedSaveState;
}
void SetLoadedSaveStateFlag(const bool bFlag)
{
g_bLoadedSaveState = bFlag;
}
static void ResetToLogoMode(void)
{
g_nAppMode = MODE_LOGO;
SetLoadedSaveStateFlag(false);
}
//---------------------------------------------------------------------------
static bool g_bPriorityNormal = true;
// Make APPLEWIN process higher priority
@ -955,7 +974,7 @@ int APIENTRY WinMain(HINSTANCE passinstance, HINSTANCE, LPSTR lpCmdLine, int)
{
// DO INITIALIZATION THAT MUST BE REPEATED FOR A RESTART
restart = 0;
g_nAppMode = MODE_LOGO;
ResetToLogoMode();
LoadConfiguration();
LogFileOutput("Main: LoadConfiguration()\n");

View File

@ -25,6 +25,8 @@ extern bool P8Shift;
extern HINSTANCE g_hInstance;
extern AppMode_e g_nAppMode;
bool GetLoadedSaveStateFlag(void);
void SetLoadedSaveStateFlag(const bool bFlag);
extern DWORD needsprecision;
extern TCHAR g_sProgramDir[MAX_PATH];

View File

@ -1049,18 +1049,18 @@ DWORD DiskSetSnapshot(SS_CARD_DISK2* pSS, DWORD /*dwSlot*/)
floppymotoron = pSS->floppymotoron;
floppywritemode = pSS->floppywritemode;
// Eject all disks first in case Drive-2 contains disk to be inserted into Drive-1
for(UINT i=0; i<NUM_DRIVES; i++)
{
bool bImageError = false;
DiskEject(i); // Remove any disk & update Registry to reflect empty drive
ZeroMemory(&g_aFloppyDisk[i], sizeof(Disk_t ));
}
for(UINT i=0; i<NUM_DRIVES; i++)
{
if(pSS->Unit[i].szFileName[0] == 0x00)
continue;
//
DWORD dwAttributes = GetFileAttributes(pSS->Unit[i].szFileName);
if(dwAttributes == INVALID_FILE_ATTRIBUTES)
{
@ -1070,6 +1070,7 @@ DWORD DiskSetSnapshot(SS_CARD_DISK2* pSS, DWORD /*dwSlot*/)
dwAttributes = GetFileAttributes(pSS->Unit[i].szFileName);
}
bool bImageError = false;
if(dwAttributes != INVALID_FILE_ATTRIBUTES)
{
if(DiskInsert(i, pSS->Unit[i].szFileName, dwAttributes & FILE_ATTRIBUTE_READONLY, IMAGE_DONT_CREATE) != eIMAGE_ERROR_NONE)

View File

@ -1551,10 +1551,11 @@ void ProcessButtonClick (int button)
break;
case BTN_DEBUG:
if (g_nAppMode == MODE_LOGO)
if (g_nAppMode == MODE_LOGO && !GetLoadedSaveStateFlag())
{
ResetMachineState();
}
// Allow F7 to enter debugger even though emulator isn't "running"
if (g_nAppMode == MODE_STEPPING)
{

View File

@ -1023,6 +1023,19 @@ LPBYTE MemGetMainPtr (WORD offset)
//===========================================================================
LPBYTE MemGetBankPtr(const UINT nBank)
{
if (nBank == 0)
return mem;
if (nBank > g_uMaxExPages)
return NULL;
return RWpages[nBank-1];
}
//===========================================================================
LPBYTE MemGetCxRomPeripheral()
{
return pCxRomPeripheral;

View File

@ -38,6 +38,7 @@ bool MemGet80Store();
bool MemCheckSLOTCXROM();
LPBYTE MemGetAuxPtr (WORD);
LPBYTE MemGetMainPtr (WORD);
LPBYTE MemGetBankPtr(const UINT nBank);
LPBYTE MemGetCxRomPeripheral();
void MemInitialize ();
BYTE MemReadFloatingBus(const ULONG uExecutedCycles);

View File

@ -149,6 +149,8 @@ void Snapshot_LoadState()
//
// Slot6: Disk][
DiskSetSnapshot(&pSS->Disk2, 6);
SetLoadedSaveStateFlag(true);
}
catch(int)
{