home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / qpdemo / beispiel / bigmem.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1989-07-21  |  1.3 KB  |  49 lines

  1. PROGRAM big_mem;
  2. { ========================= big_mem ============================
  3.   Big_mem.pas benutzt die Unit BigHeap.  Aufrufe in BigHeap
  4.   erlauben einem Programm, Heap-Platz in Blöcken größer als
  5.   65520 Byte zuzuweisen.
  6. }
  7.  
  8. USES
  9.     bigheap;
  10.  
  11. VAR
  12.     allg_zeiger : POINTER;
  13.     nachfrage   : LongInt;
  14.     total       : LongInt;
  15.     groesster   : LongInt;
  16.  
  17. BEGIN
  18.  
  19.     groesster := MaxAvail;
  20.     Writeln( MemAvail, ' Byte sind insgesamt auf Heap verfügbar.' );
  21.     Writeln( 'Größter zusammenhänger Block ist ', groesster, ' Byte.' );
  22.  
  23.     REPEAT
  24.     Writeln( 'Sie können bis zu ', groesster, ' Byte zuweisen.' );
  25.     Write( 'Wieviel Speicherblock möchten Sie zuweisen? ');
  26.     Readln( nachfrage );
  27.     IF (nachfrage > groesster) OR (nachfrage < 0)
  28.         THEN Writeln( 'Dieser Betrag ist nicht verfügbar.' );
  29.     UNTIL (nachfrage <= groesster) AND
  30.       (nachfrage >= 0);
  31.     Writeln( 'Nachfrage: ', nachfrage, ' Byte.' );
  32.  
  33.     { Nachfrage-Speicher. Dieser Aufruf benutzt bigheap.GetMem anstatt
  34.       System.GetMem. Dadurch kann man mehr als 65520 Byte zur gleichen
  35.       Zeit zuweisen.
  36.     }
  37.     GetMem( allg_zeiger, nachfrage );
  38.     Writeln( 'Dies läßt insgesamt ', MemAvail, ' Byte übrig. ');
  39.     Writeln( 'Dabei ist der größte Block ', MaxAvail, ' Byte groß.');
  40.  
  41.     Writeln( 'Platz freimachen...' );
  42.     FreeMem( allg_zeiger, nachfrage );
  43.  
  44. END.
  45.  
  46.  
  47.  
  48.  
  49.