From a2d910404ea5d32a684262556088a19fcac00da2 Mon Sep 17 00:00:00 2001 From: Peter Veenstra Date: Thu, 24 Feb 2005 18:24:33 +0000 Subject: [PATCH] add support for get code from Pinterface (thanks wd) Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@2119 --- src/ints/int10.cpp | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/src/ints/int10.cpp b/src/ints/int10.cpp index 3315d909..c3af071d 100644 --- a/src/ints/int10.cpp +++ b/src/ints/int10.cpp @@ -400,11 +400,36 @@ graphics_chars: reg_ah=0x01; } break; - case 0x0a: /* Get Pmode Inteface */ - reg_edi=RealOff(int10.rom.pmode_interface); - SegSet16(es,RealSeg(int10.rom.pmode_interface)); - reg_cx=int10.rom.pmode_interface_size; - reg_ax=0x004f; + case 0x0a: /* Get Pmode Interface */ + switch (reg_bl) { + case 0x00: + reg_edi=RealOff(int10.rom.pmode_interface); + SegSet16(es,RealSeg(int10.rom.pmode_interface)); + reg_cx=int10.rom.pmode_interface_size; + reg_ax=0x004f; + break; + case 0x01: /* Get code for "set bank" */ + reg_edi=RealOff(int10.rom.pmode_interface)+0x08; + SegSet16(es,RealSeg(int10.rom.pmode_interface)); + reg_cx=0x0b; + reg_ax=0x004f; + break; + case 0x02: /* Get code for "set display start" */ + reg_edi=RealOff(int10.rom.pmode_interface)+0x19; + SegSet16(es,RealSeg(int10.rom.pmode_interface)); + reg_cx=0x3e; + reg_ax=0x004f; + break; + case 0x03: /* Get code for "set pallete" */ + reg_edi=RealOff(int10.rom.pmode_interface)+0x57; + SegSet16(es,RealSeg(int10.rom.pmode_interface)); + reg_cx=0x37; + reg_ax=0x004f; + break; + default: + reg_ax=0x014f; + break; + } break; default: