[NTVDM:EMS]
authorAleksandar Andrejevic <aandrejevic@reactos.org>
Tue, 30 Aug 2016 02:13:40 +0000 (02:13 +0000)
committerAleksandar Andrejevic <aandrejevic@reactos.org>
Tue, 30 Aug 2016 02:13:40 +0000 (02:13 +0000)
Implement EMS function 4E/03: "Get Size of Page-Mapping Array".

svn path=/trunk/; revision=72508

reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/emsdrv.c

index bc22ce8..38da36c 100644 (file)
@@ -394,6 +394,39 @@ static VOID WINAPI EmsIntHandler(LPWORD Stack)
             break;
         }
 
+        /* Get or Set Page Map */
+        case 0x4E:
+        {
+            switch (getAL())
+            {
+                /* Get Mapping Registers  */
+                // case 0x00: // TODO: NOT IMPLEMENTED
+                /* Set Mapping Registers */
+                // case 0x01: // TODO: NOT IMPLEMENTED
+
+                /* Get and Set Mapping Registers At Once */
+                // case 0x02: // TODO: NOT IMPLEMENTED
+
+                /* Get Size of Page-Mapping Array */
+                case 0x03:
+                {
+                    setAH(EMS_STATUS_SUCCESS);
+                    setAL(sizeof(Mapping));
+                    break;
+                }
+
+                default:
+                {
+                    DPRINT1("EMS function AH = 0x4E, subfunction AL = %02X NOT IMPLEMENTED\n", getAL());
+                    setAH(EMS_STATUS_UNKNOWN_FUNCTION);
+                    break;
+                }
+            }
+            
+            break;
+        }
+
         /* Get/Set Handle Name */
         case 0x53:
         {