meminfo.pas 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. { example for
  2. tmeminfo record
  3. int31error var
  4. get_meminfo()
  5. get_page_size()
  6. }
  7. { Shows how to obtain memory information via get_meminfo();
  8. notice the checks if any of the returned information is invalid (-1)
  9. }
  10. uses go32;
  11. var meminfo : tmeminfo;
  12. begin
  13. get_meminfo(meminfo);
  14. if (int31error <> 0) then begin
  15. Writeln('Error getting DPMI memory information... Halting');
  16. Writeln('DPMI error number : ', int31error);
  17. end else begin
  18. with meminfo do begin
  19. Writeln('Largest available free block : ', available_memory div 1024, ' kbytes');
  20. if (available_pages <> -1) then
  21. Writeln('Maximum available unlocked pages : ', available_pages);
  22. if (available_lockable_pages <> -1) then
  23. Writeln('Maximum lockable available pages : ', available_lockable_pages);
  24. if (linear_space <> -1) then
  25. Writeln('Linear address space size : ', linear_space*get_page_size div 1024, ' kbytes');
  26. if (unlocked_pages <> -1) then
  27. Writeln('Total number of unlocked pages : ', unlocked_pages);
  28. if (available_physical_pages <> -1) then
  29. Writeln('Total number of free pages : ', available_physical_pages);
  30. if (total_physical_pages <> -1) then
  31. Writeln('Total number of physical pages : ', total_physical_pages);
  32. if (free_linear_space <> -1) then
  33. Writeln('Free linear address space : ', free_linear_space*get_page_size div 1024, ' kbytes');
  34. if (max_pages_in_paging_file <> -1) then
  35. Writeln('Maximum size of paging file : ', max_pages_in_paging_file*get_page_size div 1024, ' kbytes');
  36. end;
  37. end;
  38. end.