#include <malloc.h>\r
#include "src/lib/16_head.h"\r
#include "src/lib/16_hc.h"\r
-#include "src/lib/16_lib.h"\r
+#include "src/lib/16_tail.h"\r
//++++mh #include "src/lib/16_in.h"\r
-extern boolean pmdebug;\r
-\r
\r
#ifdef __DEBUG__ // 1 == Debug/Dev ; 0 == Production/final\r
#define OUT_OF_MEM_MSG "MM_GetPtr: Out of memory!\nYou were short :%lu bytes\n"\r
+extern boolean dbg_debugpm;\r
#else\r
#define OUT_OF_MEM_MSG "\npee\n"\r
#endif\r
//--------\r
\r
#define EMS_INT 0x67\r
+#define EMM_INT 0x21\r
\r
#define EMS_STATUS 0x40\r
#define EMS_GETFRAME 0x41\r
\r
#define XMS_INT 0x2f\r
#define XMS_CALL(v) _AH = (v);\\r
- __asm call [WORD PTR XMSDriver]\r
-/*__asm { //mov (v),ah*/\r
+ __asm call [DWORD PTR XMSDriver]\r
+/*__asm { mov ah,[v]\*///}\r
\r
#define XMS_VERSION 0x00\r
\r
-#define XMS_ALLOCHMA 0x01\r
+#define XMS_ALLOCHMA 0x01\r
#define XMS_FREEHMA 0x02\r
\r
#define XMS_GENABLEA20 0x03\r
#define XMS_GDISABLEA20 0x04\r
#define XMS_LENABLEA20 0x05\r
#define XMS_LDISABLEA20 0x06\r
-#define XMS_QUERYA20 0x07\r
+#define XMS_QUERYA20 0x07\r
\r
#define XMS_QUERYFREE 0x08\r
#define XMS_ALLOC 0x09\r
-#define XMS_FREE 0x0A\r
-#define XMS_MOVE 0x0B\r
-#define XMS_LOCK 0x0C\r
+#define XMS_FREE 0x0A\r
+#define XMS_MOVE 0x0B\r
+#define XMS_LOCK 0x0C\r
#define XMS_UNLOCK 0x0D\r
#define XMS_GETINFO 0x0E\r
#define XMS_RESIZE 0x0F\r
\r
-#define XMS_ALLOCUMB 0x10\r
+#define XMS_ALLOCUMB 0x10\r
#define XMS_FREEUMB 0x11\r
\r
//==========================================================================\r
\r
extern void (* beforesort) (void);\r
extern void (* aftersort) (void);\r
-extern void (* XMSaddr) (void); // far pointer to XMS driver\r
+extern void (* XMSaddr) (void); // far pointer to XMS driver\r
+extern dword XMSDriver;\r
+extern word XMSVer;\r
\r
//==========================================================================\r
\r
//byte MML_SetupEMS(mminfo_t *mm);\r
//void MML_ShutdownEMS(mminfo_t *mm);\r
byte MM_MapEMS(global_game_variables_t *gvar);\r
-byte MM_MapXEMS(global_game_variables_t *gvar);\r
-//boolean MML_CheckForXMS(mminfo_t *mm);\r
+//byte MM_MapXEMS(global_game_variables_t *gvar);\r
+boolean MML_CheckForXMS(void);\r
//void MML_SetupXMS(mminfo_t *mm, mminfotype *mmi);\r
//void MML_ShutdownXMS(mminfo_t *mm);\r
void MML_UseSpace(word segstart, dword seglength, global_game_variables_t *gvar);\r
void MM_BombOnError(boolean bomb, global_game_variables_t *gvar);\r
//void MM_GetNewBlock(mminfo_t *mm);\r
//void MM_FreeBlock(mmblocktype *x, mminfo_t *mm);\r
+void xms_call(byte v, global_game_variables_t *gvar);\r
\r
//==========================================================================\r
\r