From 27991bc01b020fd7109de7996297cf64cac80f34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Strohh=C3=A4cker?= Date: Fri, 14 Mar 2008 18:16:34 +0000 Subject: [PATCH] add dummy alternate font table indexer Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@3124 --- src/ints/int10.cpp | 12 +++++++++++- src/ints/int10.h | 4 +++- src/ints/int10_memory.cpp | 5 ++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/ints/int10.cpp b/src/ints/int10.cpp index ffa93e67..3e053d62 100644 --- a/src/ints/int10.cpp +++ b/src/ints/int10.cpp @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $Id: int10.cpp,v 1.49 2008-02-18 19:48:22 qbix79 Exp $ */ +/* $Id: int10.cpp,v 1.50 2008-03-14 18:16:34 c2woody Exp $ */ #include "dosbox.h" #include "mem.h" @@ -282,11 +282,21 @@ graphics_chars: SegSet16(es,RealSeg(int10.rom.font_8_second)); reg_bp=RealOff(int10.rom.font_8_second); break; + case 0x05: /* alpha alternate 9x14 */ + if (!IS_VGA_ARCH) break; + SegSet16(es,RealSeg(int10.rom.font_14_alternate)); + reg_bp=RealOff(int10.rom.font_14_alternate); + break; case 0x06: /* font 8x16 */ if (!IS_VGA_ARCH) break; SegSet16(es,RealSeg(int10.rom.font_16)); reg_bp=RealOff(int10.rom.font_16); break; + case 0x07: /* alpha alternate 9x16 */ + if (!IS_VGA_ARCH) break; + SegSet16(es,RealSeg(int10.rom.font_16_alternate)); + reg_bp=RealOff(int10.rom.font_16_alternate); + break; default: LOG(LOG_INT10,LOG_ERROR)("Function 11:30 Request for font %2X",reg_bh); break; diff --git a/src/ints/int10.h b/src/ints/int10.h index 9f9f4c2f..07204037 100644 --- a/src/ints/int10.h +++ b/src/ints/int10.h @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $Id: int10.h,v 1.34 2008-02-03 20:43:14 c2woody Exp $ */ +/* $Id: int10.h,v 1.35 2008-03-14 18:16:34 c2woody Exp $ */ #include "vga.h" @@ -123,6 +123,8 @@ typedef struct { RealPt font_8_second; RealPt font_14; RealPt font_16; + RealPt font_14_alternate; + RealPt font_16_alternate; RealPt static_state; RealPt video_save_pointers; RealPt video_parameter_table; diff --git a/src/ints/int10_memory.cpp b/src/ints/int10_memory.cpp index 6582339a..7cc5234c 100644 --- a/src/ints/int10_memory.cpp +++ b/src/ints/int10_memory.cpp @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $Id: int10_memory.cpp,v 1.25 2008-02-09 12:44:16 c2woody Exp $ */ +/* $Id: int10_memory.cpp,v 1.26 2008-03-14 18:16:34 c2woody Exp $ */ #include "dosbox.h" #include "mem.h" @@ -117,6 +117,9 @@ void INT10_SetupRomMemory(void) { phys_writeb(PhysMake(0xf000,0xfa6e)+i,int10_font_08[i]); } RealSetVec(0x1F,int10.rom.font_8_second); + int10.rom.font_14_alternate=RealMake(0xC000,int10.rom.used); + int10.rom.font_16_alternate=RealMake(0xC000,int10.rom.used); + phys_writeb(rom_base+int10.rom.used++,0x00); // end of table (empty) if (IS_EGAVGA_ARCH) { int10.rom.video_parameter_table=RealMake(0xC000,int10.rom.used);