T_word32 FreeMemory(T_void) { #if defined(DOS32) T_word32 memInfo[12] ; union REGS regs ; struct SREGS sregs ; regs.x.eax = 0x500 ; memset(&sregs, 0, sizeof(sregs)) ; sregs.es = FP_SEG(memInfo) ; regs.x.edi = FP_OFF(memInfo) ; int386x(0x31, ®s, ®s, &sregs) ; return (memInfo[0] + _memavl()) ; #else return 100000000; // TODO: don't really know #endif }
unsigned cdecl coreleft(void) { #ifdef __WATCOMC__ struct _heapinfo entry; unsigned left; left=0; entry._pentry=NULL; while (1) { if (_heapwalk(&entry) != _HEAPOK) break; if (entry._useflag==_FREEENTRY) left += entry._size; } return (left); #else return (_memavl()); #endif }