home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 13 / 13.iso / s / s001 / 1.ddi / PFC / SRC / MEMBIG.C < prev    next >
Encoding:
C/C++ Source or Header  |  1989-11-10  |  1.7 KB  |  86 lines

  1. /* (c) 1985, Phoenix Computer Products Corp. and Novum Organum, Inc. */
  2. /***
  3. * Name:         membiggive -- allocate memory
  4. *
  5. * Synopsis:     int     rc, membiggive();
  6. *               sizetype nbytes;
  7. *               ushort  seg, off;
  8. *
  9. *               rc = membiggive( nbytes, &seg, &off );
  10. *
  11. * Description:    Passes call to memgive() in large data models, and
  12. *               to memfargive() in small data models.
  13. *
  14. * Returns:      RC_SUCCESS or RC_FAIL.
  15. *
  16. * (C) Novum Organum, Inc. 1985
  17. *
  18. ***/
  19.  
  20. #include "pdefs.h"
  21.  
  22.     ushort    dsreg(), csreg(), sydptrse(), sydptrof();
  23.  
  24. int membiggive( nbytes, pseg, poff )
  25.     uint nbytes;
  26.     ushort   *pseg, *poff;
  27. {
  28.     ushort  memfargive(), sydptrse(), sydptrof(), sypsp();
  29.     char    *ppp, *memgivetrap();
  30.     int     rc;
  31.  
  32. /*
  33.     if  ( syldata() )
  34.         {
  35. */
  36.         ppp = memgivetrap( (int)nbytes );
  37.         *pseg = sydptrse( ppp );
  38.         *poff = sydptrof( ppp );
  39. /*
  40.         }
  41.     else
  42.         {
  43.     sysetblk( dsreg()+0x1000-sypsp() );
  44.         *pseg = memfargive( (nbytes+15) >> 4 );
  45.         *poff = 0;
  46.         }
  47. */
  48.     rc = RC_FAIL;
  49.     if  ( *pseg )
  50.         rc = RC_SUCCESS;
  51.  
  52.     return  ( rc );
  53. }
  54.  
  55.  
  56. /***
  57. * Name:         membigtake -- free memory
  58. *
  59. * Synopsis:     void membigtake();
  60. *               ushort  seg, off;
  61. *
  62. *               membigtake( seg, off );
  63. *
  64. * Description:    Passes call to memtake() in large data models, and
  65. *               to memfartake() in small data models.
  66. *
  67. * Returns:      nothing
  68. *
  69. * (C) Novum Organum, Inc. 1985
  70. *
  71. ***/
  72. /*VOID*/membigtake( seg, off )
  73.     ushort  seg, off;
  74. {
  75.     char    *sydptrjo();
  76.  
  77. /*
  78.     if    ( syldata() )
  79. */
  80.         memtake( sydptrjo(seg,off) );
  81. /*
  82.     else
  83.         memfartake( seg );
  84. */
  85. }
  86.