]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_pm.c
wwww
[16.git] / src / lib / 16_pm.c
old mode 100644 (file)
new mode 100755 (executable)
index 57c15aa..bc9ba74
@@ -4,7 +4,7 @@
 //     Primary coder: Jason Blochowiak\r
 //\r
 \r
-#include "ID_HEADS.H"\r
+#include "src/lib/16_pm.h"\r
 #pragma hdrstop\r
 \r
 //     Main Mem specific variables\r
@@ -56,15 +56,19 @@ static      char            *ParmStrings[] = {"nomain","noems","noxms",nil};
 //\r
 void\r
 PML_MapEMS(word logical,word physical)\r
-{\r
-       _AL = physical;\r
-       _BX = logical;\r
-       _DX = EMSHandle;\r
-       _AH = EMS_MAPPAGE;\r
-asm    int     EMS_INT\r
+{
+       union REGS CPURegs;\r
+       CPURegs.h.al = physical;\r
+       CPURegs.x.bx = logical;\r
+       CPURegs.x.dx = EMSHandle;\r
+       CPURegs.h.ah = EMS_MAPPAGE;\r
+       __asm
+       {
+               int     EMS_INT
+       }\r
 \r
-       if (_AH)\r
-               Quit("PML_MapEMS: Page mapping failed");\r
+       if(CPURegs.h.ah)\r
+               printf("PML_MapEMS: Page mapping failed\n");\r
 }\r
 \r
 //\r
@@ -177,7 +181,7 @@ PML_ShutdownEMS(void)
        asm     mov     dx,[EMSHandle]\r
        asm     int     EMS_INT\r
                if (_AH)\r
-                       Quit ("PML_ShutdownEMS: Error freeing EMS");\r
+                       printf("PML_ShutdownEMS: Error freeing EMS\n");\r
        }\r
 }\r
 \r
@@ -243,7 +247,7 @@ error:
 void\r
 PML_XMSCopy(boolean toxms,byte far *addr,word xmspage,word length)\r
 {\r
-       longword        xoffset;\r
+       dword   xoffset;\r
        struct\r
        {\r
                longword        length;\r
@@ -254,7 +258,7 @@ PML_XMSCopy(boolean toxms,byte far *addr,word xmspage,word length)
        } copy;\r
 \r
        if (!addr)\r
-               Quit("PML_XMSCopy: zero address");\r
+               printf("PML_XMSCopy: zero address\n");\r
 \r
        xoffset = (longword)xmspage * PMPageSize;\r
 \r
@@ -1171,8 +1175,11 @@ PM_Startup(void)
        if (!noxms)\r
                PML_StartupXMS();\r
 \r
-       if (nomain && !EMSPresent)\r
-               Quit("PM_Startup: No main or EMS");\r
+       if (nomain && !EMSPresent)
+       {\r
+               printf("PM_Startup: No main or EMS\n");
+               return;
+       }\r
        else\r
                PML_StartupMainMem();\r
 \r