home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* MARKDEMO.MOD *)
- (* Demoprogramm für die Prozeduren Mark und Release *)
- (* ------------------------------------------------------ *)
- MODULE MarkDemo;
-
- FROM Storage IMPORT ALLOCATE, DEALLOCATE, HeapAvail,
- Mark, Release, MainHeap;
- FROM IO IMPORT WrLngCard, WrStr, WrLn,
- RdKey;
-
- VAR
- a1, a2, a : POINTER TO ARRAY [0..999] OF BYTE;
- i : CARDINAL;
- ch : CHAR;
-
- PROCEDURE Report;
- BEGIN
- WrStr ('Freier Speicher : ');
- WrLngCard (LONGCARD (HeapAvail (MainHeap)) * 16, 1);
- WrStr (' Bytes. ');
- ch := RdKey();
- WrLn;
- END Report;
-
- BEGIN
- WrStr ('Start : '); Report;
- NEW (a1); NEW (a2);
- WrStr ('Zweimal NEW. '); Report;
- Mark;
- FOR i := 1 TO 10 DO NEW (a) END;
- WrStr ('Mark gemacht. Danach 10 Mal NEW. ');
- Report;
- Mark;
- FOR i := 1 TO 10 DO NEW (a) END;
- WrStr ('Mark gemacht. Danach 10 Mal NEW. ');
- Report;
- Release;
- WrStr ('Release gemacht. '); Report;
- Release;
- WrStr ('Release gemacht. '); Report;
- DISPOSE (a2); DISPOSE (a1);
- WrStr ('Zweimal DISPOSE gemacht. ');
- Report;
- END MarkDemo.
- (* ------------------------------------------------------ *)
- (* Ende von MARKDEMO.MOD *)