From 0e04d8b0a813caee947a1a29174db949d0cc7a07 Mon Sep 17 00:00:00 2001
From: Robert 'Admiral' Coeyman <admiral@corner.net>
Date: Sat, 23 Oct 1999 19:01:10 +0000
Subject: [PATCH] Report non-hercules video. Turned on int 2a.

---
 include/miscemu.h  |  3 +++
 msdos/int10.c      | 12 ++++++++++++
 msdos/interrupts.c |  3 +++
 3 files changed, 18 insertions(+)

diff --git a/include/miscemu.h b/include/miscemu.h
index c91bb59066a..bc406c65b72 100644
--- a/include/miscemu.h
+++ b/include/miscemu.h
@@ -167,6 +167,9 @@ extern void WINAPI INT_Int26Handler(CONTEXT86*);
 /* msdos/int29.c */
 extern void WINAPI INT_Int29Handler(CONTEXT86*);
 
+/* msdos/int2a.c */
+extern void WINAPI INT_Int2aHandler(CONTEXT86*);
+
 /* msdos/int2f.c */
 extern void WINAPI INT_Int2fHandler(CONTEXT86*);
 
diff --git a/msdos/int10.c b/msdos/int10.c
index ef2ec83f563..9d3aebb5621 100644
--- a/msdos/int10.c
+++ b/msdos/int10.c
@@ -292,6 +292,12 @@ void WINAPI INT_Int10Handler( CONTEXT86 *context )
 	case 0x09: /* SET PALETTE ENTRIES */
 		FIXME("VESA Set palette entries - not implemented\n");
 		break;
+        case 0xef:  /* get video mode for hercules-compatables   */
+                    /* There's no reason to really support this  */
+                    /* is there?....................(A.C.)       */
+                TRACE("Just report the video not hercules compatable\n");
+                DX_reg(context) = 0xffff;
+                break; 
 	case 0xff: /* Turn VESA ON/OFF */
 		/* i dont know what to do */
 		break;
@@ -731,6 +737,12 @@ else {
           *(DWORD *)(p+0x0a) = 0xfffffffd; /* capabilities flags :-) */
         }
         break;
+        case 0xef:  /* get video mode for hercules-compatables   */
+                    /* There's no reason to really support this  */
+                    /* is there?....................(A.C.)       */
+                TRACE("Just report the video not hercules compatable\n");
+                DX_reg(context) = 0xffff;
+                break; 
     default:
         FIXME("Unknown - 0x%x\n", AH_reg(context));
         INT_BARF( context, 0x10 );
diff --git a/msdos/interrupts.c b/msdos/interrupts.c
index abfe861614d..734bbed2e13 100644
--- a/msdos/interrupts.c
+++ b/msdos/interrupts.c
@@ -142,6 +142,9 @@ int INT_RealModeInterrupt( BYTE intnum, CONTEXT86 *context )
         case 0x29:
             INT_Int29Handler(context);
             break;
+        case 0x2a:
+            INT_Int2aHandler(context);
+            break; 
         case 0x2f:
             INT_Int2fHandler(context);
             break;
-- 
GitLab