diff --git a/src/hardware/vga_draw.cpp b/src/hardware/vga_draw.cpp index 2c0f5880..56f7da8c 100644 --- a/src/hardware/vga_draw.cpp +++ b/src/hardware/vga_draw.cpp @@ -901,7 +901,7 @@ void VGA_SetupDrawing(Bitu val) { doubleheight=true; vga.draw.blocks=width*2; if (vga.tandy.mode_control & 0x1) { - if ( vga.tandy.mode_control & 0x10 ) { + if (( machine==MCH_TANDY ) && ( vga.tandy.mode_control & 0x10 )) { doublewidth = false; vga.draw.blocks*=2; width=vga.draw.blocks*2; diff --git a/src/hardware/vga_other.cpp b/src/hardware/vga_other.cpp index a57765d4..1c723d93 100644 --- a/src/hardware/vga_other.cpp +++ b/src/hardware/vga_other.cpp @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $Id: vga_other.cpp,v 1.20 2007-01-24 16:29:09 harekiet Exp $ */ +/* $Id: vga_other.cpp,v 1.21 2007-02-01 16:24:03 c2woody Exp $ */ #include #include @@ -400,8 +400,8 @@ static void write_tandy(Bitu port,Bitu val,Bitu iolen) { break; case 0x3df: vga.tandy.line_mask = val >> 6; - vga.tandy.draw_bank = val & 0x7; - vga.tandy.mem_bank = (val >> 3) & 0x7; + vga.tandy.draw_bank = val & ((vga.tandy.line_mask&2) ? 0x6 : 0x7); + vga.tandy.mem_bank = (val >> 3) & ((vga.tandy.line_mask&2) ? 0x6 : 0x7); TandyCheckLineMask(); VGA_SetupHandlers(); break; @@ -420,8 +420,8 @@ static void write_pcjr(Bitu port,Bitu val,Bitu iolen) { break; case 0x3df: vga.tandy.line_mask = val >> 6; - vga.tandy.draw_bank = val & 0x7; - vga.tandy.mem_bank = (val >> 3) & 0x7; + vga.tandy.draw_bank = val & ((vga.tandy.line_mask&2) ? 0x6 : 0x7); + vga.tandy.mem_bank = (val >> 3) & ((vga.tandy.line_mask&2) ? 0x6 : 0x7); vga.tandy.draw_base = &MemBase[vga.tandy.draw_bank * 16 * 1024]; vga.tandy.mem_base = &MemBase[vga.tandy.mem_bank * 16 * 1024]; TandyCheckLineMask();