home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / xbase / library / clipper / rettig / source / dealloc.c < prev    next >
C/C++ Source or Header  |  1990-10-21  |  911b  |  40 lines

  1. /*********
  2. *
  3. * DEALLOC.C
  4. *
  5. * by Leonard Zerman
  6. *
  7. * Placed in the public domain by Tom Rettig Associates, 10/22/1990.
  8. *
  9. *  Syntax: DEALLOC( <expC>, <expN> )
  10. *  Return: <expL> .T. if successful else .F..
  11. *   <expC> ::= HEX address string.
  12. *   <expN> ::= nbr of bytes orginally allocated.       
  13. *********/
  14. #include "trlib.h"
  15. #define MK_FP(seg,ofs)    ((void far *)(((unsigned long)(seg) << 16) | (ofs)))
  16.  
  17. TRTYPE dealloc()
  18. {
  19.    char *address, *ptr, *ret;
  20.    unsigned int size;
  21.    char seg[5];
  22.    char off[5];
  23.  
  24.    if ( PCOUNT==2 && ISCHAR(1) && ISNUM(2) )
  25.    {
  26.       address = _parc(1);
  27.       size    = _parni(2);
  28.       _tr_strncpy(seg,address,4);
  29.       _tr_strncpy(off,&address[4],4);
  30.       seg[4] = 0;
  31.       off[4] = 0;
  32.       ptr     = MK_FP(_tr_htoi(seg),_tr_htoi(off));
  33.       _tr_freemem(ptr,(unsigned)size+1);
  34.       _retl(TRUE);
  35.    }
  36.    else
  37.       _retl(FALSE);
  38. }
  39. /* eof */
  40.