home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / misc / wolfsrc.1 / ID_MM.H < prev    next >
C/C++ Source or Header  |  1993-03-04  |  2KB  |  96 lines

  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