Map inactive video memory regions as empty rather than filled with RAM. Fixes later version of Sargon 3 on color machine types.
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@3974
This commit is contained in:
parent
3a8712202e
commit
ea40599a4b
1 changed files with 9 additions and 6 deletions
|
@ -794,9 +794,12 @@ void VGA_SetupHandlers(void) {
|
|||
switch (machine) {
|
||||
case MCH_CGA:
|
||||
case MCH_PCJR:
|
||||
MEM_SetPageHandler( VGA_PAGE_A0, 16, &vgaph.empty );
|
||||
MEM_SetPageHandler( VGA_PAGE_B0, 8, &vgaph.empty );
|
||||
MEM_SetPageHandler( VGA_PAGE_B8, 8, &vgaph.pcjr );
|
||||
goto range_done;
|
||||
case MCH_HERC:
|
||||
MEM_SetPageHandler( VGA_PAGE_A0, 16, &vgaph.empty );
|
||||
vgapages.base=VGA_PAGE_B0;
|
||||
if (vga.herc.enable_bits & 0x2) {
|
||||
vgapages.mask=0xffff;
|
||||
|
@ -825,7 +828,7 @@ void VGA_SetupHandlers(void) {
|
|||
} else {
|
||||
vga.tandy.draw_base = TANDY_VIDBASE( vga.tandy.draw_bank * 16 * 1024);
|
||||
vga.tandy.mem_base = TANDY_VIDBASE( vga.tandy.mem_bank * 16 * 1024);
|
||||
MEM_SetPageHandler( 0xb8, 8, &vgaph.tandy );
|
||||
MEM_SetPageHandler( VGA_PAGE_B8, 8, &vgaph.tandy );
|
||||
}
|
||||
goto range_done;
|
||||
// MEM_SetPageHandler(vga.tandy.mem_bank<<2,vga.tandy.is_32k_mode ? 0x08 : 0x04,range_handler);
|
||||
|
@ -903,21 +906,21 @@ void VGA_SetupHandlers(void) {
|
|||
vgapages.base = VGA_PAGE_A0;
|
||||
vgapages.mask = 0xffff;
|
||||
MEM_SetPageHandler( VGA_PAGE_A0, 16, newHandler );
|
||||
MEM_ResetPageHandler( VGA_PAGE_B0, 16);
|
||||
MEM_SetPageHandler( VGA_PAGE_B0, 16, &vgaph.empty );
|
||||
break;
|
||||
case 2:
|
||||
vgapages.base = VGA_PAGE_B0;
|
||||
vgapages.mask = 0x7fff;
|
||||
MEM_SetPageHandler( VGA_PAGE_B0, 8, newHandler );
|
||||
MEM_ResetPageHandler( VGA_PAGE_A0, 16 );
|
||||
MEM_ResetPageHandler( VGA_PAGE_B8, 8 );
|
||||
MEM_SetPageHandler( VGA_PAGE_A0, 16, &vgaph.empty );
|
||||
MEM_SetPageHandler( VGA_PAGE_B8, 8, &vgaph.empty );
|
||||
break;
|
||||
case 3:
|
||||
vgapages.base = VGA_PAGE_B8;
|
||||
vgapages.mask = 0x7fff;
|
||||
MEM_SetPageHandler( VGA_PAGE_B8, 8, newHandler );
|
||||
MEM_ResetPageHandler( VGA_PAGE_A0, 16 );
|
||||
MEM_ResetPageHandler( VGA_PAGE_B0, 8 );
|
||||
MEM_SetPageHandler( VGA_PAGE_A0, 16, &vgaph.empty );
|
||||
MEM_SetPageHandler( VGA_PAGE_B0, 8, &vgaph.empty );
|
||||
break;
|
||||
}
|
||||
if(svgaCard == SVGA_S3Trio && (vga.s3.ext_mem_ctrl & 0x10))
|
||||
|
|
Loading…
Add table
Reference in a new issue