ID_MM.H (2025B)
1 // ID_MM.H 2 3 #ifndef __ID_CA__ 4 5 #define __ID_CA__ 6 7 #define SAVENEARHEAP 0x400 // space to leave in data segment 8 #define SAVEFARHEAP 0 // space to leave in far heap 9 10 #define BUFFERSIZE 0x1000 // miscelanious, allways available buffer 11 12 #define MAXBLOCKS 700 13 14 15 //-------- 16 17 #define EMS_INT 0x67 18 19 #define EMS_STATUS 0x40 20 #define EMS_GETFRAME 0x41 21 #define EMS_GETPAGES 0x42 22 #define EMS_ALLOCPAGES 0x43 23 #define EMS_MAPPAGE 0x44 24 #define EMS_FREEPAGES 0x45 25 #define EMS_VERSION 0x46 26 27 //-------- 28 29 #define XMS_INT 0x2f 30 #define XMS_CALL(v) _AH = (v);\ 31 asm call [DWORD PTR XMSDriver] 32 33 #define XMS_VERSION 0x00 34 35 #define XMS_ALLOCHMA 0x01 36 #define XMS_FREEHMA 0x02 37 38 #define XMS_GENABLEA20 0x03 39 #define XMS_GDISABLEA20 0x04 40 #define XMS_LENABLEA20 0x05 41 #define XMS_LDISABLEA20 0x06 42 #define XMS_QUERYA20 0x07 43 44 #define XMS_QUERYFREE 0x08 45 #define XMS_ALLOC 0x09 46 #define XMS_FREE 0x0A 47 #define XMS_MOVE 0x0B 48 #define XMS_LOCK 0x0C 49 #define XMS_UNLOCK 0x0D 50 #define XMS_GETINFO 0x0E 51 #define XMS_RESIZE 0x0F 52 53 #define XMS_ALLOCUMB 0x10 54 #define XMS_FREEUMB 0x11 55 56 //========================================================================== 57 58 typedef void _seg * memptr; 59 60 typedef struct 61 { 62 long nearheap,farheap,EMSmem,XMSmem,mainmem; 63 } mminfotype; 64 65 //========================================================================== 66 67 extern mminfotype mminfo; 68 extern memptr bufferseg; 69 extern boolean mmerror; 70 71 extern void (* beforesort) (void); 72 extern void (* aftersort) (void); 73 74 //========================================================================== 75 76 void MM_Startup (void); 77 void MM_Shutdown (void); 78 void MM_MapEMS (void); 79 80 void MM_GetPtr (memptr *baseptr,unsigned long size); 81 void MM_FreePtr (memptr *baseptr); 82 83 void MM_SetPurge (memptr *baseptr, int purge); 84 void MM_SetLock (memptr *baseptr, boolean locked); 85 void MM_SortMem (void); 86 87 void MM_ShowMemory (void); 88 89 long MM_UnusedMemory (void); 90 long MM_TotalFree (void); 91 92 void MM_BombOnError (boolean bomb); 93 94 void MML_UseSpace (unsigned segstart, unsigned seglength); 95 96 #endif