diff --git a/src/hardware/vga_draw.cpp b/src/hardware/vga_draw.cpp index 055cefdb..337d04d0 100644 --- a/src/hardware/vga_draw.cpp +++ b/src/hardware/vga_draw.cpp @@ -101,7 +101,8 @@ void VGA_DrawGFX256U_Fast(Bit8u * bitdata,Bitu next_line) { } void VGA_DrawTEXT(Bit8u * bitdata,Bitu pitch) { - Bit8u * reader=HostMake(0xB800,0); + + Bit8u * reader=HostMake((vga.gfx.miscellaneous & 0x4 ?0xB800:0xB000),0); Bit8u * draw_start=bitdata; /* Todo Blinking and high intensity colors */ for (Bitu cy=0;cy<(vga.draw.height/16);cy++) { diff --git a/src/ints/int10_char.cpp b/src/ints/int10_char.cpp index abb7d0d7..d2406086 100644 --- a/src/ints/int10_char.cpp +++ b/src/ints/int10_char.cpp @@ -242,9 +242,10 @@ INLINE static void WriteChar(Bit16u col,Bit16u row,Bit8u page,Bit8u chr,Bit8u at // Compute the address Bit16u address=SCREEN_MEM_START(curmode->twidth,curmode->theight,page)+(col+row*curmode->twidth)*2; // Write the char - real_writeb(0xb800,address,chr); + Bit16u segment = curmode->sstart; + real_writeb(segment,address,chr); if (useattr) { - real_writeb(0xb800,address+1,attr); + real_writeb(segment,address+1,attr); } } break;