home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 2 / ctrom_ii_b.zip / ctrom_ii_b / PROGRAM / C / XMSIF15 / XMSIF.HPP < prev    next >
C/C++ Source or Header  |  1993-04-22  |  5KB  |  159 lines

  1. /***************************************************************************
  2. *   XMSIF.HPP                                                              *
  3. *   HEADER FOR XMSIF                                                       *
  4. *   OS:        DOS                                                         *
  5. *   VERSION:   1.5                                                         *
  6. *   DATE:      04/22/93                                                    *
  7. *                                                                          *
  8. *   Copyright (c) 1993 James W. Birdsall. All Rights Reserved.             *
  9. *   Thanks to Bob Parsons of Parsons Technology for the original           *
  10. *    version of this file.                                                 *
  11. *                                                                          *
  12. ***************************************************************************/
  13.  
  14. #ifndef XMSIF_H
  15. #define XMSIF_H
  16.  
  17. /*
  18. ** system includes <>
  19. */
  20.  
  21. /*
  22. ** custom includes ""
  23. */
  24.  
  25. /*
  26. ** local #defines
  27. */
  28.  
  29. /* error returns */
  30.  
  31. #define XMMOOPS     -1
  32. #define NOXMM       -2
  33.  
  34.  
  35. /* XMM library errors */
  36.  
  37. #define XMM_NOINIT          0x40
  38. #define XMM_UMBHUGE         0x41
  39. #define XMM_BADPTR          0x42
  40. #define XMM_ELTOOBIG        0x43
  41. #define XMM_SKTOOBIG        0x44
  42. #define XMM_BADVERS         0x45
  43.  
  44.  
  45. /* XMS driver errors */
  46.  
  47. #define XMM_UNIMP           0x80
  48. #define XMM_VDISK           0x81
  49. #define XMM_A20ERROR        0x82
  50. #define XMM_GENERROR        0x8E
  51. #define XMM_UNRECERROR      0x8F
  52.  
  53. #define XMM_NOHMA           0x90
  54. #define XMM_HMAUSED         0x91
  55. #define XMM_HMATOOBIG       0x92
  56. #define XMM_HMANOALLOC      0x93
  57. #define XMM_A20STILLEN      0x94
  58.  
  59. #define XMM_NOFREEX         0xA0
  60. #define XMM_NOFREEXHAN      0xA1
  61. #define XMM_BADXHAN         0xA2
  62. #define XMM_BADSRCHAN       0xA3
  63. #define XMM_BADSRCOFF       0xA4
  64. #define XMM_BADDESTHAN      0xA5
  65. #define XMM_BADDESTOFF      0xA6
  66. #define XMM_BADLENGTH       0xA7
  67. #define XMM_COPYOVERLAP     0xA8
  68. #define XMM_PARITY          0xA9
  69. #define XMM_NOLOCK          0xAA
  70. #define XMM_LOCKED          0xAB
  71. #define XMM_TOOMANYLOCKS    0xAC
  72. #define XMM_LOCKFAIL        0xAD
  73.  
  74. #define XMM_UMBSMALLER      0xB0
  75. #define XMM_NOFREEUMB       0xB1
  76. #define XMM_BADUMBHAN       0xB2
  77.  
  78.  
  79. /* function macros */
  80.  
  81. #define XMMcopyto(clen,src,dhan,doff)    _XMMcopy((clen),0, \
  82.                                             (unsigned long)(src),(dhan),(doff))
  83. #define XMMcopyfrom(clen,shan,soff,dest) _XMMcopy((clen),(shan),(soff),0, \
  84.                                                          (unsigned long)(dest))
  85.  
  86. #define XMMicopyto(n,e,b,s,h,f)          _XMMicopy((n),(e),(b),0, \
  87.                                                 (unsigned long)(s),(h),(f),(b))
  88. #define XMMicopyfrom(n,e,b,h,f,d)        _XMMicopy((n),(e),(b),(h),(f),0, \
  89.                                                             (unsigned long)(d))
  90.  
  91.  
  92. /*
  93. ** misc: copyright strings, version macros, etc.
  94. */
  95.  
  96. /*
  97. ** typedefs
  98. */
  99.  
  100. struct XMMregs {
  101.     unsigned int regAX;
  102.     unsigned int regBX;
  103.     unsigned int regDX;
  104.     unsigned int regSI;
  105.     unsigned int regDS;
  106. };
  107.  
  108. struct XMMbigregs {
  109.     unsigned long regEAX;
  110.     unsigned long regEBX;
  111.     unsigned long regECX;
  112.     unsigned long regEDX;
  113. };
  114.  
  115.  
  116. /*
  117. ** global variables
  118. */
  119.  
  120. extern unsigned char const _XMMerror;         /* XMS error variable */
  121. extern unsigned int  const _XMMversion;       /* XMS version, BCD */
  122.  
  123. extern char const xmsif_vers_vers[];
  124. extern char const xmsif_vers_date[];
  125. extern char const xmsif_vers_time[];
  126.  
  127.  
  128. /*
  129. ** function prototypes
  130. */
  131.  
  132. extern "C" int XMMlibinit(void);
  133. extern "C" unsigned int XMMgetversion(void);
  134.  
  135. extern "C" unsigned long XMMcoreleft(void);
  136. extern "C" unsigned long XMMallcoreleft(void);
  137.  
  138. extern "C" int XMMalloc(unsigned long bytes);
  139. extern "C" int XMMrealloc(int handle, unsigned long bytes);
  140. extern "C" int XMMfree(int handle);
  141.  
  142. extern "C" int _XMMcopy(unsigned long clen,
  143.                         int shan, unsigned long soff,
  144.                         int dhan, unsigned long doff);
  145. extern "C" int _XMMicopy(unsigned long nelem, int elsize,
  146.                          unsigned int sskip, int shan, unsigned long soff,
  147.                          int dhan, unsigned long doff, unsigned int dskip);
  148.  
  149. extern "C" int XMMrawcall(struct XMMregs *regs);
  150. extern "C" void XMMraw3(struct XMMbigregs *regs);
  151.  
  152. extern "C" unsigned long UMBcoreleft(void);
  153. extern "C" unsigned long UMBallcoreleft(void);
  154.  
  155. extern "C" void far *UMBalloc(unsigned long bytes, unsigned long *finalsize);
  156. extern "C" int UMBfree(void far *handle);
  157.  
  158. #endif
  159.