meminfo.pas 1.5 KB

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