// 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
//\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
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
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
} 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
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