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