home *** CD-ROM | disk | FTP | other *** search
- ;--------------------------------------------------------
- ;program title: Memory Available
- ;author: Peter Grogono
- ;date written: May 1982
- ;source: Pascal/Z Users' Group newsletter
- ; May 1982 issue.
- ;
- ;DECLARE:
- ; FUNCTION MEMAVAIL: INTEGER; EXTERNAL;
- ;
- ;EXAMPLE CALL:
- ; if ( memavail >= 0 ) and ( memavail < 250 ) then
- ; <execute short of space routine>
- ; else
- ; <enough space>;
- ;
- ;SUMMARY:
- ;Returns the difference in value between the top of the heap and the
- ;stack as an integer value. If the value returned is greater than
- ;32767, Pascal will consider it to be negative. You can correct for
- ;this by subtracting the value from 65536. For example: assume
- ;memavail = -12000 then there are 65536 + (-12000) = 53536 bytes of
- ;unused memory.
- ; short program example:
- ; var free: real;
- ; function memavail: integer; external;
- ; ...
- ; if memavail < 0 then
- ; free := 65537.0 + memavail
- ; else
- ; free := memavail;
- ; writeln ( free:6:0 );
- ;--------------------------------------------------------
- entry memavail
- name memavail
- memavail:
- push ix
- pop h ;HL = address of top of stack
- exx
- push h
- exx
- pop d ;now DE = address of top of heap
- dsbc d ;HL = distance between heap & stack
- xchg ;put it in DE for Pascal/Z
- ret ;all done
- ;--------------------------------------------------------
-