diff --git a/resource/version.h b/resource/version.h index 0688de60..e7c78a31 100644 --- a/resource/version.h +++ b/resource/version.h @@ -1,4 +1,4 @@ -#define APPLEWIN_VERSION 1,29,10,0 +#define APPLEWIN_VERSION 1,29,11,0 #define xstr(a) str(a) #define str(a) #a diff --git a/source/Disk.cpp b/source/Disk.cpp index 454d37e6..b0ddb704 100644 --- a/source/Disk.cpp +++ b/source/Disk.cpp @@ -1589,7 +1589,7 @@ void __stdcall Disk2InterfaceCard::LoadWriteProtect(WORD, WORD, BYTE write, BYTE const UINT bitCellDelta = GetBitCellDelta(uExecutedCycles); UpdateBitStreamPosition(floppy, bitCellDelta); // Fix E7-copy protection - // UpdateBitStreamPosition() must be done below ResetLSS, as the former clears m_resetSequencer. + // UpdateBitStreamPosition() must be done before ResetLSS, as the former clears m_resetSequencer (and the latter sets it). // . Commando.woz is sensitive to this. EG. It can crash after pressing 'J' (1 failure in 20 reboot repeats) ResetLogicStateSequencer(); // reset sequencer (UTAIIe page 9-21) } diff --git a/source/Memory.cpp b/source/Memory.cpp index 586db799..49b545b7 100644 --- a/source/Memory.cpp +++ b/source/Memory.cpp @@ -1609,15 +1609,14 @@ void MemInitializeCustomF8ROM(void) if (g_hCustomRomF8 != INVALID_HANDLE_VALUE) { - BYTE OldRom[Apple2RomSize]; // NB. 12KB on stack - memcpy(OldRom, memrom, Apple2RomSize); + std::vector oldRom(memrom, memrom+Apple2RomSize); // range ctor: [first,last) SetFilePointer(g_hCustomRomF8, 0, NULL, FILE_BEGIN); DWORD uNumBytesRead; BOOL bRes = ReadFile(g_hCustomRomF8, memrom+F8RomOffset, F8RomSize, &uNumBytesRead, NULL); if (uNumBytesRead != F8RomSize) { - memcpy(memrom, OldRom, Apple2RomSize); // ROM at $D000...$FFFF + memcpy(memrom, &oldRom[0], Apple2RomSize); // ROM at $D000...$FFFF bRes = FALSE; }