Fix 2 minor bugs:

1) Debugger: wasn't accounting for 80STORE when checking PAGE2 switch (eg. CTRL+PRNTSCRN)
2) 80-col 1KiB card (std80): wasn't checking SW_WRITERAM
This commit is contained in:
tomcw 2025-01-05 17:25:27 +00:00
parent c4e81fc71d
commit c336a0ce40
2 changed files with 3 additions and 3 deletions

View File

@ -4980,7 +4980,7 @@ size_t Util_GetTextScreen ( char* &pText_ )
g_nTextScreen = 0; g_nTextScreen = 0;
memset( pBeg, 0, sizeof( g_aTextScreen ) ); memset( pBeg, 0, sizeof( g_aTextScreen ) );
unsigned int uBank2 = GetVideo().VideoGetSWPAGE2() ? 1 : 0; const unsigned int uBank2 = (!GetVideo().VideoGetSW80STORE() && GetVideo().VideoGetSWPAGE2()) ? 1 : 0;
LPBYTE g_pTextBank1 = MemGetAuxPtr (0x400 << uBank2); LPBYTE g_pTextBank1 = MemGetAuxPtr (0x400 << uBank2);
LPBYTE g_pTextBank0 = MemGetMainPtr(0x400 << uBank2); LPBYTE g_pTextBank0 = MemGetMainPtr(0x400 << uBank2);
@ -6816,7 +6816,7 @@ static Update_t _ViewOutput ( ViewVideoPage_t iPage, UINT bVideoModeFlags )
switch ( iPage ) switch ( iPage )
{ {
case VIEW_PAGE_X: case VIEW_PAGE_X:
bVideoModeFlags |= GetVideo().VideoGetSWPAGE2() ? VF_PAGE2 : 0; bVideoModeFlags |= (!GetVideo().VideoGetSW80STORE() && GetVideo().VideoGetSWPAGE2()) ? VF_PAGE2 : 0;
bVideoModeFlags |= GetVideo().VideoGetSWMIXED() ? VF_MIXED : 0; bVideoModeFlags |= GetVideo().VideoGetSWMIXED() ? VF_MIXED : 0;
break; // Page Current & current MIXED state break; // Page Current & current MIXED state
case VIEW_PAGE_0: bVideoModeFlags |= VF_PAGE0; break; // Pseudo Page 0 ($0000) case VIEW_PAGE_0: bVideoModeFlags |= VF_PAGE0; break; // Pseudo Page 0 ($0000)

View File

@ -1418,7 +1418,7 @@ static void UpdatePagingForAltRW(void)
memwrite[loop] = (memwrite[loop] - (loop << 8)) + TEXT_PAGE1_BEGIN + ((loop & 3) << 8); memwrite[loop] = (memwrite[loop] - (loop << 8)) + TEXT_PAGE1_BEGIN + ((loop & 3) << 8);
for (loop = 0xD0; loop < 0x100; loop++) for (loop = 0xD0; loop < 0x100; loop++)
if (SW_HIGHRAM && SW_ALTZP) if (SW_WRITERAM && SW_HIGHRAM && SW_ALTZP)
memwrite[loop] = memaux + TEXT_PAGE1_BEGIN + ((loop & 3) << 8); memwrite[loop] = memaux + TEXT_PAGE1_BEGIN + ((loop & 3) << 8);
if (SW_80STORE && SW_PAGE2) if (SW_80STORE && SW_PAGE2)